Compare commits

..

7 Commits

17 changed files with 146 additions and 388 deletions

View File

@@ -1,18 +1,17 @@
GSF=git submodule foreach GSF=git submodule foreach
TIME=time
all: rebuild-switch all: rebuild-switch
date date
##--------- Commandes spécifiques pour NixOS ##--------- Commandes spécifiques pour NixOS
clean: clean:
$(TIME) nix-collect-garbage -d --delete-older-than 15d nix-collect-garbage -d --delete-older-than 15d
clean-aggressive: clean-aggressive:
$(TIME) nix-collect-garbage -d --delete-older-than 1d nix-collect-garbage -d --delete-older-than 1d
clean-total: clean-total:
$(TIME) nix-collect-garbage -d nix-collect-garbage -d
clean-log: clean-log:
journalctl --vacuum-size=1G journalctl --vacuum-size=1G
@@ -21,19 +20,19 @@ full-auto: submodules-update upgrade clean optimise
@date @date
optimise: optimise:
$(TIME) nix-store --optimise nix-store --optimise
rebuild-switch: rebuild-switch:
$(TIME) time nixos-rebuild switch --fallback --show-trace nixos-rebuild switch --fallback --show-trace
show-roots: show-roots:
nix-store --gc --print-roots nix-store --gc --print-roots
store-repair: store-repair:
$(TIME) nix-store --verify --check-contents --repair nix-store --verify --check-contents --repair
upgrade: upgrade:
$(TIME) nixos-rebuild switch --upgrade --fallback --show-trace nixos-rebuild switch --upgrade --fallback --show-trace
##--------- Commandes spécifiques pour NixOS -- Opérations non courantes ##--------- Commandes spécifiques pour NixOS -- Opérations non courantes

View File

