Changes on zbox.sea
This commit is contained in:
parent
9f59ff30fe
commit
9eb6609c7a
|
@ -0,0 +1,2 @@
|
|||
configuration.nix
|
||||
hardware-configuration.nix
|
|
@ -0,0 +1,47 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.fudo.slynk;
|
||||
|
||||
initScript = port: pkgs.writeText "slynk.lisp" ''
|
||||
(load (merge-pathnames "quicklisp/setup.lisp" (user-homedir-pathname)))
|
||||
(ql:quickload :slynk)
|
||||
(slynk:create-server :port ${toString port} :dont-close t)
|
||||
(dolist (var '("LD_LIBRARY_PATH"))
|
||||
(format t "~S: ~S~%" var (sb-unix::posix-getenv var)))
|
||||
|
||||
(loop (sleep 60))
|
||||
'';
|
||||
|
||||
in {
|
||||
options.fudo.slynk = {
|
||||
enable = mkEnableOption "Enable Slynk emacs common lisp server.";
|
||||
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
description = "Port on which to open a Slynk server.";
|
||||
default = 4005;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.user.services.slynk = {
|
||||
description = "Slynk Common Lisp server.";
|
||||
|
||||
serviceConfig = {
|
||||
# Type = "simple";
|
||||
ExecStartPre = "${pkgs.lispPackages.quicklisp}/bin/quicklisp init";
|
||||
ExecStart = "${pkgs.sbcl-with-libs}/bin/sbcl --load ${initScript cfg.port}";
|
||||
Restart = "on-failure";
|
||||
PIDFile = "/run/slynk.$USERNAME.pid";
|
||||
};
|
||||
|
||||
environment = {
|
||||
LD_LIBRARY_PATH = "${pkgs.openssl_1_1.out}/lib:${pkgs.libuv.out}/lib";
|
||||
};
|
||||
|
||||
wantedBy = [ "default.target" ];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -18,6 +18,7 @@ with lib;
|
|||
./fudo/postgres.nix
|
||||
./fudo/prometheus.nix
|
||||
./fudo/system.nix
|
||||
./fudo/slynk.nix
|
||||
./fudo/webmail.nix
|
||||
|
||||
../fudo/profiles
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
./hosts/france.nix
|
|
@ -18,6 +18,7 @@
|
|||
autoconf
|
||||
automake
|
||||
bash
|
||||
boot
|
||||
bind
|
||||
binutils
|
||||
btrfs-progs
|
||||
|
@ -28,6 +29,7 @@
|
|||
certbot
|
||||
clang
|
||||
curl
|
||||
dpkg
|
||||
emacs
|
||||
fail2ban
|
||||
fortune
|
||||
|
@ -44,6 +46,7 @@
|
|||
jdk
|
||||
kerberos
|
||||
libisofs
|
||||
libstdcxxHook
|
||||
lispPackages.alexandria
|
||||
lispPackages.cl-ppcre
|
||||
lispPackages.clx
|
||||
|
@ -64,6 +67,7 @@
|
|||
ruby
|
||||
rustc
|
||||
sbcl
|
||||
sbclBootstrap
|
||||
screen
|
||||
service-wrapper
|
||||
stdenv
|
||||
|
@ -73,6 +77,7 @@
|
|||
unzip
|
||||
vim
|
||||
wget
|
||||
yubikey-manager
|
||||
];
|
||||
|
||||
system.stateVersion = "19.09";
|
||||
|
|
|
@ -5,8 +5,10 @@ with lib;
|
|||
config = mkIf (config.fudo.common.profile == "desktop") {
|
||||
environment.systemPackages = with pkgs; [
|
||||
cool-retro-term
|
||||
corefonts
|
||||
chrome-gnome-shell
|
||||
chromium
|
||||
evince
|
||||
ffmpeg-full
|
||||
firefox
|
||||
gimp
|
||||
|
@ -20,16 +22,44 @@ with lib;
|
|||
gtkimageview
|
||||
i3lock
|
||||
libfixposix
|
||||
minecraft
|
||||
minecraft-current
|
||||
mono
|
||||
mplayer
|
||||
mpv
|
||||
nomacs
|
||||
openssl_1_1
|
||||
pdftk
|
||||
python37Packages.youtube-dl
|
||||
redshift
|
||||
rhythmbox
|
||||
shotwell
|
||||
spotify
|
||||
sqlite
|
||||
steam
|
||||
(steam.override {
|
||||
nativeOnly = true;
|
||||
extraPkgs = pkgs: [
|
||||
mono
|
||||
gtk3
|
||||
gtk3-x11
|
||||
libgdiplus
|
||||
zlib
|
||||
];
|
||||
withJava = true;
|
||||
})
|
||||
(steam.override {
|
||||
nativeOnly = true;
|
||||
extraPkgs = pkgs: [
|
||||
mono
|
||||
fmodex
|
||||
gtk3
|
||||
gtk3-x11
|
||||
libgdiplus
|
||||
zlib
|
||||
];
|
||||
withJava = true;
|
||||
}).run
|
||||
# steam-run
|
||||
# steam-run-native
|
||||
system-config-printer
|
||||
virtmanager
|
||||
xorg.xev
|
||||
|
@ -37,13 +67,15 @@ with lib;
|
|||
virtmanager-qt
|
||||
];
|
||||
|
||||
nixpkgs.config.allowBroken = true;
|
||||
|
||||
# Splash screen
|
||||
boot.plymouth.enable = true;
|
||||
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
browseDomains = [config.fudo.domain];
|
||||
domainName = config.fudo.domain;
|
||||
browseDomains = [config.fudo.common.domain];
|
||||
domainName = config.fudo.common.domain;
|
||||
};
|
||||
|
||||
boot.tmpOnTmpfs = true;
|
||||
|
@ -56,16 +88,17 @@ with lib;
|
|||
xkbOptions = "ctrl:nocaps";
|
||||
|
||||
desktopManager.gnome3.enable = true;
|
||||
desktopManager.default = "gnome3";
|
||||
|
||||
displayManager.gdm.enable = true;
|
||||
|
||||
displayManager.defaultSession = "gnome";
|
||||
|
||||
windowManager.session = pkgs.lib.singleton {
|
||||
name = "stumpwm";
|
||||
start = ''
|
||||
${pkgs.lispPackages.stumpwm}/bin/stumpwm &
|
||||
waidPID=$!
|
||||
'';
|
||||
waidPID=$!
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -89,10 +122,12 @@ with lib;
|
|||
hardware.pulseaudio.enable = true;
|
||||
|
||||
fonts = {
|
||||
enableCoreFonts = true;
|
||||
enableFontDir = true;
|
||||
enableGhostscriptFonts = false;
|
||||
fontconfig.ultimate.enable = true;
|
||||
fontconfig.antialias = true;
|
||||
fontconfig.enable = true;
|
||||
fontconfig.penultimate.enable = true;
|
||||
fontconfig.subpixel.lcdfilter = "default";
|
||||
|
||||
fonts = with pkgs; [
|
||||
cantarell_fonts
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ <nixpkgs/nixos/modules/installer/scan/not-detected.nix>
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "uhci_hcd" "ehci_pci" "ata_piix" "ahci" "usb_storage" "floppy" "sd_mod" "sr_mod" ];
|
||||
boot.initrd.kernelModules = [ "dm-snapshot" ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/87833c39-299b-4e84-9854-beda4a8e0115";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/bfb464c0-c259-4c29-8e8f-b3011bd30c95";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/ac0fe2b7-dd7a-4e86-aaa0-942acf3d541d"; }
|
||||
];
|
||||
|
||||
nix.maxJobs = lib.mkDefault 8;
|
||||
}
|
|
@ -4,34 +4,84 @@ let
|
|||
hostname = "zbox";
|
||||
|
||||
in {
|
||||
imports = [
|
||||
../defaults.nix
|
||||
../networks/sea.fudo.org.nix
|
||||
../profiles/desktop.nix
|
||||
../hardware-configuration.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
glxinfo
|
||||
];
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
imports = [
|
||||
../defaults.nix
|
||||
../hardware-configuration.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
androidenv.androidPkgs_9_0.platform-tools
|
||||
android-studio
|
||||
glxinfo
|
||||
hll2380dw-cups
|
||||
nodejs
|
||||
signal-desktop
|
||||
usbutils
|
||||
];
|
||||
|
||||
fudo.common = {
|
||||
profile = "desktop";
|
||||
site = "seattle";
|
||||
};
|
||||
|
||||
fudo.slynk = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
hardware.cpu.intel.updateMicrocode = true;
|
||||
|
||||
programs.bash.enableCompletion = true;
|
||||
programs = {
|
||||
adb.enable = true;
|
||||
bash.enableCompletion = true;
|
||||
};
|
||||
|
||||
services.xserver = {
|
||||
videoDrivers = ["nvidia"];
|
||||
displayManager.gdm.wayland = false;
|
||||
# displayManager.gdm.wayland = false;
|
||||
};
|
||||
|
||||
hardware.opengl.driSupport32Bit = true;
|
||||
hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [ libva ];
|
||||
hardware.opengl.driSupport = true;
|
||||
|
||||
networking.hostName = hostname;
|
||||
hardware.pulseaudio.support32Bit = true;
|
||||
|
||||
networking = {
|
||||
hostName = hostname;
|
||||
|
||||
macvlans = {
|
||||
intif0 = {
|
||||
interface = "eno1";
|
||||
mode = "bridge";
|
||||
};
|
||||
};
|
||||
|
||||
interfaces = {
|
||||
eno1.useDHCP = false;
|
||||
intif0 = {
|
||||
macAddress = "02:dd:80:52:83:9b";
|
||||
useDHCP = false;
|
||||
ipv4.addresses = [
|
||||
{
|
||||
address = "10.0.0.110";
|
||||
prefixLength = 24;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
users.users.niten = {
|
||||
extraGroups = ["adbusers"];
|
||||
};
|
||||
|
||||
virtualisation.lxd.enable = true;
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
{ lib }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
joinString = lib.concatStringsSep;
|
||||
|
||||
pow = x: e: if (e == 0) then 1 else x * (pow x (e - 1));
|
||||
|
||||
in rec {
|
||||
|
||||
generateNBits = n: let
|
||||
helper = n: c: if (c == n) then pow 2 c else (pow 2 c) + (helper n (c + 1));
|
||||
in if (n <= 0) then throw "Can't generate 0 or fewer bits" else helper (n - 1) 0;
|
||||
|
||||
reverseIpv4 = ip: joinString "." (reverseList (splitString "." ip));
|
||||
|
||||
intToBinaryList = int: let
|
||||
helper = int: cur: let
|
||||
curExp = pow 2 cur;
|
||||
in if (curExp > int) then
|
||||
[]
|
||||
else
|
||||
[(if ((bitAnd curExp int) > 0) then 1 else 0)] ++ (helper int (cur + 1));
|
||||
in reverseList (helper int 0);
|
||||
|
||||
leftShift = int: n: int * (pow 2 n);
|
||||
|
||||
rightShift = int: n: int / (pow 2 n);
|
||||
|
||||
ipv4ToInt = ip: let
|
||||
els = map toInt (reverseList (splitString "." ip));
|
||||
in foldr (a: b: a + b) 0 (imap0 (i: el: (leftShift el (i * 8))) els);
|
||||
|
||||
intToIpv4 = int: joinString "." (map (i: toString (bitAnd (rightShift int (i * 8)) 255)) [ 3 2 1 0 ]);
|
||||
|
||||
rightPadBits = int: bits: bitOr int (generateNBits bits);
|
||||
|
||||
maskFromV32Network = network: let
|
||||
fullMask = ipv4ToInt "255.255.255.255";
|
||||
insignificantBits = 32 - (getNetworkMask network);
|
||||
in intToIpv4 (leftShift (rightShift fullMask insignificantBits) insignificantBits);
|
||||
|
||||
getNetworkMask = network: toInt (elemAt (splitString "/" network) 1);
|
||||
|
||||
getNetworkBase = network: let
|
||||
ip = elemAt (splitString "/" network) 0;
|
||||
insignificantBits = 32 - (getNetworkMask network);
|
||||
in intToIpv4 (leftShift (rightShift (ipv4ToInt ip) insignificantBits) insignificantBits);
|
||||
|
||||
networkMinIp = network: intToIpv4 (1 + (ipv4ToInt (getNetworkBase network)));
|
||||
|
||||
networkMaxIp = network: intToIpv4 (rightPadBits (ipv4ToInt (getNetworkBase network)) (32 - (getNetworkMask network)));
|
||||
|
||||
# To avoid broadcast IP...
|
||||
networkMaxButOneIp = network: intToIpv4 ((rightPadBits (ipv4ToInt (getNetworkBase network)) (32 - (getNetworkMask network))) - 1);
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
{ stdenv, fetchurl, makeWrapper, cups, dpkg, a2ps, ghostscript, gnugrep, gnused, coreutils, file, perl, which }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "hll2380dw-cups";
|
||||
version = "3.2.0-1";
|
||||
platform = "i386";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.brother.com/welcome/dlf101772/hll2380dwcupswrapper-${version}.i386.deb";
|
||||
sha256 = "08g3kx5lgwzb3f9ypj8knmpkkj0h3kv1i4gd20rzjxrx6vx1wbpl";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [ cups ghostscript dpkg a2ps ];
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
installPhase = ''
|
||||
dpkg-deb -x $src $out
|
||||
wrapProgram $out/opt/brother/Printers/HLL2380DW/cupswrapper/paperconfigml1 \
|
||||
--prefix PATH : ${stdenv.lib.makeBinPath [
|
||||
coreutils ghostscript gnugrep gnused
|
||||
]}
|
||||
mkdir -p $out/lib/cups/filter/
|
||||
ln -s $out/opt/brother/Printers/HLL2380DW/cupswrapper/brother_lpdwrapper_HLL2380W \
|
||||
$out/lib/cups/filter/brother_lpdwrapper_HLL2380DW
|
||||
ln -s $out/opt/brother/Printers/HLL2380DW/paperconfigml1 \
|
||||
$out/lib/cups/filter/
|
||||
mkdir -p $out/share/cups/model
|
||||
ln -s $out/opt/brother/Printers/HLL2380DW/cupswrapper/brother-HLL2380DW-cups-en.ppd $out/share/cups/model/
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://www.brother.com/;
|
||||
description = "Brother HL-L2380DW combined print driver";
|
||||
license = licenses.unfree;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
downloadPage = http://support.brother.com/g/b/downloadlist.aspx?c=us_ot&lang=en&prod=hll2380dw_us&os=128;
|
||||
};
|
||||
}
|
|
@ -15,22 +15,29 @@
|
|||
};
|
||||
});
|
||||
|
||||
minecraft-server_1_15_2 = pkgs.minecraft-server.overrideAttrs (oldAttrs: rec {
|
||||
version = "1.15.2";
|
||||
minecraft-current = pkgs.minecraft.overrideAttrs (oldAttrs: rec {
|
||||
src = builtins.fetchurl {
|
||||
url = "https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar";
|
||||
sha256 = "12kynrpxgcdg8x12wcvwkxka0fxgm5siqg8qq0nnmv0443f8dkw0";
|
||||
url = "https://launcher.mojang.com/download/Minecraft.tar.gz";
|
||||
sha256 = "1k9gf1v1law4kiz8f7i2fxkj5vq2cm37b3ys95zpyf4aiw5nzg33";
|
||||
};
|
||||
});
|
||||
|
||||
postgresql_11_gssapi = pkgs.postgresql_11.overrideAttrs (oldAttrs: rec {
|
||||
configureFlags = oldAttrs.configureFlags ++ [ "--with-gssapi" ];
|
||||
buildInputs = oldAttrs.buildInputs ++ [ pkgs.krb5 ];
|
||||
sbcl-with-libs = pkgs.sbcl.overrideAttrs (oldAttrs: rec {
|
||||
extraLibs = with pkgs; [
|
||||
openssl_1_1.dev
|
||||
];
|
||||
});
|
||||
|
||||
postgresql_12_gssapi = pkgs.postgresql_12.overrideAttrs (oldAttrs: rec {
|
||||
configureFlags = oldAttrs.configureFlags ++ [ "--with-gssapi" ];
|
||||
buildInputs = oldAttrs.buildInputs ++ [ pkgs.krb5 ];
|
||||
});
|
||||
|
||||
hll2380dw-cups = import ./hll2380dw-cups.nix {
|
||||
inherit (pkgs) stdenv fetchurl makeWrapper cups dpkg a2ps ghostscript gnugrep gnused coreutils file perl which;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue