diff --git a/Readme.md b/Readme.md
index ca89a57..5393fdb 100644
--- a/Readme.md
+++ b/Readme.md
@@ -40,6 +40,6 @@ Newest first.
Wallpaper link
-[My current wallpaper](config/Wallpaper.nix#L4)
+[My current wallpaper](config/Wallpaper.nix#L11)
Color theming based on wallpaper thanks to [Stylix](https://github.com/danth/stylix).
diff --git a/config/Dpi.nix b/config/Dpi.nix
index 0d8f8e3..19a9e6c 100644
--- a/config/Dpi.nix
+++ b/config/Dpi.nix
@@ -68,13 +68,13 @@ in
in
''
ip46tables -t mangle -I POSTROUTING -p tcp --dport 443 -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:6 -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num ${qnum} --queue-bypass
- ''
+ ''
+ lib.optionalString (cfg.httpSupport) ''
ip46tables -t mangle -I POSTROUTING -p tcp --dport 80 ${httpParams} -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num ${qnum} --queue-bypass
- ''
+ ''
+ lib.optionalString (cfg.udpSupport) ''
ip46tables -t mangle -A POSTROUTING -p udp -m multiport --dports ${udpPorts} -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num ${qnum} --queue-bypass
- '';
+ '';
})
]
);
diff --git a/config/Purpose.nix b/config/Purpose.nix
index 202de0c..0d06213 100644
--- a/config/Purpose.nix
+++ b/config/Purpose.nix
@@ -45,6 +45,7 @@ in
module = {
keyd.enable = true;
sway.enable = true;
+ wallpaper.video = false;
kernel = {
enable = true;
hardening = true;
@@ -63,6 +64,7 @@ in
keyd.enable = true;
sway.enable = true;
kernel.enable = true;
+ wallpaper.video = false;
package = {
common = true;
core = true;
@@ -114,6 +116,7 @@ in
(lib.mkIf cfg.server {
module = {
+ wallpaper.video = false;
kernel = {
enable = true;
hardening = true;
diff --git a/home/file/sway/default.nix b/home/file/sway/default.nix
index d18cacd..0428c1f 100644
--- a/home/file/sway/default.nix
+++ b/home/file/sway/default.nix
@@ -246,5 +246,6 @@ in
include /etc/sway/config.d/*
''
+ builtins.readFile swayRc
- + lib.concatStringsSep "\n" config.module.sway.extraConfig;
+ + lib.concatStringsSep "\n" config.module.sway.extraConfig
+ + lib.optionalString config.module.wallpaper.video "\nexec mpvpaper -o 'no-audio --loop-file --panscan=1' '*' ${config.module.wallpaper.videoPath}";
}
diff --git a/host/x86_64-linux/home/default.nix b/host/x86_64-linux/home/default.nix
index d20a003..6a52200 100644
--- a/host/x86_64-linux/home/default.nix
+++ b/host/x86_64-linux/home/default.nix
@@ -45,9 +45,7 @@
"t-ru.org"
"medium.com"
];
- udpPorts = [
- "443"
- ];
+ udpPorts = [ "443" ];
};
amd = {
cpu.enable = true;
diff --git a/option/Wallpaper.nix b/option/Wallpaper.nix
index 803e450..a049725 100644
--- a/option/Wallpaper.nix
+++ b/option/Wallpaper.nix
@@ -1,43 +1,37 @@
# Download the wallpaper here.
-{ pkgs, lib, ... }:
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
let
- url = "https://i.imgur.com/kMY55kW.png";
- sha256 = "sha256-OcGrjvGAs6zZY9FLPojMMSufQp4GMLWynEokZ3zJ0DA=";
+ cfg = config.module.wallpaper;
+
+ url = "https://preview.redd.it/snfs0gloct491.gif?width=640&format=mp4&s=7e50d8f89ad5724b7addd900fdd5045e03c0c612";
+ sha256 = "sha256-ECVd9juwzLGVtTVBKV+zs8EiqSg9DAcYqu2M+DwxWsQ=";
+
+ # Use video.
+ video = true;
+
+ # Forse black and white for text.
forceContrastText = false;
+ # Predefined scheme instead of generated.
+ # SEE: /etc/stylix/palette.json
# SEE: https://github.com/tinted-theming/schemes
- # Colors: #212337 #403c64 #596399 #748cd6 #a1abe0 #a3ace1 #b4a4f4 #ef43fa #ff5370 #f67f81 #ffc777 #2df4c0 #40ffff #04d1f9 #b994f1 #ecb2f0
- # scheme = "${pkgs.base16-schemes}/share/themes/moonlight.yaml";
-
- # Colors: #282c34 #2c323b #3e4451 #665c54 #928374 #a89984 #d5c4a1 #fdf4c1 #83a598 #a07e3b #a07e3b #528b8b #83a598 #83a598 #d75f5f #a87322
- # scheme = "${pkgs.base16-schemes}/share/themes/sandcastle.yaml";
-
- # Colors: #272822 #383830 #49483e #75715e #a59f85 #f8f8f2 #f5f4f1 #f9f8f5 #f92672 #fd971f #f4bf75 #a6e22e #a1efe4 #66d9ef #ae81ff #cc6633
- # scheme = "${pkgs.base16-schemes}/share/themes/monokai.yaml";
-
- # Colors: #2E3440 #3B4252 #434C5E #4C566A #D8DEE9 #E5E9F0 #ECEFF4 #8FBCBB #BF616A #D08770 #EBCB8B #A3BE8C #88C0D0 #81A1C1 #B48EAD #5E81AC
- # scheme = "${pkgs.base16-schemes}/share/themes/nord.yaml";
-
- # Colors: #1A1B26 #16161E #2F3549 #444B6A #787C99 #A9B1D6 #CBCCD1 #D5D6DB #C0CAF5 #A9B1D6 #0DB9D7 #9ECE6A #B4F9F8 #2AC3DE #BB9AF7 #F7768E
- # scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-dark.yaml";
-
- # Colors: #3C4C55 #556873 #6A7D89 #899BA6 #899BA6 #C5D4DD #899BA6 #556873 #83AFE5 #7FC1CA #A8CE93 #7FC1CA #F2C38F #83AFE5 #9A93E1 #F2C38F
- # scheme = "${pkgs.base16-schemes}/share/themes/nova.yaml"; # Needs text contrast.
-
- # Colors: #263238 #2E3C43 #314549 #546E7A #B2CCD6 #EEFFFF #EEFFFF #FFFFFF #F07178 #F78C6C #FFCB6B #C3E88D #89DDFF #82AAFF #C792EA #FF5370
- # scheme = "${pkgs.base16-schemes}/share/themes/material.yaml";
-
- # Colors: #1e1e3f #43d426 #f1d000 #808080 #6871ff #c7c7c7 #ff77ff #ffffff #d90429 #f92a1c #ffe700 #3ad900 #00c5c7 #6943ff #ff2c70 #79e8fb
- # scheme = "${pkgs.base16-schemes}/share/themes/shades-of-purple.yaml";
-
- # Colors: #3B3228 #534636 #645240 #7e705a #b8afad #d0c8c6 #e9e1dd #f5eeeb #cb6077 #d28b71 #f4bc87 #beb55b #7bbda4 #8ab3b5 #a89bb9 #bb9584
- # scheme = "${pkgs.base16-schemes}/share/themes/mocha.yaml";
-
- # Colors: #1d2021 #3c3836 #504945 #665c54 #bdae93 #d5c4a1 #ebdbb2 #fbf1c7 #fb4934 #fe8019 #fabd2f #b8bb26 #8ec07c #83a598 #d3869b #d65d0e
# scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
-
- # Use wallpaper to generate color. SEE: /etc/stylix/palette.json
scheme = null;
+
+ # Extract image from video.
+ videoImage =
+ if video then
+ pkgs.runCommandNoCC "wallpaper-video-image" { } ''
+ ${pkgs.ffmpeg}/bin/ffmpeg -i ${cfg.videoPath} Image.jpg || true
+ cp Image.jpg $out
+ ''
+ else
+ null;
in
{
options.module.wallpaper = {
@@ -46,9 +40,17 @@ in
type = lib.types.bool;
};
path = lib.mkOption {
- default = pkgs.fetchurl { inherit url sha256; };
+ default = if video then videoImage else pkgs.fetchurl { inherit url sha256; };
type = lib.types.path;
};
+ video = lib.mkOption {
+ default = video;
+ type = lib.types.bool;
+ };
+ videoPath = lib.mkOption {
+ default = if video then pkgs.fetchurl { inherit url sha256; } else null;
+ type = with lib.types; nullOr path;
+ };
scheme = lib.mkOption {
default = scheme;
type =
diff --git a/package/default.nix b/package/default.nix
index 39e2089..09fd451 100644
--- a/package/default.nix
+++ b/package/default.nix
@@ -92,6 +92,7 @@
fuzzel # Application launcher.
grim # Screenshots.
mako # Notification system.
+ mpvpaper # Video wallpapers.
networkmanagerapplet # Internet configuration.
pamixer # Sound controls.
pavucontrol # Sound applet.