@@ -13,15 +13,15 @@ mkIf cfg.nix-serve-client {
# Cache http pour le store # Cache http pour le store
requireSignedBinaryCaches = false; requireSignedBinaryCaches = false;
binaryCaches = [ binaryCaches = [
#(mkIf (computers.isRollo) "http://ocean.grudu.net:5001/")
(mkIf (computers.isRollo) "http://192.168.12.6:5000/")
#(mkIf (computers.isOcean) "http://rollo.grudu.net:5001/")
(mkIf (computers.isOcean) "http://192.168.12.5:5000/")
(mkIf (profiles.isDubronetwork && (! computers.isPedro) && (! computers.isRollo)) "http://nix-cache.dubronetwork.fr:5001") (mkIf (profiles.isDubronetwork && (! computers.isPedro) && (! computers.isRollo)) "http://nix-cache.dubronetwork.fr:5001")
#(mkIf (profiles.isDubronetwork && computers.isPhenom) "http://latitude.grudu.net:5000")
(mkIf (profiles.isDubronetwork && computers.isPhenom) "http://monstre.grudu.net:5000")
(mkIf (profiles.isDubronetwork && computers.isPhenom) "http://radx.grudu.net:5000")
(mkIf profiles.isPrunetwork "https://cache.nixos.org/") (mkIf profiles.isPrunetwork "https://cache.nixos.org/")
(mkIf (profiles.isPrunetwork && !profiles.isServer) "http://nix-cache.dubronetwork.fr:5001") (mkIf (profiles.isPrunetwork && !profiles.isServer) "http://nix-cache.dubronetwork.fr:5001")
(mkIf (profiles.isPrunetwork && computers.isRadx) "http://monstre.grudu.net:5000")
(mkIf (profiles.isPrunetwork && computers.isRadx) "http://phenom.grudu.net:5000")
]; ];
extraOptions = '' extraOptions = ''
connect-timeout = 5 connect-timeout = 5

View File

@@ -9,101 +9,118 @@ let
in in
{ {
###### interface ###### interface
options = { options = {
#* Utilisé pour afecter des capacités aux machines #* Utilisé pour afecter des capacités aux machines
r6d.profiles = { r6d.profiles = {
# Domaine # Domaine
isDubronetwork = mkEnableOption "Pour distinguer les machines dubronetwork."; isDubronetwork = mkEnableOption "Pour distinguer les machines dubronetwork.";
isPrunetwork = mkEnableOption "Pour distinguer les machines prunetwork."; isPrunetwork = mkEnableOption "Pour distinguer les machines prunetwork.";
# Utilisation machine # Utilisation machine
isDesktop = mkEnableOption "Pour indiquer une machine avec interface graphique."; isDesktop = mkEnableOption "Pour indiquer une machine avec interface graphique.";
isHome = mkEnableOption "Pour indiquer que la machine sert à la maison (divertissement & autre)."; isHome = mkEnableOption "Pour indiquer que la machine sert à la maison (divertissement & autre).";
isServer = mkEnableOption "Pour indiquer qu'il s'agit d'un serveur."; isServer = mkEnableOption "Pour indiquer qu'il s'agit d'un serveur.";
isWorkstation = mkEnableOption "Pour indiquer que la machine sert à travailler."; isWorkstation = mkEnableOption "Pour indiquer que la machine sert à travailler.";
};
#* Utilisé dans les fichiers .nix
r6d.config-generator = {
#enable = mkEnableOption "Génération de la configuration d'une machine.";
awesome = mkEnableOption "Profil pour activer le gestionnaire de fenêtre awesome.";
auto-upgrade = mkEnableOption "Profil pour activer les mises à jour automatiques.";
cartographie = mkEnableOption "Profil pour activer les outils de gestion de données géographiques.";
conception-assistee = mkEnableOption "Profil pour activer les outils de conception électronique & modélisation 3D";
database_postgres = mkEnableOption "Profil pour activer le SGBD PostgreSQL.";
developpement = mkEnableOption "Profil pour activer les outils de développement";
developpement-elm = mkEnableOption "Profil pour activer les outils de développement Elm";
developpement-haskell = mkEnableOption "Profil pour activer les outils de développement Haskell";
developpement-java = mkEnableOption "Profil pour activer les outils de développement Java";
developpement-rust = mkEnableOption "Profil pour activer les outils de développement Rust";
docker = mkEnableOption "Profil pour l'utilisation de Docker.";
dovecot = mkEnableOption "Profil pour activer le serveur Dovecot.";
dns_autorite = mkEnableOption "Profil pour servir les fichiers de zone DNS.";
dns_resolveur = mkEnableOption "Profil pour activer un résolveur DNS local.";
edition-musique = mkEnableOption "Profil pour la création/édition de musique.";
edition-photo = mkEnableOption "Profil pour la création/édition de photos.";
edition-video = mkEnableOption "Profil pour la création/édition de video.";
elasticsearch = mkEnableOption "Profil pour activer le service elasticsearch.";
fail2ban = mkEnableOption "Profil pour activer Fail2ban.";
hydra-builder = mkEnableOption "Profil pour une machine qui compile pour hydra.";
hydra-core = mkEnableOption "Profil pour un serveur hydra.";
kibana = mkEnableOption "Profil pour activer le service kibana.";
jetbrains-licensed = mkEnableOption "Profil pour la suite de développement Jetbrains payante (sous-ensemble).";
jeux = mkEnableOption "Profil pour les jeux vidéos.";
laptop = mkEnableOption "Profil pour les outils spécifiques aux ordinateurs portables.";
locate = mkEnableOption "Profil pour activer la fonction locate.";
mailboxes = mkEnableOption "Profil pour stocker les mails dans des boîtes aux lettres.";
murmur = mkEnableOption "Profil pour activer un serveur Mumble (murmur)";
nix-serve-client = mkEnableOption "Profil pour que la machine soit un client de cache nix.";
nix-serve-server = mkEnableOption "Profil pour que la machine soit un serveur de cache nix.";
nixStoreProxyCache = mkEnableOption "Profil pour activer le proxy cahce nginx pour le nix store";
print = mkEnableOption "Profil pour activer cups & pouvoir imprimer.";
rabbitmq = mkEnableOption "Profil pour activer le service de messagerie AMQP.";
radicale = mkEnableOption "Profil pour activer le service d'hébergement de calendrier + tâches & contacts.";
scanner = mkEnableOption "Profil pour que les scanners soient utilisable.";
swap = mkEnableOption "Profil pour que le swap soit activé.";
virtualbox = mkEnableOption "Profil pour l'utilisation de VirtualBox.";
xmonad = mkEnableOption "Profil pour activer le gestionnaire de fenêtres xmonad.";
znc = mkEnableOption "Profil pour activer le relais IRC ZNC.";
tincAddress = mkOption {
default = "";
example = "192.168.1.1";
description = "Adresse du noeud tinc local";
type = lib.types.string;
}; };
tincExtraConfig = mkOption {
default = ""; #* Utilisé dans les fichiers .nix
example = '' r6d.config-generator = {
enable = mkEnableOption "Génération de la configuration d'une machine.";
awesome = mkEnableOption "Profil pour activer le gestionnaire de fenêtre awesome.";
auto-upgrade = mkEnableOption "Profil pour activer les mises à jour automatiques.";
cartographie = mkEnableOption "Profil pour activer les outils de gestion de données géographiques.";
conception-assistee = mkEnableOption "Profil pour activer les outils de conception électronique & modélisation 3D";
database_postgres = mkEnableOption "Profil pour activer le SGBD PostgreSQL.";
developpement = mkEnableOption "Profil pour activer les outils de développement";
developpement-haskell = mkEnableOption "Profil pour activer les outils de développement Haskell";
developpement-java = mkEnableOption "Profil pour activer les outils de développement Java";
developpement-rust = mkEnableOption "Profil pour activer les outils de développement Rust";
docker = mkEnableOption "Profil pour l'utilisation de Docker.";
dovecot = mkEnableOption "Profil pour activer le serveur Dovecot.";
dns_autorite = mkEnableOption "Profil pour servir les fichiers de zone DNS.";
dns_resolveur = mkEnableOption "Profil pour activer un résolveur DNS local.";
edition-musique = mkEnableOption "Profil pour la création/édition de musique.";
edition-photo = mkEnableOption "Profil pour la création/édition de photos.";
edition-video = mkEnableOption "Profil pour la création/édition de video.";
elasticsearch = mkEnableOption "Profil pour activer le service elasticsearch.";
fail2ban = mkEnableOption "Profil pour activer Fail2ban.";
hydra-builder = mkEnableOption "Profil pour une machine qui compile pour hydra.";
hydra-core = mkEnableOption "Profil pour un serveur hydra.";
kibana = mkEnableOption "Profil pour activer le service kibana.";
jetbrains-licensed = mkEnableOption "Profil pour la suite de développement Jetbrains payante (sous-ensemble).";
jeux = mkEnableOption "Profil pour les jeux vidéos.";
laptop = mkEnableOption "Profil pour les outils spécifiques aux ordinateurs portables.";
locate = mkEnableOption "Profil pour activer la fonction locate.";
mailboxes = mkEnableOption "Profil pour stocker les mails dans des boîtes aux lettres.";
murmur = mkEnableOption "Profil pour activer un serveur Mumble (murmur)";
nix-serve-client = mkEnableOption "Profil pour que la machine soit un client de cache nix.";
nix-serve-server = mkEnableOption "Profil pour que la machine soit un serveur de cache nix.";
nixStoreProxyCache = mkEnableOption "Profil pour activer le proxy cahce nginx pour le nix store";
print = mkEnableOption "Profil pour activer cups & pouvoir imprimer.";
rabbitmq = mkEnableOption "Profil pour activer le service de messagerie AMQP.";
radicale = mkEnableOption "Profil pour activer le service d'hébergement de calendrier + tâches & contacts.";
scanner = mkEnableOption "Profil pour que les scanners soient utilisable.";
swap = mkEnableOption "Profil pour que le swap soit activé.";
virtualbox = mkEnableOption "Profil pour l'utilisation de VirtualBox.";
xmonad = mkEnableOption "Profil pour activer le gestionnaire de fenêtres xmonad.";
znc = mkEnableOption "Profil pour activer le relais IRC ZNC.";
tincAddress = mkOption {
default = "";
example = "192.168.1.1";
description = "Adresse du noeud tinc local";
type = lib.types.string;
};
tincExtraConfig = mkOption {
default = "";
example = ''
Mode = router Mode = router
ConnecTo = bar ConnecTo = bar
''; '';
description = "Configuration supplémentaire pour tinc"; description = "Configuration supplémentaire pour tinc";
type = lib.types.string; type = lib.types.string;
};
};
#* Utilisé pour avoir des raccourcis de machine
r6d.computers = {
isHydra = mkEnableOption "Identification du nom de machine.";
isLatitude = mkEnableOption "Identification du nom de machine.";
isMonstre = mkEnableOption "Identification du nom de machine.";
isNeoNomade = mkEnableOption "Identification du nom de machine.";
isNomade = mkEnableOption "Identification du nom de machine.";
isOcean = mkEnableOption "Identification du nom de machine.";
isPedro = mkEnableOption "Identification du nom de machine.";
isPhenom = mkEnableOption "Identification du nom de machine.";
isRadx = mkEnableOption "Identification du nom de machine.";
isRollo = mkEnableOption "Identification du nom de machine.";
}; };
}; };
#* Utilisé pour avoir des raccourcis de machine
r6d.computers = {
isHydra = mkEnableOption "Identification du nom de machine.";
isLatitude = mkEnableOption "Identification du nom de machine.";
isMonstre = mkEnableOption "Identification du nom de machine.";
isNeoNomade = mkEnableOption "Identification du nom de machine.";
isNomade = mkEnableOption "Identification du nom de machine.";
isOcean = mkEnableOption "Identification du nom de machine.";
isPedro = mkEnableOption "Identification du nom de machine.";
isPhenom = mkEnableOption "Identification du nom de machine.";
isRadx = mkEnableOption "Identification du nom de machine.";
isRollo = mkEnableOption "Identification du nom de machine.";
};
};
###### implementation ###### implementation
# https://nixos.org/releases/nixos/14.12-small/nixos-14.12.374.61adf9e/manual/sec-writing-modules.html # https://nixos.org/releases/nixos/14.12-small/nixos-14.12.374.61adf9e/manual/sec-writing-modules.html
# https://nixos.org/wiki/NixOS:extend_NixOS # https://nixos.org/wiki/NixOS:extend_NixOS
config = mkMerge config = mkMerge
[ [ # Unconditional stuff.
{
r6d.config-generator.enable = true;
r6d.computers = {
isHydra = host == "hydra.prunetwork.fr";
isLatitude = host == "latitude.dubronetwork.fr";
isMonstre = host == "monstre.dubronetwork.fr";
isNeoNomade = host == "neo-nomade.dubronetwork.fr";
isNomade = host == "nomade.dubronetwork.fr";
isOcean = host == "ocean.prunetwork.fr";
isPedro = host == "pedro.dubronetwork.fr";
isPhenom = host == "phenom.dubronetwork.fr";
isRadx = host == "radx.prunetwork.fr";
isRollo = host == "rollo.dubronetwork.fr";
};
}
# Conditional stuff
## Définition des profils génériques ## Définition des profils génériques
(mkIf pfl.isDesktop { (mkIf pfl.isDesktop {
r6d.config-generator = { r6d.config-generator = {
@@ -154,7 +171,6 @@ in
conception-assistee = true; conception-assistee = true;
docker = true; docker = true;
developpement = true; developpement = true;
developpement-elm = true;
developpement-haskell = true; developpement-haskell = true;
developpement-java = true; developpement-java = true;
developpement-rust = true; developpement-rust = true;
@@ -179,27 +195,21 @@ in
(mkIf (pfl.isPrunetwork && pfl.isWorkstation) { (mkIf (pfl.isPrunetwork && pfl.isWorkstation) {
r6d.config-generator = { r6d.config-generator = {
cartographie = true; cartographie = true;
conception-assistee = true;
docker = true;
developpement = true; developpement = true;
#developpement-elm = true;
developpement-haskell = true; developpement-haskell = true;
developpement-java = true; developpement-java = true;
developpement-rust = true; #developpement-rust = true;
edition-musique = true; #edition-musique = true;
edition-photo = true; edition-photo = true;
edition-video = true; #edition-video = true;
hydra-core = false; # DO NOT ENABLE ON WORKSTATION, YOU CAN CRASH YOUR SYSTEM
print = true; print = true;
#virtualbox = true; virtualbox = true;
#xmonad = true;
}; };
}) })
## Affectation des profils aux machines ## Affectation des profils aux machines
(mkIf comp.isHydra { (mkIf comp.isHydra {
networking.hostName = "hydra.prunetwork.fr"; # Define your hostname.
r6d.profiles = { r6d.profiles = {
isPrunetwork = true; isPrunetwork = true;
isServer = true; isServer = true;
@@ -209,14 +219,14 @@ in
docker = true; docker = true;
hydra-builder = true; hydra-builder = true;
hydra-core = true; hydra-core = true;
#tincAddress = "192.168.12.6/24"; tincAddress = "192.168.12.8/24";
#tincExtraConfig = '' tincExtraConfig = ''
# ConnectTo = rollo_dubronetwork_fr ConnectTo = rollo_dubronetwork_fr
# ''; ConnectTo = ocean_prunetwork_fr
'';
}; };
}) })
(mkIf comp.isOcean { (mkIf comp.isOcean {
networking.hostName = "ocean.prunetwork.fr"; # Define your hostname.
r6d.profiles = { r6d.profiles = {
isPrunetwork = true; isPrunetwork = true;
isServer = true; isServer = true;
@@ -225,14 +235,15 @@ in
r6d.config-generator = { r6d.config-generator = {
docker = true; docker = true;
radicale = true; radicale = true;
nix-serve-client = true;
nix-serve-server = true;
tincAddress = "192.168.12.6/24"; tincAddress = "192.168.12.6/24";
tincExtraConfig = '' tincExtraConfig = ''
ConnectTo = rollo_dubronetwork_fr ConnectTo = rollo_dubronetwork_fr
''; '';
}; };
}) })
(mkIf comp.isRadx { (mkIf comp.isRadx {
networking.hostName = "radx.prunetwork.fr"; # Define your hostname.
r6d.profiles = { r6d.profiles = {
isHome = true; isHome = true;
isPrunetwork = true; isPrunetwork = true;
@@ -240,20 +251,17 @@ in
}; };
r6d.config-generator = { r6d.config-generator = {
database_postgres = true;
elasticsearch = true; elasticsearch = true;
hydra-builder = true; hydra-builder = true;
#hydra-core = false; # DO NOT ENABLE ON WORKSTATION hydra-core = true;
kibana = true; kibana = true;
nix-serve-client = true;
nix-serve-server = true;
rabbitmq = true; rabbitmq = true;
tincAddress = "192.168.12.3/24"; tincAddress = "192.168.12.3/24";
tincExtraConfig = '' tincExtraConfig = ''
ConnectTo = monstre_dubronetwork_fr ConnectTo = monstre_dubronetwork_fr
ConnectTo = rollo_dubronetwork_fr ConnectTo = rollo_dubronetwork_fr
ConnectTo = ocean_prunetwork_fr ConnectTo = ocean_prunetwork_fr
''; '';
}; };
}) })
@@ -272,7 +280,7 @@ in
ConnectTo = monstre_dubronetwork_fr ConnectTo = monstre_dubronetwork_fr
ConnectTo = rollo_dubronetwork_fr ConnectTo = rollo_dubronetwork_fr
ConnectTo = ocean_prunetwork_fr ConnectTo = ocean_prunetwork_fr
''; '';
nix-serve-server = true; nix-serve-server = true;
}; };
}) })
@@ -292,7 +300,7 @@ in
tincExtraConfig = '' tincExtraConfig = ''
ConnectTo = rollo_dubronetwork_fr ConnectTo = rollo_dubronetwork_fr
ConnectTo = ocean_prunetwork_fr ConnectTo = ocean_prunetwork_fr
''; '';
}; };
}) })
(mkIf comp.isNeoNomade{ (mkIf comp.isNeoNomade{
@@ -308,11 +316,9 @@ in
ConnectTo = monstre_dubronetwork_fr ConnectTo = monstre_dubronetwork_fr
ConnectTo = rollo_dubronetwork_fr ConnectTo = rollo_dubronetwork_fr
ConnectTo = ocean_prunetwork_fr ConnectTo = ocean_prunetwork_fr
''; '';
}; };
}) })
# Dubro Vivo - St Malo
#tincAddress = "192.168.12.8/24";
(mkIf comp.isNomade{ (mkIf comp.isNomade{
r6d.profiles.isDubronetwork = true; r6d.profiles.isDubronetwork = true;
@@ -331,7 +337,6 @@ in
}; };
}) })
(mkIf comp.isPhenom { (mkIf comp.isPhenom {
networking.hostName = "phenom.dubronetwork.fr"; # Define your hostname.
r6d.profiles = { r6d.profiles = {
isDubronetwork = true; isDubronetwork = true;
isHome = true; isHome = true;
@@ -340,8 +345,7 @@ in
r6d.config-generator = { r6d.config-generator = {
jetbrains-licensed = true; jetbrains-licensed = true;
#hydra-core = true; hydra-core = true;
nix-serve-client = true;
nix-serve-server = true; nix-serve-server = true;
edition-photo = true; edition-photo = true;
tincAddress = "192.168.12.1/24"; tincAddress = "192.168.12.1/24";
@@ -349,7 +353,7 @@ in
ConnectTo = monstre_dubronetwork_fr ConnectTo = monstre_dubronetwork_fr
ConnectTo = rollo_dubronetwork_fr ConnectTo = rollo_dubronetwork_fr
ConnectTo = ocean_prunetwork_fr ConnectTo = ocean_prunetwork_fr
''; '';
}; };
}) })
(mkIf comp.isRollo { (mkIf comp.isRollo {
@@ -363,10 +367,12 @@ in
fail2ban = true; fail2ban = true;
mailboxes = true; mailboxes = true;
murmur = true; murmur = true;
nix-serve-client = true;
nix-serve-server = true;
tincAddress = "192.168.12.5/24"; tincAddress = "192.168.12.5/24";
tincExtraConfig = '' tincExtraConfig = ''
ConnectTo = ocean_prunetwork_fr ConnectTo = ocean_prunetwork_fr
''; '';
znc = true; znc = true;
}; };
}) })

