summaryrefslogtreecommitdiffstats
path: root/lass
diff options
context:
space:
mode:
Diffstat (limited to 'lass')
-rw-r--r--lass/1systems/mors/config.nix2
-rw-r--r--lass/1systems/prism/config.nix9
-rw-r--r--lass/1systems/xerxes/config.nix40
-rw-r--r--lass/1systems/xerxes/source.nix11
-rw-r--r--lass/2configs/baseX.nix4
-rw-r--r--lass/2configs/br.nix2
-rw-r--r--lass/2configs/browsers.nix45
-rw-r--r--lass/2configs/dcso-dev.nix5
-rw-r--r--lass/2configs/default.nix1
-rw-r--r--lass/2configs/exim-smarthost.nix1
-rw-r--r--lass/2configs/games.nix2
-rw-r--r--lass/2configs/hw/gpd-pocket.nix28
-rw-r--r--lass/2configs/hw/x220.nix5
-rw-r--r--lass/2configs/websites/lassulus.nix11
-rw-r--r--lass/5pkgs/default.nix2
-rw-r--r--lass/5pkgs/xmonad-lass.nix9
-rw-r--r--lass/source.nix2
17 files changed, 149 insertions, 30 deletions
diff --git a/lass/1systems/mors/config.nix b/lass/1systems/mors/config.nix
index fee43f8cd..ad133802f 100644
--- a/lass/1systems/mors/config.nix
+++ b/lass/1systems/mors/config.nix
@@ -179,7 +179,7 @@ with import <stockholm/lib>;
echo 'secrets are crypted' >&2
exit 23
else
- exec nix-shell -I stockholm="$PWD" --run 'deploy --system="$SYSTEM"'
+ exec nix-shell -I stockholm="$PWD" --run 'deploy --diff --system="$SYSTEM"'
fi
'';
predeploy = pkgs.writeDash "predeploy" ''
diff --git a/lass/1systems/prism/config.nix b/lass/1systems/prism/config.nix
index b18abf509..87270b8b8 100644
--- a/lass/1systems/prism/config.nix
+++ b/lass/1systems/prism/config.nix
@@ -287,6 +287,15 @@ in {
}
<stockholm/krebs/2configs/reaktor-krebs.nix>
<stockholm/lass/2configs/dcso-dev.nix>
+ {
+ krebs.git.rules = [
+ {
+ user = [ config.krebs.users.jeschli ];
+ repo = [ config.krebs.git.repos.stockholm ];
+ perm = with git; push "refs/heads/staging/jeschli" [ fast-forward non-fast-forward create delete merge ];
+ }
+ ];
+ }
];
krebs.build.host = config.krebs.hosts.prism;
diff --git a/lass/1systems/xerxes/config.nix b/lass/1systems/xerxes/config.nix
new file mode 100644
index 000000000..0669748f5
--- /dev/null
+++ b/lass/1systems/xerxes/config.nix
@@ -0,0 +1,40 @@
+{ config, pkgs, ... }:
+
+{
+ imports = [
+ <stockholm/lass>
+ <stockholm/lass/2configs/hw/gpd-pocket.nix>
+ <stockholm/lass/2configs/boot/stock-x220.nix>
+
+ <stockholm/lass/2configs/retiolum.nix>
+ <stockholm/lass/2configs/exim-retiolum.nix>
+ <stockholm/lass/2configs/baseX.nix>
+ <stockholm/lass/2configs/browsers.nix>
+ <stockholm/lass/2configs/programs.nix>
+ <stockholm/lass/2configs/fetchWallpaper.nix>
+ ];
+
+ krebs.build.host = config.krebs.hosts.xerxes;
+
+ services.udev.extraRules = ''
+ SUBSYSTEM=="net", ATTR{address}=="b0:f1:ec:9f:5c:78", NAME="wl0"
+ '';
+
+ fileSystems."/" = {
+ device = "/dev/disk/by-uuid/d227d88f-bd24-4e8a-aa14-9e966b471437";
+ fsType = "btrfs";
+ };
+
+ fileSystems."/boot" = {
+ device = "/dev/disk/by-uuid/16C8-D053";
+ fsType = "vfat";
+ };
+
+ fileSystems."/home" = {
+ device = "/dev/disk/by-uuid/1ec4193b-7f41-490d-8782-7677d437b358";
+ fsType = "btrfs";
+ };
+
+ boot.initrd.luks.devices = [ { name = "luksroot"; device = "/dev/disk/by-uuid/d17f19a3-dcba-456d-b5da-e45cc15dc9c8"; } ];
+ networking.wireless.enable = true;
+}
diff --git a/lass/1systems/xerxes/source.nix b/lass/1systems/xerxes/source.nix
new file mode 100644
index 000000000..11f5bf796
--- /dev/null
+++ b/lass/1systems/xerxes/source.nix
@@ -0,0 +1,11 @@
+with import <stockholm/lib>;
+import <stockholm/lass/source.nix> {
+ name = "xerxes";
+ secure = true;
+ override = {
+ nixpkgs.git = mkForce {
+ url = https://github.com/lassulus/nixpkgs;
+ ref = "3eccd0b";
+ };
+ };
+}
diff --git a/lass/2configs/baseX.nix b/lass/2configs/baseX.nix
index 32a9f66cf..9712bafff 100644
--- a/lass/2configs/baseX.nix
+++ b/lass/2configs/baseX.nix
@@ -112,10 +112,6 @@ in {
xkbOptions = "caps:backspace";
};
- services.logind.extraConfig = ''
- HandleLidSwitch=ignore
- '';
-
services.urxvtd.enable = true;
services.xresources.enable = true;
lass.screenlock.enable = true;
diff --git a/lass/2configs/br.nix b/lass/2configs/br.nix
index 35bac8fee..ad307c797 100644
--- a/lass/2configs/br.nix
+++ b/lass/2configs/br.nix
@@ -18,7 +18,7 @@ with import <stockholm/lib>;
netDevices = {
bra = {
model = "MFCL2700DN";
- ip = "10.23.42.221";
+ ip = "10.42.23.221";
};
};
};
diff --git a/lass/2configs/browsers.nix b/lass/2configs/browsers.nix
index 6c381863c..9459cfd6f 100644
--- a/lass/2configs/browsers.nix
+++ b/lass/2configs/browsers.nix
@@ -5,19 +5,23 @@ let
mainUser = config.users.extraUsers.mainUser;
- browser-select = pkgs.writeScriptBin "browser-select" ''
- BROWSER=$(echo -e "${concatStringsSep "\\n" (attrNames config.lass.browser.paths)}" | ${pkgs.dmenu}/bin/dmenu)
+ browser-select = let
+ sortedPaths = sort (a: b: a.value.precedence > b.value.precedence)
+ (mapAttrsToList (name: value: { inherit name value; })
+ config.lass.browser.paths);
+ in pkgs.writeScriptBin "browser-select" ''
+ BROWSER=$(echo -e "${concatStringsSep "\\n" (map (getAttr "name") sortedPaths)}" | ${pkgs.dmenu}/bin/dmenu)
case $BROWSER in
${concatMapStringsSep "\n" (n: ''
- ${n})
- export BIN=${config.lass.browser.paths.${n}}/bin/${n}
+ ${n.name})
+ export BIN=${n.value.path}/bin/${n.name}
;;
- '') (attrNames config.lass.browser.paths)}
+ '') (sortedPaths)}
esac
$BIN "$@"
'';
- createChromiumUser = name: extraGroups:
+ createChromiumUser = name: extraGroups: precedence:
let
bin = pkgs.writeScriptBin name ''
/var/run/wrappers/bin/sudo -u ${name} -i ${pkgs.chromium}/bin/chromium $@
@@ -31,7 +35,7 @@ let
useDefaultShell = true;
createHome = true;
};
- lass.browser.paths.${name} = bin;
+ lass.browser.paths.${name}.path = bin;
security.sudo.extraConfig = ''
${mainUser.name} ALL=(${name}) NOPASSWD: ALL
'';
@@ -40,10 +44,10 @@ let
];
};
- createFirefoxUser = name: extraGroups:
+ createFirefoxUser = name: extraGroups: precedence:
let
bin = pkgs.writeScriptBin name ''
- /var/run/wrappers/bin/sudo -u ${name} -i ${pkgs.firefox}/bin/firefox $@
+ /var/run/wrappers/bin/sudo -u ${name} -i ${pkgs.firefox-devedition-bin}/bin/firefox-devedition $@
'';
in {
users.extraUsers.${name} = {
@@ -54,7 +58,10 @@ let
useDefaultShell = true;
createHome = true;
};
- lass.browser.paths.${name} = bin;
+ lass.browser.paths.${name} = {
+ path = bin;
+ inherit precedence;
+ };
security.sudo.extraConfig = ''
${mainUser.name} ALL=(${name}) NOPASSWD: ALL
'';
@@ -79,14 +86,24 @@ in {
type = types.path;
};
options.lass.browser.paths = mkOption {
- type = with types; attrsOf path;
+ type = types.attrsOf (types.submodule ({
+ options = {
+ path = mkOption {
+ type = types.path;
+ };
+ precedence = mkOption {
+ type = types.int;
+ default = 0;
+ };
+ };
+ }));
};
}
- ( createFirefoxUser "ff" [ "audio" ] )
- ( createChromiumUser "cr" [ "video" "audio" ] )
+ ( createFirefoxUser "ff" [ "audio" ] 10 )
+ ( createChromiumUser "cr" [ "video" "audio" ] 9 )
+ ( createChromiumUser "gm" [ "video" "audio" ] 8 )
( createChromiumUser "wk" [ "video" "audio" ] )
( createChromiumUser "fb" [ "video" "audio" ] )
- ( createChromiumUser "gm" [ "video" "audio" ] )
( createChromiumUser "com" [ "video" "audio" ] )
];
}
diff --git a/lass/2configs/dcso-dev.nix b/lass/2configs/dcso-dev.nix
index b7fcc7aab..2b91f91d6 100644
--- a/lass/2configs/dcso-dev.nix
+++ b/lass/2configs/dcso-dev.nix
@@ -15,6 +15,7 @@ in {
createHome = true;
openssh.authorizedKeys.keys = [
config.krebs.users.lass.pubkey
+ config.krebs.users.lass-android.pubkey
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDhQdDQFMxXOjbC+Avx3mlcFHqQpFUk/q9sO6ATA65jCV3YzN11vhZDDv54hABVS2h8TPXs7Lu3PCvK9qouASd2h4Ie9cExUmn50G/iwgFIODsCugVYBzVt1iwaAdwz1Hb9DKYXbVXanzVJjimmrrlQNvsyZg85lcnfyedpPX5ad+4FdSP68LHqEHC18LTitldR6V4P1omaKHlOtVpDgR/72tDgbtNZDBn3EU+TPk9OLTzjc6PinPw4iIvjEfiu14APwXpFDIqT7P7SjOEFpa0v/1z7dhxIy/Z9XbqyEdUfhv3PjZR5K2C+VzR7g6jVEVR2xFId51MpLv/Un4/lalbphBEw3I90Rr8tatOJiFhyrXbaKTcLqp1sIu05OxdPkm3hzfmLIhoKxhaIlXH7WQ9sAqxL1NAQ7O+J6yT4DMnwKzvpkkJjBaGtV84Pp1cccfNRH8XXID3FkWkrUpdgXWBpyLnRq4ilUJTajkU0GSdXkq8kLL3mWg9LPRTg3dmDj61ZB/qhjM61ppwHJvDRN9WI5HruXIU6nOQjh5yE2C/JZfLcsZD4Y1UDBy5/JSZrCVT2sQjFopkkYEkRCbX7oITHOH4iyRdxZkKWLUPboFrcmBpXO+owCEhO4JZrtfFWMC6qM++nrmiZWOrdIOIvdYHWluhKR2shlkisEKQP5pUqkw== markus.hihn@dcso.de"
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC1T5+2epslFARSnETdr4wdolA6ocJaD4H9tmz6BZFQKXlwIq+OMp+sSEdwYwW3Lu9+mNbBHPxVVJDWg/We9DXB0ezXPM5Bs1+FcehmkoGwkmgKaFCDt0sL+CfSnog/3wEkN21O/rQxVFqMmiJ7WUDGci6IKCFZ5ZjOsmmfHg5p3LYxU9xv33fNr2v+XauhrGbFtQ7eDz4kSywxN/aw73LN4d8em0V0UV8VPI3Qkw7MamDFwefA+K1TfK8pBzMeruU6N7HLuNkpkAp7kS+K4Zzd72aQtR37a5qMiFUbOxQ9B7iFypuPx0iu6ZwY1s/sM8t3kLmcDJ9O4FOTzlbpneet3as6iJ+Ckr/TlfKor2Tl5pWcXh2FXHoG8VUu5bYmIViJBrKihAlAQfQN0mJ9fdFTnCXVTtbYTy11s4eEVHgUlb7oSpgBnx5bnBONgApbsOX9zyoo8wz8KkZBcf1SQpkV5br8uUAHCcZtHuY6I3kKlv+8lJmgUipiYzMdTi7+dHa49gVEcEKL4ZnJ0msQkl4XT7JjKETLvumC4/TIqVuRu48wuYalkCR9OzxCsTXQ/msBJBztPdYLrEOXVb2HfzuCT+43UuMQ5rP/EoPy0TWQO9BaqfEXqvbOvWjVxj/GMvglQ2ChZTwHxwwTKB8qRVvJLnbZQwizQiSrkzjb6hRJfQ== u0_a165@localhost"
];
@@ -42,6 +43,10 @@ in {
};
};
+ krebs.per-user.dev.packages = [
+ pkgs.go
+ ];
+
security.sudo.extraConfig = ''
${mainUser.name} ALL=(dev) NOPASSWD: ALL
'';
diff --git a/lass/2configs/default.nix b/lass/2configs/default.nix
index f8b750093..0e00dc2fd 100644
--- a/lass/2configs/default.nix
+++ b/lass/2configs/default.nix
@@ -22,6 +22,7 @@ with import <stockholm/lib>;
config.krebs.users.lass.pubkey
config.krebs.users.lass-shodan.pubkey
config.krebs.users.lass-icarus.pubkey
+ config.krebs.users.lass-xerxes.pubkey
];
};
mainUser = {
diff --git a/lass/2configs/exim-smarthost.nix b/lass/2configs/exim-smarthost.nix
index 763633dd9..2d848773f 100644
--- a/lass/2configs/exim-smarthost.nix
+++ b/lass/2configs/exim-smarthost.nix
@@ -48,6 +48,7 @@ with import <stockholm/lib>;
{ from = "tomtop@lassul.us"; to = lass.mail; }
{ from = "aliexpress@lassul.us"; to = lass.mail; }
{ from = "business@lassul.us"; to = lass.mail; }
+ { from = "payeer@lassul.us"; to = lass.mail; }
];
system-aliases = [
{ from = "mailer-daemon"; to = "postmaster"; }
diff --git a/lass/2configs/games.nix b/lass/2configs/games.nix
index d114a826d..6cea271c1 100644
--- a/lass/2configs/games.nix
+++ b/lass/2configs/games.nix
@@ -57,7 +57,7 @@ let
in {
environment.systemPackages = with pkgs; [
- dwarf_fortress
+ (dwarf-fortress.override { theme = dwarf-fortress-packages.phoebus-theme; })
doom1
doom2
vdoom1
diff --git a/lass/2configs/hw/gpd-pocket.nix b/lass/2configs/hw/gpd-pocket.nix
new file mode 100644
index 000000000..87b4c518b
--- /dev/null
+++ b/lass/2configs/hw/gpd-pocket.nix
@@ -0,0 +1,28 @@
+{ pkgs, ... }:
+
+let
+ dummy_firmware = pkgs.writeTextFile {
+ name = "brcmfmac4356-pcie.txt";
+ text = builtins.readFile ./brcmfmac4356-pcie.txt;
+ destination = "/lib/firmware/brcm/brcmfmac4356-pcie.txt";
+ };
+in {
+ #imports = [ <nixpkgs/nixos/modules/installer/scan/not-detected.nix> ];
+ hardware.firmware = [ dummy_firmware ];
+ hardware.enableRedistributableFirmware = true;
+
+ boot.initrd.availableKernelModules = [ "xhci_pci" "usbhid" "usb_storage" "sd_mod" "sdhci_acpi" "sdhci_pci" ];
+ boot.kernelPackages = pkgs.linuxPackages_4_14;
+ boot.kernelParams = [
+ "fbcon=rotate:1"
+ ];
+ services.xserver.displayManager.sessionCommands = ''
+ (sleep 2 && ${pkgs.xorg.xrandr}/bin/xrandr --output DSI1 --rotate right)
+ (sleep 2 && ${pkgs.xorg.xinput}/bin/xinput set-prop 'Goodix Capacitive TouchScreen' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1)
+ '';
+ services.xserver.dpi = 200;
+ fonts.fontconfig.dpi = 200;
+ lass.fonts.regular = "xft:Hack-Regular:pixelsize=22,xft:Symbola";
+ lass.fonts.bold = "xft:Hack-Bold:pixelsize=22,xft:Symbola";
+ lass.fonts.italic = "xft:Hack-RegularOblique:pixelsize=22,xft:Symbol";
+}
diff --git a/lass/2configs/hw/x220.nix b/lass/2configs/hw/x220.nix
index bf7decc40..f5651da13 100644
--- a/lass/2configs/hw/x220.nix
+++ b/lass/2configs/hw/x220.nix
@@ -29,4 +29,9 @@
options = ["nosuid" "nodev" "noatime"];
};
};
+
+ services.logind.extraConfig = ''
+ HandleLidSwitch=ignore
+ '';
+
}
diff --git a/lass/2configs/websites/lassulus.nix b/lass/2configs/websites/lassulus.nix
index 77f0c79e3..25ca1f455 100644
--- a/lass/2configs/websites/lassulus.nix
+++ b/lass/2configs/websites/lassulus.nix
@@ -153,15 +153,15 @@ in {
};
security.acme.certs."cgit.lassul.us" = {
- email = "lassulus@gmail.com";
- webroot = "/var/lib/acme/acme-challenges";
+ email = "lassulus@lassul.us";
+ webroot = "/var/lib/acme/acme-challenge";
plugins = [
"account_key.json"
- "key.pem"
"fullchain.pem"
+ "key.pem"
];
group = "nginx";
- allowKeysForGroup = true;
+ user = "nginx";
};
@@ -170,6 +170,9 @@ in {
addSSL = true;
sslCertificate = "/var/lib/acme/cgit.lassul.us/fullchain.pem";
sslCertificateKey = "/var/lib/acme/cgit.lassul.us/key.pem";
+ locations."/.well-known/acme-challenge".extraConfig = ''
+ root /var/lib/acme/acme-challenge;
+ '';
};
users.users.blog = {
diff --git a/lass/5pkgs/default.nix b/lass/5pkgs/default.nix
index 5b668c88f..10df08e7f 100644
--- a/lass/5pkgs/default.nix
+++ b/lass/5pkgs/default.nix
@@ -23,7 +23,7 @@
screengrab = pkgs.writeDashBin "screengrab" ''
resolution="$(${pkgs.xorg.xrandr}/bin/xrandr | ${pkgs.gnugrep}/bin/grep '*' | ${pkgs.gawk}/bin/awk '{print $1}')"
- ${pkgs.ffmpeg}/bin/ffmpeg -f x11grab -r 25 -i :0.0 -s $resolution -c:v huffyuv $1
+ ${pkgs.ffmpeg}/bin/ffmpeg -f x11grab -r 25 -i :${toString config.services.xserver.display} -s $resolution -c:v huffyuv $1
'';
};
}
diff --git a/lass/5pkgs/xmonad-lass.nix b/lass/5pkgs/xmonad-lass.nix
index 65bec117d..d3f76903d 100644
--- a/lass/5pkgs/xmonad-lass.nix
+++ b/lass/5pkgs/xmonad-lass.nix
@@ -30,6 +30,7 @@ import XMonad.Actions.CycleWS (toggleWS)
import XMonad.Actions.DynamicWorkspaces ( addWorkspacePrompt, renameWorkspace, removeEmptyWorkspace)
import XMonad.Actions.DynamicWorkspaces (withWorkspace)
import XMonad.Actions.GridSelect (GSConfig(..), gridselectWorkspace, navNSearch)
+import XMonad.Hooks.EwmhDesktops (ewmh)
import XMonad.Hooks.FloatNext (floatNext)
import XMonad.Hooks.FloatNext (floatNextHook)
import XMonad.Hooks.ManageDocks (avoidStruts, ToggleStruts(ToggleStruts))
@@ -39,10 +40,10 @@ import XMonad.Hooks.UrgencyHook (SpawnUrgencyHook(..), withUrgencyHook)
import XMonad.Layout.FixedColumn (FixedColumn(..))
import XMonad.Layout.Minimize (minimize, minimizeWindow, MinimizeMsg(RestoreNextMinimizedWin))
import XMonad.Layout.NoBorders (smartBorders)
+import XMonad.Layout.SimplestFloat (simplestFloat)
import XMonad.Prompt (autoComplete, font, searchPredicate, XPConfig)
import XMonad.Prompt.Window (windowPromptGoto, windowPromptBringCopy)
import XMonad.Util.EZConfig (additionalKeysP)
-import XMonad.Layout.SimpleFloat (simpleFloat)
import XMonad.Stockholm.Shutdown
@@ -59,7 +60,7 @@ main = getArgs >>= \case
main' :: IO ()
main' = do
- xmonad
+ xmonad $ ewmh
$ withUrgencyHook (SpawnUrgencyHook "echo emit Urgency ")
$ def
{ terminal = myTerm
@@ -77,7 +78,7 @@ main' = do
myLayoutHook = defLayout
where
- defLayout = minimize $ ((avoidStruts $ Tall 1 (3/100) (1/2) ||| Full ||| Mirror (Tall 1 (3/100) (1/2))) ||| FixedColumn 2 80 80 1) ||| simpleFloat
+ defLayout = minimize $ ((avoidStruts $ Tall 1 (3/100) (1/2) ||| Full ||| Mirror (Tall 1 (3/100) (1/2))) ||| FixedColumn 2 80 80 1 ||| simplestFloat)
myKeyMap :: [([Char], X ())]
myKeyMap =
@@ -86,6 +87,8 @@ myKeyMap =
, ("M4-p", spawn "${pkgs.pass}/bin/passmenu --type")
, ("M4-o", spawn "${pkgs.brain}/bin/brainmenu --type")
, ("M4-i", spawn "${pkgs.dpass}/bin/dpassmenu --type")
+
+ , ("<XF86AudioMute>", spawn "${pkgs.pulseaudioLight.out}/bin/pactl -- set-sink-mute @DEFAULT_SINK@ toggle")
, ("<XF86AudioRaiseVolume>", spawn "${pkgs.pulseaudioLight.out}/bin/pactl -- set-sink-volume @DEFAULT_SINK@ +4%")
, ("<XF86AudioLowerVolume>", spawn "${pkgs.pulseaudioLight.out}/bin/pactl -- set-sink-volume @DEFAULT_SINK@ -4%")
, ("<XF86MonBrightnessDown>", spawn "${pkgs.xorg.xbacklight}/bin/xbacklight -time 0 -dec 1%")
diff --git a/lass/source.nix b/lass/source.nix
index 292b92a9e..b60a6cb6c 100644
--- a/lass/source.nix
+++ b/lass/source.nix
@@ -10,7 +10,7 @@ in
nixos-config.symlink = "stockholm/lass/1systems/${name}/config.nix";
nixpkgs.git = {
url = https://github.com/nixos/nixpkgs;
- ref = "f9390d6";
+ ref = "b4a0c01";
};
secrets.file = getAttr builder {
buildbot = toString <stockholm/lass/2configs/tests/dummy-secrets>;