Compare commits

..

15 Commits

17 changed files with 187 additions and 31 deletions

View File

@@ -2,7 +2,11 @@
{
imports = [
# recettes
./base/base.nix
./desktop/desktop.nix
# moulinette de configuration
./config-generator.nix
];
}

View File

@@ -11,5 +11,12 @@ in {
drivers = [
pkgs.samsung-unified-linux-driver
];
# Suppression automatique des fichiers temporaires.
# Par défaut, cups conserve une copie de ce qui a été imprimé
# pas cool pour les mots de passe ou autre donnée sensible
extraConf = ''
PreserveJobHistory No
PreserveJobFiles No
'';
};
}

File diff suppressed because one or more lines are too long

View File

@@ -9,6 +9,14 @@
./services.nix
# inclusion conditionnelle
./config-generator.nix
./activation-manuelle/auto-upgrade.nix
./activation-manuelle/laptop.nix
./activation-manuelle/locate.nix
./activation-manuelle/fail2ban.nix
./activation-manuelle/nix-serve-client.nix
./activation-manuelle/nix-serve-server.nix
./activation-manuelle/print.nix
./activation-manuelle/swap.nix
./activation-manuelle/users.nix
];
}

View File

@@ -9,19 +9,7 @@ let
host = config.networking.hostName;
in
{
imports = [
./activation-manuelle/auto-upgrade.nix
./activation-manuelle/laptop.nix
./activation-manuelle/locate.nix
./activation-manuelle/fail2ban.nix
./activation-manuelle/nix-serve-client.nix
./activation-manuelle/nix-serve-server.nix
./activation-manuelle/print.nix
./activation-manuelle/swap.nix
./activation-manuelle/users.nix
];
{
###### interface
options = {
@@ -43,7 +31,9 @@ in
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.";
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";
docker = mkEnableOption "Profil pour l'utilisation de Docker.";
dns_autorite = mkEnableOption "Profil pour servir les fichiers de zone DNS.";
dns_resolveur = mkEnableOption "Profil pour activer un résolveur DNS local.";
@@ -127,6 +117,7 @@ in
r6d.profiles.isDesktop = true;
r6d.config-generator = {
developpement = true;
docker = true;
};
})
@@ -146,6 +137,7 @@ in
})
(mkIf (pfl.isDubronetwork && pfl.isWorkstation) {
r6d.config-generator = {
conception-assistee = true;
virtualbox = true;
xmonad = true;
};
@@ -167,6 +159,10 @@ in
isPrunetwork = true;
isServer = true;
};
r6d.config-generator = {
docker = true;
};
})
(mkIf comp.isRadx {
r6d.profiles = {

View File

@@ -7,7 +7,7 @@ let
profiles = config.r6d.profiles;
in
mkIf profiles.isDesktop {
mkIf cfg.conception-assistee {
environment.systemPackages = with pkgs; [
# CAO

View File

@@ -7,7 +7,7 @@ let
profiles = config.r6d.profiles;
in
mkIf profiles.isDesktop {
mkIf cfg.developpement {
environment.systemPackages = with pkgs; [
# Base de données

View File

@@ -0,0 +1,32 @@
Config { font = "xft:Monospace-10:bold"
, additionalFonts = []
, border = NoBorder
, bgColor = "black"
, fgColor = "white"
, alpha = 255
, position = Top
--, textOffset = -1
--, iconOffset = -1
, lowerOnStart = False
, pickBroadest = False
, persistent = False
, hideOnStart = False
, iconRoot = "."
, allDesktops = True
, overrideRedirect = True
, commands = [ Run DynNetwork ["-L","0","-H","32","--normal","green","--high","red"] 10
, Run Cpu ["-L","3","-H","50","--normal","green","--high","red"] 10
, Run Memory ["-t","Mem: <usedratio>%"] 10
, Run Battery ["-t", "Batt: <left>%, <watts>W -> <timeleft>"] 10
, Run Date "%F %H:%M:%S" "date" 10
--, Run Date "%a %b %_d %Y %H:%M:%S" "date" 10
, Run StdinReader
, Run Brightness [] 10
, Run Volume "default" "Master" [] 10
]
, sepChar = "%"
, alignSep = "}{"
, template = " %StdinReader% }\
\{ %cpu% | %memory% | %dynnetwork% | %battery% | %bright% | %default:Master% | <fc=#ee9a00>%date%</fc>"
}

View File

@@ -0,0 +1,47 @@
import Graphics.X11.ExtraTypes.XF86
import XMonad
import XMonad.Config.Desktop
import XMonad.Config.Azerty
import XMonad.Hooks.DynamicLog
import XMonad.Util.EZConfig
-- # Ligne principale
main = xmonad =<< xmobar myConfig
--main = xmonad =<< statusBar myBar myPP toggleStrutsKey myConfig
-- # Réglages de xmonad
myConfig = azertyConfig
{ terminal = "sakura"
, modMask = mod4Mask
, borderWidth = 2
, workspaces = myWorkspaces
} `additionalKeys` myKeys `removeKeys` unusefulKeys
myWorkspaces = ["1:mail","2:chat","3:web","4","5","6","7","8", "9:system"]
myKeys = [ ((0, xF86XK_MonBrightnessUp), spawn "xbacklight +10") -- +brightness
, ((0, xF86XK_MonBrightnessDown), spawn "xbacklight -10") -- -brightness
, ((0, xF86XK_AudioRaiseVolume), spawn "amixer set Master 3%+") -- +volume
, ((0, xF86XK_AudioLowerVolume), spawn "amixer set Master 3%-") -- -volume
, ((0, xF86XK_AudioMute), spawn "amixer set Master toggle") -- mute volume
, ((0, xF86XK_AudioPlay), spawn "cmus-remote -u") -- cmus play/stop
, ((0, xF86XK_AudioPrev), spawn "cmus-remote -r") -- cmus next
, ((0, xF86XK_AudioNext), spawn "cmus-remote -n") -- cmus previous
]
unusefulKeys = []
-- # Réglages de xmobar
myBar = "xmobar"
-- Custom PP, configure it as you like. It determines what is being written to the bar.
myPP = xmobarPP
{ ppCurrent = xmobarColor "black" "yellow" . wrap " " " "
}
-- Key binding to toggle the gap for the bar.
toggleStrutsKey XConfig {XMonad.modMask = modMask} = (modMask, xK_b)

View File

@@ -35,9 +35,9 @@ mkIf profiles.isDesktop {
graphviz # dot, neato : traçage de graphes (carré, rond)
jekyll # générateur statique de site web
pandoc
#texLiveFull # distribution LaTeX
texLive # distribution LaTeX de base
texLiveBeamer # paquets et extensions pour Beamer
texLiveModerncv # paquets pour la classe Modern CV
texLiveFull # distribution LaTeX
#texLive # distribution LaTeX de base
#texLiveBeamer # paquets et extensions pour Beamer
#texLiveModerncv # paquets pour la classe Modern CV
];
}

View File

@@ -11,7 +11,10 @@ mkIf profiles.isDesktop {
environment.systemPackages = with pkgs; [
# Gestion de données géographiques
expat
gpsbabel # pour convettir les données des GPS
josm # outil de contribution à OpenStreetMap
qgis # client lourd de manipulation de données géographiques
viking # analyse de topo, gestion de données GPS
];
}

View File

@@ -11,13 +11,13 @@ mkIf profiles.isDesktop {
environment.systemPackages = with pkgs; [
# Multimedia
picard # gestion des métadonnées des fichiers musicaux
## Audio
audacity # montage audio
beep
cmus # lecteur audio console
easytag # gestion des métadonnées des fichiers musicaux
picard # gestion des métadonnées des fichiers musicaux
espeak # synthèse vocale
paprefs # préferences pulseaudio
pavucontrol # mixer pulseaudio

View File

@@ -11,11 +11,11 @@ mkIf profiles.isDesktop {
environment.systemPackages = with pkgs; [
# Outils réseau
iperf
iptraf-ng
nload
iperf # outil de mesure de la qualité du réseau
iptraf-ng # outil de mesure de la qualité du réseau
nload # affichage de statisques d'utilisation instantannées du réseau
telnet
vsftpd
#vsftpd # serveur FTP
## Diagnostic
arp-scan
@@ -23,10 +23,10 @@ mkIf profiles.isDesktop {
whois
## Routage
quagga
quagga # daemon de routage
## Tunnel
openvpn
# openvpn
tinc
];

View File

@@ -0,0 +1,15 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkIf;
cfg = config.r6d.config-generator;
computers = config.r6d.computers;
profiles = config.r6d.profiles;
in
mkIf profiles.isDesktop {
environment.systemPackages = with pkgs; [
];
}

View File

@@ -11,18 +11,20 @@ in
imports = [ # applications :
# commandées par config-generator
./activation-manuelle/app-awesome.nix # pour les profils awesome
./activation-manuelle/app-cao.nix # de conception assisté par ordinateur & modélisation
./activation-manuelle/app-developpement.nix # utilisée pour développer des programmes/scripts
./activation-manuelle/app-docker.nix # pour activer docker
./activation-manuelle/app-jeux.nix # permettant de jouer ;)
./activation-manuelle/app-virtualbox.nix # pour exploiter virtualbox
./activation-manuelle/laptop.nix # appli & configuration adaptée pour un PC portable$
./activation-manuelle/xmonad.nix # gestionnaire de fenêtres xmonad
./activation-manuelle/xmonad/xmonad.nix # gestionnaire de fenêtres xmonad
# installées systématiquement
./desktop-minimal.nix
./app-adminsys.nix # pour gérer le système dans son ensemble et les services
./app-bureautique.nix # dédiée à la bureautique (traitement de texte, dessin, ...)
./app-cao.nix # de conception assisté par ordinateur & modélisation
# A ajouter dans config-generator & revoir le contenu pour le mettre si nécessaire dans minimal
./app-cartographie.nix # utilisée pour manipuler les données géographiques & cartes
./app-client-internet.nix # pour accéder & utiliser des ressources par le réseau
./app-dev.nix # utilisée pour développer des programmes/scripts
./app-geo.nix # utilisée pour manipuler les données géographiques
./app-multimedia.nix # pour gérer le son, l'image et la vidéo
./app-network.nix # de gestion, de diagnostique & surveillance réseau
./app-securite.nix # relatives à la sécurité (chiffrement, gpg, mots de passe, ...)

View File

@@ -0,0 +1,40 @@
{ stdenv, fetchurl
, boost
, bzip2
, cmake
, expat
, geos
, lua
, postgresql
, proj
, zlib
}
stdenv.mkDerivation rec {
#version = "0.87.1";
version = "0.90.1";
name = "osm2pgsql-${version}-0";
src = fetchurl {
url = "https://github.com/openstreetmap/osm2pgsql/archive/${version}.tar.gz";
sha256 = "0i0zg8di8nbh96qnyyr156ikwcsq1w9b2291bazm5whb351flmqx";
};
#nativeBuildInputs = [ ];
buildInputs = [ ];
#preConfigure = ''
'';
#buildPhase = ''jam "-j$NIX_BUILD_CORES" '';
#installPhase = ''
#'';
meta = with stdenv.lib; {
homepage = http://wiki.openstreetmap.org/wiki/Osm2pgsql;
description = "osm2pgsql is a tool for loading OpenStreetMap data into a PostgreSQL / PostGIS database suitable for applications like rendering into a map, geocoding with Nominatim, or general analysis.";
license = licenses.gpl2;
#maintainers = [ maintainers.phunehehe ];
maintainers = [ maintainers.jpierre03 ];
};
}