View File

@@ -49,7 +49,6 @@ in
fira-code # idem fira-mono + ligatures pour la programmation fira-code # idem fira-mono + ligatures pour la programmation
fira-mono # dérivée de fira en monospace fira-mono # dérivée de fira en monospace
hack-font # police monospace créée explicitement pour coder hack-font # police monospace créée explicitement pour coder
hasklig # police dérivée de source-code-pro mais avec des ligatures
]; ];
nixpkgs.config.packageOverrides = pkgs: { nixpkgs.config.packageOverrides = pkgs: {

View File

@@ -36,7 +36,6 @@ mkIf true {
exfat # Pour monter les FAT avec Fuse exfat # Pour monter les FAT avec Fuse
hubicfuse # montage hubic hubicfuse # montage hubic
ntfs3g # ntfs ntfs3g # ntfs
squashfsTools # squashfs
sshfsFuse # ssh sshfsFuse # ssh
## Gestion de FS ## Gestion de FS
@@ -44,7 +43,6 @@ mkIf true {
## Exploitation FS ## Exploitation FS
inotify-tools # être notifié lorsque le contenu d'un répertoire change inotify-tools # être notifié lorsque le contenu d'un répertoire change
detox # The detox utility renames files to make them easier to work with.
duff # outil de recherche de fichiers en doublons duff # outil de recherche de fichiers en doublons
rdfind # recherche de fichiers doublons pour remplacement par hard/soft link rdfind # recherche de fichiers doublons pour remplacement par hard/soft link

View File

@@ -25,7 +25,6 @@ environment.systemPackages = with pkgs; [
## Mail & Discussion (texte, audio) ## Mail & Discussion (texte, audio)
clawsMail clawsMail
hexchat hexchat
quassel
quasselClient quasselClient
mumble mumble
mutt mutt

View File

@@ -1,26 +0,0 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkIf mkMerge mkThenElse;
cfg = config.r6d.config-generator;
computers = config.r6d.computers;
profiles = config.r6d.profiles;
in
mkIf cfg.developpement-elm {
# Paquets
environment.systemPackages = with pkgs; [
elmPackages.elm
];
# Services
# Réseau
networking.firewall = {
allowedTCPPorts = [
];
allowedUDPPorts = [
];
};
}

View File

@@ -19,15 +19,8 @@ mkIf cfg.developpement-haskell {
haskellPackages.stylish-haskell # qualité de code haskellPackages.stylish-haskell # qualité de code
haskellPackages.hindent haskellPackages.hindent
haskellPackages.hlint
haskellPackages.threadscope
# Application perso # Application perso
haskellPackages.hahp haskellPackages.hahp
# Application
haskellPackages.autoproc # ? procmail
haskellPackages.darcs # Gestionnaire de version éponyme
haskellPackages.turtle # genre shell-scripting
]; ];
} }

View File

@@ -14,13 +14,5 @@ mkIf cfg.edition-video {
# Vidéo # Vidéo
#cinelerra # editeur video #cinelerra # editeur video
pitivi # montage vidéo pitivi # montage vidéo
ffmpeg-full # assemblage de flux audio & video en ligne de commande
]; ];
nixpkgs.config.packageOverrides = pkgs: {
ffmpeg-full = pkgs.ffmpeg-full.override {
nonfreeLicensing = true;
nvenc = true;
};
};
} }

View File

@@ -343,8 +343,8 @@ globalkeys = awful.util.table.join(
awful.key({ modkey }, "F7", function () awful.util.spawn("claws-mail") end), awful.key({ modkey }, "F7", function () awful.util.spawn("claws-mail") end),
awful.key({ modkey }, "F12", function () awful.util.spawn("slock") end), awful.key({ modkey }, "F12", function () awful.util.spawn("slock") end),
awful.key({ modkey, "Shift" }, "F1", function () awful.util.spawn("claws-mail") end), awful.key({ modkey, "Shift" }, "F1", function () awful.util.spawn("claws-mail") end),
awful.key({ modkey, "Shift" }, "F3", function () awful.util.spawn("pcmanfm") end), awful.key({ modkey, "Shift" }, "F3", function () awful.util.spawn("pcmanfm") end)
awful.key({ modkey }, "F11", function () awful.util.spawn("xrandr-auto") end) -- awful.key({ modkey }, "F11", function () awful.util.spawn("/home/taeradan/bin/xrandr-auto") end),
-- awful.key({ modkey, "Shift" }, "F11", function () awful.util.spawn("/home/taeradan/bin/xrandr-left") end), -- awful.key({ modkey, "Shift" }, "F11", function () awful.util.spawn("/home/taeradan/bin/xrandr-left") end),
-- awful.key({ modkey, "Control" }, "F11", function () awful.util.spawn("/home/taeradan/bin/xrandr-right") end), -- awful.key({ modkey, "Control" }, "F11", function () awful.util.spawn("/home/taeradan/bin/xrandr-right") end),
@@ -564,6 +564,6 @@ client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_n
-- }}} -- }}}
-- Au démarrage -- Au démarrage
awful.util.spawn_with_shell("xrandr-auto || true") -- awful.util.spawn_with_shell("/home/taeradan/bin/xrandr-auto")
-- awful.util.spawn_with_shell("gnome-sound-applet") -- awful.util.spawn_with_shell("gnome-sound-applet")
-- awful.util.spawn_with_shell("nm-applet") -- awful.util.spawn_with_shell("nm-applet")

View File

@@ -8,7 +8,6 @@
status = auto status = auto
[alias] [alias]
a = add -p a = add -p
br = for-each-ref --sort=committerdate refs/heads/ --format='%(committerdate:short)\t%(authorname)\t%(refname:short)'
ci = commit ci = commit
co = checkout co = checkout
ff = pull --ff-only ff = pull --ff-only

View File

@@ -16,8 +16,7 @@ in
#./network-ipv6.nix #./network-ipv6.nix
./sudo.nix ./sudo.nix
./service-haveged.nix ./service-haveged.nix
./service-monitoring-munin.nix ./service-monitoring.nix
./service-monitoring-smokeping.nix
./service-ssh.nix ./service-ssh.nix
./udev.nix ./udev.nix
@@ -27,7 +26,6 @@ in
./app-cao.nix # de conception assisté par ordinateur & modélisation ./app-cao.nix # de conception assisté par ordinateur & modélisation
./app-cartographie.nix # manipuler les données géographiques & cartes ./app-cartographie.nix # manipuler les données géographiques & cartes
./app-developpement.nix # développer des programmes/scripts ./app-developpement.nix # développer des programmes/scripts
./app-developpement-elm.nix # développer en elm
./app-developpement-haskell.nix # développer en haskell ./app-developpement-haskell.nix # développer en haskell
./app-developpement-java.nix # développer en java ./app-developpement-java.nix # développer en java
./app-developpement-jetbrains.nix # outils jetbrains ./app-developpement-jetbrains.nix # outils jetbrains

View File

@@ -1,194 +0,0 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkIf mkMerge mkThenElse;
cfg = config.r6d.config-generator;
computers = config.r6d.computers;
profiles = config.r6d.profiles;
in
mkIf true {
# Paquets
environment.systemPackages = with pkgs; [
bind
];
security.setuidPrograms = [ "fping" ];
# Services
services.smokeping = {
enable = true;
probeConfig = ''
+ FPing
#binary = ${pkgs.fping}/bin/fping
binary = ${config.security.wrapperDir}/fping
+DNS
#binary = ${pkgs.bind}/bin/dig
binary = /run/current-system/sw/bin/dig
forks = 5
offset = 50%
step = 300
timeout = 15
'';
targetConfig = ''
probe = FPing
menu = Top
title = Suivi de la latence reseau
remark = Monitoring de la latence reseau. \
Here you will learn all about the latency of our network.
+ Local
probe = FPing
menu = Local
title = Local Network
++ LocalMachine
menu = Local Machine
title = This host
host = localhost
+ Grudu_Tinc
probe = FPing
title = Grudu_Tinc
menu = Grudu.net - Tinc
++ Hydra
menu = hydra.grudu.net
title = hydra.grudu.net
host = hydra.grudu.net
++ Monstre
menu = monstre.grudu.net
title = monstre.grudu.net
host = monstre.grudu.net
++ Rollo
menu = rollo.grudu.net
title = rollo.grudu.net
host = rollo.grudu.net
++ Ocean
menu = ocean.grudu.net
title = ocean.grudu.net
host = ocean.grudu.net
++ MultiHost
menu = Multihost
title = Ensemble de mesures de latence
host = /Grudu_Tinc/Monstre /Grudu_Tinc/Rollo /Grudu_Tinc/Ocean /Grudu_Tinc/Hydra
+ Grudu_DNS
title = Grudu_DNS
menu = Grudu.net - DNS
probe = DNS
pings = 5
++ Ocean
title = ocean
menu = serveur ocean
server = ocean.prunetwork.fr
+++ ocean
host = ocean.grudu.net
lookup = ocean.grudu.net
+++ rollo
host = rollo.grudu.net
lookup = rollo.grudu.net
++ Rollo
title = rollo
menu = serveur rollo
server = rollo.dubronetwork.fr
+++ ocean
host = ocean.grudu.net
lookup = ocean.grudu.net
+++ rollo
host = rollo.grudu.net
lookup = rollo.grudu.net
++ MultiHost
menu = Multihost
title = Ensemble de mesures DNS
host = /Grudu_DNS/Ocean/ocean /Grudu_DNS/Ocean/rollo /Grudu_DNS/Rollo/ocean /Grudu_DNS/Rollo/rollo
+ France
probe = FPing
title = France
menu = Operateur francais
++ Atos
menu = Atos
title = www.atos.fr
host = www.atos.fr
++ Axialys
menu = Axialys
title = www.axialys.fr
host = www.axialys.fr
++ Azurtel
menu = azurtel
title = www.azurtel.fr
host = www.azurtel.fr
++ Bouygues-Telecom
menu = Bouygues-Telecom
title = www.bouygues-telecom.fr
host = www.bouygues-telecom.fr
++ Colt
menu = Colt
title = www.colt.fr
host = www.colt.fr
++ Completel
menu = completel
title = www.completel.fr
host = www.completel.fr
++ Free
menu = Free
title = www.free.fr
host = www.free.fr
++ Kosmos
menu = Kosmos
title = www.kosmos.fr
host = www.kosmos.fr
++ Orange
menu = Orange
title = www.orange.fr
host = www.orange.fr
++ Renater
menu = Renater
title = www.renater.fr
host = www.renater.fr
++ SFR
menu = SFR
title = www.sfr.fr
host = www.sfr.fr
++ MultiHost
menu = Multihost
title = Ensemble de mesures DNS
host = /France/Atos /France/Axialys /France/Azurtel \
/France/Bouygues-Telecom \
/France/Completel \
/France/Free \
/France/Kosmos \
/France/Orange \
/France/Renater \
/France/SFR
# /France/Colt
'';
};
# Réseau
networking.firewall = {
allowedTCPPorts = [
#8081 # accès depuis localhost uniquement ou à travers un proxy nginx
];
allowedUDPPorts = [
];
};
}

View File

@@ -21,10 +21,7 @@ mkIf true {
services.munin-node = { services.munin-node = {
enable = true; enable = true;
}; };
systemd.services.munin-node = { systemd.services.munin-node.serviceConfig.TimeoutStartSec = "3min";
path = [ pkgs.munin pkgs.lm_sensors ];
serviceConfig.TimeoutStartSec = "1min";
};
## Munin server -- generate /var/www/munin ## Munin server -- generate /var/www/munin
services.munin-cron = { services.munin-cron = {

View File

@@ -13,7 +13,6 @@ mkIf profiles.isDesktop {
hardware.pulseaudio = { hardware.pulseaudio = {
enable = true; enable = true;
support32Bit = true; support32Bit = true;
daemon.config = { flat-volumes = "no"; };
}; };
#environment.etc."pulse/daemon.conf".text = "flat-volumes = no"; environment.etc."pulse/daemon.conf".text = "flat-volumes = no";
} }

View File

@@ -7,7 +7,7 @@ let
profiles = config.r6d.profiles; profiles = config.r6d.profiles;
in in
mkIf false { {
# Définition du IO Scheduler pour les SSD # Définition du IO Scheduler pour les SSD
services.udev.extraRules = '' services.udev.extraRules = ''
# set deadline scheduler for non-rotating disks # set deadline scheduler for non-rotating disks

View File

@@ -12,7 +12,6 @@ vim_configurable.customize {
# Here you can place all your vim plugins # Here you can place all your vim plugins
# They are installed managed by `vam` (a vim plugin manager) # They are installed managed by `vam` (a vim plugin manager)
#"vim-addon-nix" #"vim-addon-nix"
"elm-vim"
"vim-nix" "vim-nix"
"wombat256-vim" "wombat256-vim"
]; } ]; }