diff --git a/home/gburd/features/desktop/common/default.nix b/home/gburd/features/desktop/common/default.nix index a6bd900..1c97016 100644 --- a/home/gburd/features/desktop/common/default.nix +++ b/home/gburd/features/desktop/common/default.nix @@ -2,11 +2,10 @@ imports = [ ./deluge.nix ./discord.nix - ./dragon.nix ./firefox.nix ./font.nix ./gtk.nix - ./kdeconnect.nix +# ./kdeconnect.nix ./pavucontrol.nix ./playerctl.nix ./qt.nix diff --git a/home/gburd/features/desktop/common/firefox.nix b/home/gburd/features/desktop/common/firefox.nix index 95c44e3..2259e3d 100644 --- a/home/gburd/features/desktop/common/firefox.nix +++ b/home/gburd/features/desktop/common/firefox.nix @@ -7,10 +7,10 @@ bookmarks = { }; extensions = with pkgs.inputs.firefox-addons; [ ublock-origin - keybase -# tampermonkey -# proton-pass -# onetab + keybase + # tampermonkey + # proton-pass + # onetab ]; bookmarks = { }; settings = { @@ -32,8 +32,8 @@ home = { persistence = { - # Not persisting is safer - # "/persist/home/gburd".directories = [ ".mozilla/firefox" ]; + # Not persisting is safer, but... + "/persist/home/gburd".directories = [ ".mozilla/firefox" ]; }; }; diff --git a/home/gburd/features/desktop/common/gnome-wm/default.nix b/home/gburd/features/desktop/common/gnome-wm/default.nix index ea64291..306a468 100644 --- a/home/gburd/features/desktop/common/gnome-wm/default.nix +++ b/home/gburd/features/desktop/common/gnome-wm/default.nix @@ -3,33 +3,35 @@ imports = []; home.packages = with pkgs; [ - gtk3 # For gtk-launch - xdg-utils-spawn-terminal # Patched to open terminal + # Gnome3 apps + gnome3.eog # image viewer + gnome3.evince # pdf reader + + # Desktop look & feel + gnome3.gnome-tweak-tool + + # Extensions + gnomeExtensions.appindicator + gnomeExtensions.dash-to-dock ]; -# environment.gnome.excludePackages = (with pkgs; [ -# gnome-photos -# gnome-tour -# ]) ++ (with pkgs.gnome; [ -# cheese # webcam tool -# gnome-music -# gedit # text editor -# epiphany # web browser -# geary # email reader -# gnome-characters -# tali # poker game -# iagno # go game -# hitori # sudoku game -# atomix # puzzle game -# yelp # Help view -# gnome-contacts -# gnome-initial-setup -# ]); -# programs.dconf.enable = true; -# environment.systemPackages = with pkgs; [ -# gnome.gnome-tweaks -# ] -# }; + # environment.gnome.excludePackages = (with pkgs; [ + # gnome-photos + # gnome-tour + # ]) ++ (with pkgs.gnome; [ + # cheese # webcam tool + # gnome-music + # geary # email reader + # gnome-characters + # yelp # Help view + # gnome-contacts + # gnome-initial-setup + # ]); + # programs.dconf.enable = true; + # environment.systemPackages = with pkgs; [ + # gnome.gnome-tweaks + # ] + # }; home.sessionVariables = { }; diff --git a/home/gburd/features/desktop/common/wayland-wm/default.nix b/home/gburd/features/desktop/common/wayland-wm/default.nix new file mode 100644 index 0000000..9b474ae --- /dev/null +++ b/home/gburd/features/desktop/common/wayland-wm/default.nix @@ -0,0 +1,39 @@ +{ pkgs, ... }: +{ + imports = [ + ./hyprland-vnc.nix + ./gammastep.nix + ./kitty.nix + ./mako.nix + ./qutebrowser.nix + ./swayidle.nix + ./swaylock.nix + ./waybar.nix + ./wofi.nix + ./zathura.nix + ]; + + xdg.mimeApps.enable = true; + home.packages = with pkgs; [ + grim + gtk3 # For gtk-launch + imv + mimeo + primary-xwayland + pulseaudio + slurp + waypipe + wf-recorder + wl-clipboard + wl-mirror + wl-mirror-pick + xdg-utils-spawn-terminal # Patched to open terminal + ydotool + ]; + + home.sessionVariables = { + MOZ_ENABLE_WAYLAND = 1; + QT_QPA_PLATFORM = "wayland"; + LIBSEAT_BACKEND = "logind"; + }; +} diff --git a/home/gburd/features/desktop/common/wayland-wm/gammastep.nix b/home/gburd/features/desktop/common/wayland-wm/gammastep.nix new file mode 100644 index 0000000..498756e --- /dev/null +++ b/home/gburd/features/desktop/common/wayland-wm/gammastep.nix @@ -0,0 +1,13 @@ +{ + services.gammastep = { + enable = true; + provider = "geoclue2"; + temperature = { + day = 6000; + night = 4600; + }; + settings = { + general.adjustment-method = "wayland"; + }; + }; +} diff --git a/home/gburd/features/desktop/common/wayland-wm/hyprland-vnc.nix b/home/gburd/features/desktop/common/wayland-wm/hyprland-vnc.nix new file mode 100644 index 0000000..a920f88 --- /dev/null +++ b/home/gburd/features/desktop/common/wayland-wm/hyprland-vnc.nix @@ -0,0 +1,35 @@ +{ pkgs, lib, config, ... }: +let + enabledMonitors = lib.filter (m: m.enabled) config.monitors; + # A nice VNC script for remotes running hyprland + vncsh = pkgs.writeShellScriptBin "vnc.sh" '' + ssh $1 bash <<'EOF' + pgrep "wayvnc" && exit + export HYPRLAND_INSTANCE_SIGNATURE="$(ls /tmp/hypr/ -lt | head -2 | tail -1 | rev | cut -d ' ' -f1 | rev)" + export WAYLAND_DISPLAY="wayland-1" + ip="$(ip addr show dev tailscale0 | grep 'inet ' | xargs | cut -d ' ' -f2 | cut -d '/' -f1)" + xpos="$(hyprctl monitors -j | jq -r 'sort_by(.x)[-1] | .x + .width')" + + ${lib.concatLines (lib.forEach enabledMonitors (m: '' + hyprctl output create headless + monitor="$(hyprctl monitors -j | jq -r 'map(.name)[-1]')" + hyprctl keyword monitor $monitor,${toString m.width}x${toString m.height}@${toString m.refreshRate},$(($xpos + ${toString m.x}))x${toString m.y},1 + screen -d -m wayvnc -k br -S /tmp/vnc-${m.workspace} -f 60 -o $monitor $ip 590${m.workspace} + sudo iptables -I INPUT -j ACCEPT -p tcp --dport 590${m.workspace} + ''))} + EOF + + ${lib.concatLines (lib.forEach enabledMonitors (m: '' + vncviewer $1::590${m.workspace} & + ''))} + + wait + ''; +in +{ + home.packages = with pkgs; [ + vncsh + wayvnc + tigervnc + ]; +} diff --git a/home/gburd/features/desktop/common/wayland-wm/kitty.nix b/home/gburd/features/desktop/common/wayland-wm/kitty.nix new file mode 100644 index 0000000..3528e1f --- /dev/null +++ b/home/gburd/features/desktop/common/wayland-wm/kitty.nix @@ -0,0 +1,66 @@ +{ config, pkgs, ... }: + +let + inherit (config.colorscheme) colors; + kitty-xterm = pkgs.writeShellScriptBin "xterm" '' + ${config.programs.kitty.package}/bin/kitty -1 "$@" + ''; +in +{ + home = { + packages = [ kitty-xterm ]; + sessionVariables = { + TERMINAL = "kitty -1"; + }; + }; + + + programs.kitty = { + enable = true; + font = { + name = config.fontProfiles.monospace.family; + size = 12; + }; + settings = { + shell_integration = "no-rc"; # I prefer to do it manually + scrollback_lines = 4000; + scrollback_pager_history_size = 2048; + window_padding_width = 15; + foreground = "#${colors.base05}"; + background = "#${colors.base00}"; + selection_background = "#${colors.base05}"; + selection_foreground = "#${colors.base00}"; + url_color = "#${colors.base04}"; + cursor = "#${colors.base05}"; + active_border_color = "#${colors.base03}"; + inactive_border_color = "#${colors.base01}"; + active_tab_background = "#${colors.base00}"; + active_tab_foreground = "#${colors.base05}"; + inactive_tab_background = "#${colors.base01}"; + inactive_tab_foreground = "#${colors.base04}"; + tab_bar_background = "#${colors.base01}"; + color0 = "#${colors.base00}"; + color1 = "#${colors.base08}"; + color2 = "#${colors.base0B}"; + color3 = "#${colors.base0A}"; + color4 = "#${colors.base0D}"; + color5 = "#${colors.base0E}"; + color6 = "#${colors.base0C}"; + color7 = "#${colors.base05}"; + color8 = "#${colors.base03}"; + color9 = "#${colors.base08}"; + color10 = "#${colors.base0B}"; + color11 = "#${colors.base0A}"; + color12 = "#${colors.base0D}"; + color13 = "#${colors.base0E}"; + color14 = "#${colors.base0C}"; + color15 = "#${colors.base07}"; + color16 = "#${colors.base09}"; + color17 = "#${colors.base0F}"; + color18 = "#${colors.base01}"; + color19 = "#${colors.base02}"; + color20 = "#${colors.base04}"; + color21 = "#${colors.base06}"; + }; + }; +} diff --git a/home/gburd/features/desktop/common/wayland-wm/mako.nix b/home/gburd/features/desktop/common/wayland-wm/mako.nix new file mode 100644 index 0000000..d98e904 --- /dev/null +++ b/home/gburd/features/desktop/common/wayland-wm/mako.nix @@ -0,0 +1,23 @@ +{ config, ... }: +let inherit (config.colorscheme) colors kind; +in { + services.mako = { + enable = true; + iconPath = + if kind == "dark" then + "${config.gtk.iconTheme.package}/share/icons/Papirus-Dark" + else + "${config.gtk.iconTheme.package}/share/icons/Papirus-Light"; + font = "${config.fontProfiles.regular.family} 12"; + padding = "10,20"; + anchor = "top-center"; + width = 400; + height = 150; + borderSize = 2; + defaultTimeout = 12000; + backgroundColor = "#${colors.base00}dd"; + borderColor = "#${colors.base03}dd"; + textColor = "#${colors.base05}dd"; + layer = "overlay"; + }; +} diff --git a/home/gburd/features/desktop/common/wayland-wm/qutebrowser.nix b/home/gburd/features/desktop/common/wayland-wm/qutebrowser.nix new file mode 100644 index 0000000..9efd4f5 --- /dev/null +++ b/home/gburd/features/desktop/common/wayland-wm/qutebrowser.nix @@ -0,0 +1,177 @@ +{ config, pkgs, ... }: + +let inherit (config.colorscheme) colors kind; +in +{ + home.persistence = { + "/persist/home/misterio".directories = [ + ".config/qutebrowser/bookmarks" + ".config/qutebrowser/greasemonkey" + ".local/share/qutebrowser" + ]; + }; + + + + xdg.mimeApps.defaultApplications = { + "text/html" = [ "org.qutebrowser.qutebrowser.desktop" ]; + "text/xml" = [ "org.qutebrowser.qutebrowser.desktop" ]; + "x-scheme-handler/http" = [ "org.qutebrowser.qutebrowser.desktop" ]; + "x-scheme-handler/https" = [ "org.qutebrowser.qutebrowser.desktop" ]; + "x-scheme-handler/qute" = [ "org.qutebrowser.qutebrowser.desktop" ]; + }; + + + programs.qutebrowser = { + enable = true; + loadAutoconfig = true; + settings = { + editor.command = [ "xdg-open" "{file}" ]; + tabs = { + show = "multiple"; + position = "left"; + tree_tabs = true; + }; + fonts = { + default_family = config.fontProfiles.regular.family; + default_size = "12pt"; + }; + colors = { + webpage = { + preferred_color_scheme = kind; + bg = "#ffffff"; + }; + completion = { + fg = "#${colors.base05}"; + match.fg = "#${colors.base09}"; + even.bg = "#${colors.base00}"; + odd.bg = "#${colors.base00}"; + scrollbar = { + bg = "#${colors.base00}"; + fg = "#${colors.base05}"; + }; + category = { + bg = "#${colors.base00}"; + fg = "#${colors.base0D}"; + border = { + bottom = "#${colors.base00}"; + top = "#${colors.base00}"; + }; + }; + item.selected = { + bg = "#${colors.base02}"; + fg = "#${colors.base05}"; + match.fg = "#${colors.base05}"; + border = { + bottom = "#${colors.base02}"; + top = "#${colors.base02}"; + }; + }; + }; + contextmenu = { + disabled = { + bg = "#${colors.base01}"; + fg = "#${colors.base04}"; + }; + menu = { + bg = "#${colors.base00}"; + fg = "#${colors.base05}"; + }; + selected = { + bg = "#${colors.base02}"; + fg = "#${colors.base05}"; + }; + }; + downloads = { + bar.bg = "#${colors.base00}"; + error.fg = "#${colors.base08}"; + start = { + bg = "#${colors.base0D}"; + fg = "#${colors.base00}"; + }; + stop = { + bg = "#${colors.base0C}"; + fg = "#${colors.base00}"; + }; + }; + hints = { + bg = "#${colors.base0A}"; + fg = "#${colors.base00}"; + match.fg = "#${colors.base05}"; + }; + keyhint = { + bg = "#${colors.base00}"; + fg = "#${colors.base05}"; + suffix.fg = "#${colors.base05}"; + }; + messages = { + error.bg = "#${colors.base08}"; + error.border = "#${colors.base08}"; + error.fg = "#${colors.base00}"; + info.bg = "#${colors.base00}"; + info.border = "#${colors.base00}"; + info.fg = "#${colors.base05}"; + warning.bg = "#${colors.base0E}"; + warning.border = "#${colors.base0E}"; + warning.fg = "#${colors.base00}"; + }; + prompts = { + bg = "#${colors.base00}"; + fg = "#${colors.base05}"; + border = "#${colors.base00}"; + selected.bg = "#${colors.base02}"; + }; + statusbar = { + caret.bg = "#${colors.base00}"; + caret.fg = "#${colors.base0D}"; + caret.selection.bg = "#${colors.base00}"; + caret.selection.fg = "#${colors.base0D}"; + command.bg = "#${colors.base01}"; + command.fg = "#${colors.base04}"; + command.private.bg = "#${colors.base01}"; + command.private.fg = "#${colors.base0E}"; + insert.bg = "#${colors.base00}"; + insert.fg = "#${colors.base0C}"; + normal.bg = "#${colors.base00}"; + normal.fg = "#${colors.base05}"; + passthrough.bg = "#${colors.base00}"; + passthrough.fg = "#${colors.base0A}"; + private.bg = "#${colors.base00}"; + private.fg = "#${colors.base0E}"; + progress.bg = "#${colors.base0D}"; + url.error.fg = "#${colors.base08}"; + url.fg = "#${colors.base05}"; + url.hover.fg = "#${colors.base09}"; + url.success.http.fg = "#${colors.base0B}"; + url.success.https.fg = "#${colors.base0B}"; + url.warn.fg = "#${colors.base0E}"; + }; + tabs = { + bar.bg = "#${colors.base00}"; + even.bg = "#${colors.base00}"; + even.fg = "#${colors.base05}"; + indicator.error = "#${colors.base08}"; + indicator.start = "#${colors.base0D}"; + indicator.stop = "#${colors.base0C}"; + odd.bg = "#${colors.base00}"; + odd.fg = "#${colors.base05}"; + pinned.even.bg = "#${colors.base0B}"; + pinned.even.fg = "#${colors.base00}"; + pinned.odd.bg = "#${colors.base0B}"; + pinned.odd.fg = "#${colors.base00}"; + pinned.selected.even.bg = "#${colors.base02}"; + pinned.selected.even.fg = "#${colors.base05}"; + pinned.selected.odd.bg = "#${colors.base02}"; + pinned.selected.odd.fg = "#${colors.base05}"; + selected.even.bg = "#${colors.base02}"; + selected.even.fg = "#${colors.base05}"; + selected.odd.bg = "#${colors.base02}"; + selected.odd.fg = "#${colors.base05}"; + }; + }; + }; + extraConfig = '' + c.tabs.padding = {"bottom": 10, "left": 10, "right": 10, "top": 10} + ''; + }; +} diff --git a/home/gburd/features/desktop/common/wayland-wm/swayidle.nix b/home/gburd/features/desktop/common/wayland-wm/swayidle.nix new file mode 100644 index 0000000..c2b9892 --- /dev/null +++ b/home/gburd/features/desktop/common/wayland-wm/swayidle.nix @@ -0,0 +1,54 @@ +{ pkgs, lib, config, ... }: + +let + swaylock = "${config.programs.swaylock.package}/bin/swaylock"; + pgrep = "${pkgs.procps}/bin/pgrep"; + pactl = "${pkgs.pulseaudio}/bin/pactl"; + hyprctl = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl"; + swaymsg = "${config.wayland.windowManager.sway.package}/bin/swaymsg"; + + isLocked = "${pgrep} -x ${swaylock}"; + lockTime = 4 * 60; # TODO: configurable desktop (10 min)/laptop (4 min) + + # Makes two timeouts: one for when the screen is not locked (lockTime+timeout) and one for when it is. + afterLockTimeout = { timeout, command, resumeCommand ? null }: [ + { timeout = lockTime + timeout; inherit command resumeCommand; } + { command = "${isLocked} && ${command}"; inherit resumeCommand timeout; } + ]; +in +{ + services.swayidle = { + enable = true; + systemdTarget = "graphical-session.target"; + timeouts = + # Lock screen + [{ + timeout = lockTime; + command = "${swaylock} -i ${config.wallpaper} --daemonize"; + }] ++ + # Mute mic + (afterLockTimeout { + timeout = 10; + command = "${pactl} set-source-mute @DEFAULT_SOURCE@ yes"; + resumeCommand = "${pactl} set-source-mute @DEFAULT_SOURCE@ no"; + }) ++ + # Turn off RGB + (lib.optionals config.services.rgbdaemon.enable (afterLockTimeout { + timeout = 20; + command = "systemctl --user stop rgbdaemon"; + resumeCommand = "systemctl --user start rgbdaemon"; + })) ++ + # Turn off displays (hyprland) + (lib.optionals config.wayland.windowManager.hyprland.enable (afterLockTimeout { + timeout = 40; + command = "${hyprctl} dispatch dpms off"; + resumeCommand = "${hyprctl} dispatch dpms on"; + })) ++ + # Turn off displays (sway) + (lib.optionals config.wayland.windowManager.sway.enable (afterLockTimeout { + timeout = 40; + command = "${swaymsg} 'output * dpms off'"; + resumeCommand = "${swaymsg} 'output * dpms on'"; + })); + }; +} diff --git a/home/gburd/features/desktop/common/wayland-wm/swaylock.nix b/home/gburd/features/desktop/common/wayland-wm/swaylock.nix new file mode 100644 index 0000000..738bbfd --- /dev/null +++ b/home/gburd/features/desktop/common/wayland-wm/swaylock.nix @@ -0,0 +1,43 @@ +{ config, pkgs, ... }: + +let inherit (config.colorscheme) colors; +in +{ + programs.swaylock = { + enable = true; + package = pkgs.swaylock-effects; + settings = { + effect-blur = "20x3"; + fade-in = 0.1; + + font = config.fontProfiles.regular.family; + font-size = 15; + + line-uses-inside = true; + disable-caps-lock-text = true; + indicator-caps-lock = true; + indicator-radius = 40; + indicator-idle-visible = true; + indicator-y-position = 1000; + + ring-color = "#${colors.base02}"; + inside-wrong-color = "#${colors.base08}"; + ring-wrong-color = "#${colors.base08}"; + key-hl-color = "#${colors.base0B}"; + bs-hl-color = "#${colors.base08}"; + ring-ver-color = "#${colors.base09}"; + inside-ver-color = "#${colors.base09}"; + inside-color = "#${colors.base01}"; + text-color = "#${colors.base07}"; + text-clear-color = "#${colors.base01}"; + text-ver-color = "#${colors.base01}"; + text-wrong-color = "#${colors.base01}"; + text-caps-lock-color = "#${colors.base07}"; + inside-clear-color = "#${colors.base0C}"; + ring-clear-color = "#${colors.base0C}"; + inside-caps-lock-color = "#${colors.base09}"; + ring-caps-lock-color = "#${colors.base02}"; + separator-color = "#${colors.base02}"; + }; + }; +} diff --git a/home/gburd/features/desktop/common/wayland-wm/waybar.nix b/home/gburd/features/desktop/common/wayland-wm/waybar.nix new file mode 100644 index 0000000..f0fa0a4 --- /dev/null +++ b/home/gburd/features/desktop/common/wayland-wm/waybar.nix @@ -0,0 +1,392 @@ +{ outputs, config, lib, pkgs, ... }: + +let + # Dependencies + cat = "${pkgs.coreutils}/bin/cat"; + cut = "${pkgs.coreutils}/bin/cut"; + find = "${pkgs.findutils}/bin/find"; + grep = "${pkgs.gnugrep}/bin/grep"; + pgrep = "${pkgs.procps}/bin/pgrep"; + tail = "${pkgs.coreutils}/bin/tail"; + wc = "${pkgs.coreutils}/bin/wc"; + xargs = "${pkgs.findutils}/bin/xargs"; + timeout = "${pkgs.coreutils}/bin/timeout"; + ping = "${pkgs.iputils}/bin/ping"; + + jq = "${pkgs.jq}/bin/jq"; + gamemoded = "${pkgs.gamemode}/bin/gamemoded"; + systemctl = "${pkgs.systemd}/bin/systemctl"; + journalctl = "${pkgs.systemd}/bin/journalctl"; + playerctl = "${pkgs.playerctl}/bin/playerctl"; + playerctld = "${pkgs.playerctl}/bin/playerctld"; + pavucontrol = "${pkgs.pavucontrol}/bin/pavucontrol"; + wofi = "${pkgs.wofi}/bin/wofi"; + + # Function to simplify making waybar outputs + jsonOutput = name: { pre ? "", text ? "", tooltip ? "", alt ? "", class ? "", percentage ? "" }: "${pkgs.writeShellScriptBin "waybar-${name}" '' + set -euo pipefail + ${pre} + ${jq} -cn \ + --arg text "${text}" \ + --arg tooltip "${tooltip}" \ + --arg alt "${alt}" \ + --arg class "${class}" \ + --arg percentage "${percentage}" \ + '{text:$text,tooltip:$tooltip,alt:$alt,class:$class,percentage:$percentage}' + ''}/bin/waybar-${name}"; +in +{ + programs.waybar = { + enable = true; + package = pkgs.waybar.overrideAttrs (oa: { + mesonFlags = (oa.mesonFlags or [ ]) ++ [ "-Dexperimental=true" ]; + }); + systemd.enable = true; + settings = { + primary = { + mode = "dock"; + layer = "top"; + height = 40; + margin = "6"; + position = "top"; + modules-left = [ + "custom/menu" + ] ++ (lib.optionals config.wayland.windowManager.sway.enable [ + "sway/workspaces" + "sway/mode" + ]) ++ (lib.optionals config.wayland.windowManager.hyprland.enable [ + "hyprland/workspaces" + "hyprland/submap" + ]) ++ [ + "custom/currentplayer" + "custom/player" + ]; + + modules-center = [ + "pulseaudio" + "battery" + "clock" + "custom/unread-mail" + "custom/gpg-agent" + ]; + + modules-right = [ + "network" + "custom/tailscale-ping" + "custom/gamemode" + # TODO: currently broken for some reason + # "custom/gammastep" + "tray" + "custom/hostname" + ]; + + clock = { + interval = 1; + format = "{:%d/%m %H:%M:%S}"; + format-alt = "{:%Y-%m-%d %H:%M:%S %z}"; + on-click-left = "mode"; + tooltip-format = '' + {:%Y %B} + {calendar}''; + }; + pulseaudio = { + format = "{icon} {volume}%"; + format-muted = " 0%"; + format-icons = { + headphone = "󰋋"; + headset = "󰋎"; + portable = ""; + default = [ "" "" "" ]; + }; + on-click = pavucontrol; + }; + idle_inhibitor = { + format = "{icon}"; + format-icons = { + activated = "󰒳"; + deactivated = "󰒲"; + }; + }; + battery = { + bat = "BAT0"; + interval = 10; + format-icons = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ]; + format = "{icon} {capacity}%"; + format-charging = "󰂄 {capacity}%"; + onclick = ""; + }; + "sway/window" = { + max-length = 20; + }; + network = { + interval = 3; + format-wifi = " {essid}"; + format-ethernet = "󰈁 Connected"; + format-disconnected = ""; + tooltip-format = '' + {ifname} + {ipaddr}/{cidr} + Up: {bandwidthUpBits} + Down: {bandwidthDownBits}''; + on-click = ""; + }; + "custom/tailscale-ping" = { + interval = 10; + return-type = "json"; + exec = + let + inherit (builtins) concatStringsSep attrNames; + hosts = attrNames outputs.nixosConfigurations; + homeMachine = "merope"; + remoteMachine = "alcyone"; + in + jsonOutput "tailscale-ping" { + # Build variables for each host + pre = '' + set -o pipefail + ${concatStringsSep "\n" (map (host: '' + ping_${host}="$(${timeout} 2 ${ping} -c 1 -q ${host} 2>/dev/null | ${tail} -1 | ${cut} -d '/' -f5 | ${cut} -d '.' -f1)ms" || ping_${host}="Disconnected" + '') hosts)} + ''; + # Access a remote machine's and a home machine's ping + text = " $ping_${remoteMachine} /  $ping_${homeMachine}"; + # Show pings from all machines + tooltip = concatStringsSep "\n" (map (host: "${host}: $ping_${host}") hosts); + }; + format = "{}"; + on-click = ""; + }; + "custom/menu" = { + return-type = "json"; + exec = jsonOutput "menu" { + text = ""; + tooltip = ''$(${cat} /etc/os-release | ${grep} PRETTY_NAME | ${cut} -d '"' -f2)''; + }; + on-click = "${wofi} -S drun -x 10 -y 10 -W 25% -H 60%"; + }; + "custom/hostname" = { + exec = "echo $USER@$HOSTNAME"; + }; + "custom/unread-mail" = { + interval = 5; + return-type = "json"; + exec = jsonOutput "unread-mail" { + pre = '' + count=$(${find} ~/Mail/*/Inbox/new -type f | ${wc} -l) + if ${pgrep} mbsync &>/dev/null; then + status="syncing" + else if [ "$count" == "0" ]; then + status="read" + else + status="unread" + fi + fi + ''; + text = "$count"; + alt = "$status"; + }; + format = "{icon} ({})"; + format-icons = { + "read" = "󰇯"; + "unread" = "󰇮"; + "syncing" = "󰁪"; + }; + }; + "custom/gpg-agent" = { + interval = 2; + return-type = "json"; + exec = + let gpgCmds = import ../../../cli/gpg-commands.nix { inherit pkgs; }; + in + jsonOutput "gpg-agent" { + pre = ''status=$(${gpgCmds.isUnlocked} && echo "unlocked" || echo "locked")''; + alt = "$status"; + tooltip = "GPG is $status"; + }; + format = "{icon}"; + format-icons = { + "locked" = ""; + "unlocked" = ""; + }; + on-click = ""; + }; + "custom/gamemode" = { + exec-if = "${gamemoded} --status | ${grep} 'is active' -q"; + interval = 2; + return-type = "json"; + exec = jsonOutput "gamemode" { + tooltip = "Gamemode is active"; + }; + format = " "; + }; + "custom/gammastep" = { + interval = 5; + return-type = "json"; + exec = jsonOutput "gammastep" { + pre = '' + if unit_status="$(${systemctl} --user is-active gammastep)"; then + status="$unit_status ($(${journalctl} --user -u gammastep.service -g 'Period: ' | ${tail} -1 | ${cut} -d ':' -f6 | ${xargs}))" + else + status="$unit_status" + fi + ''; + alt = "\${status:-inactive}"; + tooltip = "Gammastep is $status"; + }; + format = "{icon}"; + format-icons = { + "activating" = "󰁪 "; + "deactivating" = "󰁪 "; + "inactive" = "? "; + "active (Night)" = " "; + "active (Nighttime)" = " "; + "active (Transition (Night)" = " "; + "active (Transition (Nighttime)" = " "; + "active (Day)" = " "; + "active (Daytime)" = " "; + "active (Transition (Day)" = " "; + "active (Transition (Daytime)" = " "; + }; + on-click = "${systemctl} --user is-active gammastep && ${systemctl} --user stop gammastep || ${systemctl} --user start gammastep"; + }; + "custom/currentplayer" = { + interval = 2; + return-type = "json"; + exec = jsonOutput "currentplayer" { + pre = '' + player="$(${playerctl} status -f "{{playerName}}" 2>/dev/null || echo "No player active" | ${cut} -d '.' -f1)" + count="$(${playerctl} -l | ${wc} -l)" + if ((count > 1)); then + more=" +$((count - 1))" + else + more="" + fi + ''; + alt = "$player"; + tooltip = "$player ($count available)"; + text = "$more"; + }; + format = "{icon}{}"; + format-icons = { + "No player active" = " "; + "Celluloid" = "󰎁 "; + "spotify" = "󰓇 "; + "ncspot" = "󰓇 "; + "qutebrowser" = "󰖟 "; + "firefox" = " "; + "discord" = " 󰙯 "; + "sublimemusic" = " "; + "kdeconnect" = "󰄡 "; + "chromium" = " "; + }; + on-click = "${playerctld} shift"; + on-click-right = "${playerctld} unshift"; + }; + "custom/player" = { + exec-if = "${playerctl} status"; + exec = ''${playerctl} metadata --format '{"text": "{{title}} - {{artist}}", "alt": "{{status}}", "tooltip": "{{title}} - {{artist}} ({{album}})"}' ''; + return-type = "json"; + interval = 2; + max-length = 30; + format = "{icon} {}"; + format-icons = { + "Playing" = "󰐊"; + "Paused" = "󰏤 "; + "Stopped" = "󰓛"; + }; + on-click = "${playerctl} play-pause"; + }; + }; + + }; + # Cheatsheet: + # x -> all sides + # x y -> vertical, horizontal + # x y z -> top, horizontal, bottom + # w x y z -> top, right, bottom, left + style = let inherit (config.colorscheme) colors; in /* css */ '' + * { + font-family: ${config.fontProfiles.regular.family}, ${config.fontProfiles.monospace.family}; + font-size: 12pt; + padding: 0 8px; + } + + .modules-right { + margin-right: -15px; + } + + .modules-left { + margin-left: -15px; + } + + window#waybar.top { + opacity: 0.95; + padding: 0; + background-color: #${colors.base00}; + border: 2px solid #${colors.base0C}; + border-radius: 10px; + } + window#waybar.bottom { + opacity: 0.90; + background-color: #${colors.base00}; + border: 2px solid #${colors.base0C}; + border-radius: 10px; + } + + window#waybar { + color: #${colors.base05}; + } + + #workspaces button { + background-color: #${colors.base01}; + color: #${colors.base05}; + padding: 5px 1px; + margin: 3px 0; + } + #workspaces button.hidden { + background-color: #${colors.base00}; + color: #${colors.base04}; + } + #workspaces button.focused, + #workspaces button.active { + background-color: #${colors.base0A}; + color: #${colors.base00}; + } + + #clock { + background-color: #${colors.base0C}; + color: #${colors.base00}; + padding-left: 15px; + padding-right: 15px; + margin-top: 0; + margin-bottom: 0; + border-radius: 10px; + } + + #custom-menu { + background-color: #${colors.base0C}; + color: #${colors.base00}; + padding-left: 15px; + padding-right: 22px; + margin: 0; + border-radius: 10px; + } + #custom-hostname { + background-color: #${colors.base0C}; + color: #${colors.base00}; + padding-left: 15px; + padding-right: 18px; + margin-right: 0; + margin-top: 0; + margin-bottom: 0; + border-radius: 10px; + } + #custom-currentplayer { + padding-right: 0; + } + #tray { + color: #${colors.base05}; + } + ''; + }; +} diff --git a/home/gburd/features/desktop/common/wayland-wm/wezterm.nix b/home/gburd/features/desktop/common/wayland-wm/wezterm.nix new file mode 100644 index 0000000..692f5fb --- /dev/null +++ b/home/gburd/features/desktop/common/wayland-wm/wezterm.nix @@ -0,0 +1,54 @@ +{ config, pkgs, ... }: + +let + inherit (config) colorscheme; + inherit (colorscheme) colors; +in +{ + programs.wezterm = { + enable = true; + colorSchemes = { + "${colorscheme.slug}" = { + foreground = "#${colors.base05}"; + background = "#${colors.base00}"; + + ansi = [ + "#${colors.base08}" + "#${colors.base09}" + "#${colors.base0A}" + "#${colors.base0B}" + "#${colors.base0C}" + "#${colors.base0D}" + "#${colors.base0E}" + "#${colors.base0F}" + ]; + brights = [ + "#${colors.base00}" + "#${colors.base01}" + "#${colors.base02}" + "#${colors.base03}" + "#${colors.base04}" + "#${colors.base05}" + "#${colors.base06}" + "#${colors.base07}" + ]; + cursor_fg = "#${colors.base00}"; + cursor_bg = "#${colors.base05}"; + selection_fg = "#${colors.base00}"; + selection_bg = "#${colors.base05}"; + }; + }; + extraConfig = /* lua */ '' + return { + font = wezterm.font("${config.fontProfiles.monospace.family}"), + font_size = 12.0, + color_scheme = "${colorscheme.slug}", + hide_tab_bar_if_only_one_tab = true, + window_close_confirmation = "NeverPrompt", + set_environment_variables = { + TERM = 'wezterm', + }, + } + ''; + }; +} diff --git a/home/gburd/features/desktop/common/wayland-wm/wofi-run-shell.patch b/home/gburd/features/desktop/common/wayland-wm/wofi-run-shell.patch new file mode 100644 index 0000000..930563b --- /dev/null +++ b/home/gburd/features/desktop/common/wayland-wm/wofi-run-shell.patch @@ -0,0 +1,20 @@ +--- a/src/wofi.c Mon Feb 22 23:53:57 2021 -0800 ++++ b/src/wofi.c Wed Aug 11 13:49:13 2021 -0300 +@@ -881,12 +881,15 @@ + } + + void wofi_term_run(const char* cmd) { ++ char *shell = getenv("SHELL"); ++ if (!shell) shell = "sh"; ++ + if(terminal != NULL) { +- execlp(terminal, terminal, "-e", cmd, NULL); ++ execlp(terminal, terminal, "-e", shell, "-c", cmd, NULL); + } + size_t term_count = sizeof(terminals) / sizeof(char*); + for(size_t count = 0; count < term_count; ++count) { +- execlp(terminals[count], terminals[count], "-e", cmd, NULL); ++ execlp(terminals[count], terminals[count], "-e", shell, "-c", cmd, NULL); + } + fprintf(stderr, "No terminal emulator found please set term in config or use --term\n"); + exit(1); diff --git a/home/gburd/features/desktop/common/wayland-wm/wofi.nix b/home/gburd/features/desktop/common/wayland-wm/wofi.nix new file mode 100644 index 0000000..4bd5836 --- /dev/null +++ b/home/gburd/features/desktop/common/wayland-wm/wofi.nix @@ -0,0 +1,25 @@ +{ config, lib, pkgs, ... }: { + programs.wofi = { + enable = true; + package = pkgs.wofi.overrideAttrs (oa: { + patches = (oa.patches or [ ]) ++ [ + ./wofi-run-shell.patch # Fix for https://todo.sr.ht/~scoopta/wofi/174 + ]; + }); + settings = { + image_size = 48; + columns = 3; + allow_images = true; + insensitive = true; + run-always_parse_args = true; + run-cache_file = "/dev/null"; + run-exec_search = true; + }; + }; + + home.packages = + let + inherit (config.programs.password-store) package enable; + in + lib.optional enable (pkgs.pass-wofi.override { pass = package; }); +} diff --git a/home/gburd/features/desktop/common/wayland-wm/zathura.nix b/home/gburd/features/desktop/common/wayland-wm/zathura.nix new file mode 100644 index 0000000..8348cc1 --- /dev/null +++ b/home/gburd/features/desktop/common/wayland-wm/zathura.nix @@ -0,0 +1,32 @@ +{ config, ... }: +let inherit (config.colorscheme) colors; +in { + programs.zathura = { + enable = true; + options = { + selection-clipboard = "clipboard"; + font = "${config.fontProfiles.regular.family} 12"; + recolor = true; + default-bg = "#${colors.base00}"; + default-fg = "#${colors.base01}"; + statusbar-bg = "#${colors.base02}"; + statusbar-fg = "#${colors.base04}"; + inputbar-bg = "#${colors.base00}"; + inputbar-fg = "#${colors.base07}"; + notification-bg = "#${colors.base00}"; + notification-fg = "#${colors.base07}"; + notification-error-bg = "#${colors.base00}"; + notification-error-fg = "#${colors.base08}"; + notification-warning-bg = "#${colors.base00}"; + notification-warning-fg = "#${colors.base08}"; + highlight-color = "#${colors.base0A}"; + highlight-active-color = "#${colors.base0D}"; + completion-bg = "#${colors.base01}"; + completion-fg = "#${colors.base05}"; + completions-highlight-bg = "#${colors.base0D}"; + completions-highlight-fg = "#${colors.base07}"; + recolor-lightcolor = "#${colors.base00}"; + recolor-darkcolor = "#${colors.base06}"; + }; + }; +} diff --git a/home/gburd/wallpapers/list.json b/home/gburd/wallpapers/list.json index eecce06..ab109bd 100644 --- a/home/gburd/wallpapers/list.json +++ b/home/gburd/wallpapers/list.json @@ -1,1192 +1,4 @@ [ - { - "ext": "jpeg", - "id": "v4sd4xU", - "name": "abstract-blue-red", - "sha256": "0widy175xcqxvqj4lf6d605mxxpvz5vs7ihq0iz52j11pcsql6m8" - }, - { - "ext": "jpeg", - "id": "FxEnWeO", - "name": "enami-beyond-hill-and-dale", - "sha256": "0lzi1id145cyl5cmiqh2c9gvzpm4p5f09cp1fv1z9imisq7dal89" - }, - { - "ext": "jpeg", - "id": "uPHqPpt", - "name": "aenami-7pm", - "sha256": "0bjkg2lfba5dsa66f1p0nq1y4hwfkm2hdi8slzi5glvsqgwm7c4d" - }, - { - "ext": "jpeg", - "id": "soEJGse", - "name": "aenami-15steps", - "sha256": "1y69chgaskv7x08nsdmr02rl6pdwk24ajnkjqdzpxqn3wxa3lzxl" - }, - { - "ext": "jpeg", - "id": "nB16yot", - "name": "aenami-blue-hour", - "sha256": "08gbnhjj980jhflxwp2lzx238bpxzn68lwfpw0ihx44k2fjqdzn9" - }, - { - "ext": "jpeg", - "id": "jEI4mGD", - "name": "aenami-bright-planet", - "sha256": "1cvagvhslzf5vm231yj65bh38y0apj2x7kbdh0vrna94zc2zbwq0" - }, - { - "ext": "jpeg", - "id": "ap8Nks0", - "name": "aenami-a-quiet-mind", - "sha256": "0f6knbbyx7dklz3231drkpl08gkn28jzk0rr7qvj19v1apqkyjmp" - }, - { - "ext": "jpeg", - "id": "Dry8ZE8", - "name": "aenami-bus", - "sha256": "0gblc0bh2zxfhsgmga70295gqq263qv1k0znji2l0mfh1bldhnnx" - }, - { - "ext": "jpeg", - "id": "uGnHv1h", - "name": "aenami-candle", - "sha256": "1pmbv3l5ya2qkqkk8cdwagyb6j5hfgi9bcdb9j0ss81l4z9zjhxc" - }, - { - "ext": "jpeg", - "id": "BCN6pDa", - "name": "aenami-castle-in-the-sky", - "sha256": "03cilwmw7wqlhi7madjz0mv9wz30kkhj5qj680fn0xl3z0c3aj7g" - }, - { - "ext": "jpeg", - "id": "JPcUrcZ", - "name": "aenami-all-i-need", - "sha256": "0p9g1y49ckljn3xsw6wf2yrbdpzzai6sc9ll9yajxs6jq4gbh7cq" - }, - { - "ext": "jpeg", - "id": "jwJbPlH", - "name": "aenami-airport", - "sha256": "0610pi616093zr0cpgyp23pwyngf0xkdkdb8vdd5xys502zamyi8" - }, - { - "ext": "jpeg", - "id": "XUU6hEf", - "name": "aenami-calm-before-the-storm", - "sha256": "1lg11c745rcbfwxbp3bhjcmq5b8z2pwymankldglmd1xzfjh8gyh" - }, - { - "ext": "jpeg", - "id": "SdRfC2S", - "name": "aenami-chillcowfin", - "sha256": "1ffx2sf80qv2ngx7hidpwa977cdyf1vm5ixvnqgqcgg8dp27fkjv" - }, - { - "ext": "jpeg", - "id": "MMrRfwC", - "name": "aenami-close-to-the-sun", - "sha256": "0hfr53b24q9vr1qswvy7vf4ipzq6r0wkdvn3c5jp3wpk8m8h67qx" - }, - { - "ext": "jpeg", - "id": "aobCOUQ", - "name": "aenami-cold-red-light", - "sha256": "00laxafn5bg58p0smnn05wa59ljdsrc0fzvgs7xv9ivylggy92cp" - }, - { - "ext": "jpeg", - "id": "kAVPakm", - "name": "aenami-at-last", - "sha256": "01z55ssvji48n760aanrks0gb6mkh8d7p0vl85pbzc6ljjhsvmwn" - }, - { - "ext": "jpeg", - "id": "soQYXbB", - "name": "aenami-around-us", - "sha256": "1wflx47v4904hcyc3nbxmgr7w8c14n2xjp57bjkbdpfcxa6gfpd7" - }, - { - "ext": "jpeg", - "id": "yib5RFr", - "name": "aenami-cold", - "sha256": "0xp33vmx2klq7f0y2ys7xl7klyjwg561g0h0b0naqkdmcpm2xxcj" - }, - { - "ext": "jpeg", - "id": "sQZ3mks", - "name": "aenami-autumn", - "sha256": "0nsvyvryd6dkkmg6cww84ini5v8vgxjc3dvxl9m9ys52r9rzgi29" - }, - { - "ext": "jpeg", - "id": "WH4OIWR", - "name": "aenami-dawn", - "sha256": "17vnqcf8wrk3aspl9y6823hm3pqm43yg08f9ils482xrwxxbgqq9" - }, - { - "ext": "jpeg", - "id": "4N8Nce3", - "name": "aenami-avalanches", - "sha256": "17k83biz6yy2r6bwxk6x01rskmlnfw2wckln3msdkdz1r2vm0hnf" - }, - { - "ext": "jpeg", - "id": "vl6dDlL", - "name": "aenami-daylight", - "sha256": "15i8mcc82c9xv1fsfldpkw18l70r35xpqpbhf4lwfasw8mgk8pcg" - }, - { - "ext": "jpeg", - "id": "36Vpqn8", - "name": "aenami-dreamer", - "sha256": "1kcn91912p1fq1fm5ncbvcms2mkq1njkr8ndhi3fsxf7z3ldkizh" - }, - { - "ext": "jpeg", - "id": "PmGUmDw", - "name": "aenami-away", - "sha256": "048k4x3lqa3c1v6v5gaglahdnsrpwrqw4pgvz5z8q2qzx27gjggb" - }, - { - "ext": "jpeg", - "id": "xADI3U7", - "name": "aenami-dusk", - "sha256": "0hgzbhwa53zpl5k065l7mibizif7syphjgbl7i8sqhxa4wnanlw5" - }, - { - "ext": "jpeg", - "id": "S29W0Rr", - "name": "aenami-dawn", - "sha256": "07rr6ynh76z5smjzgsz715ybryw0ncxjgrsn3c4xc6iidxjy86lp" - }, - { - "ext": "jpeg", - "id": "CQ3gwOr", - "name": "aenami-endless", - "sha256": "1fj9qkkrcdvp8nys7w9ywqhw3j0n2p2wb42kn3p6vx3al44shmcf" - }, - { - "ext": "jpeg", - "id": "WoIx2Z9", - "name": "aenami-endgame", - "sha256": "1wxdlwj3qjc1hv8np5b89l1w9vzg6jdz1lwgzj74b5p81ia5rr9x" - }, - { - "ext": "jpeg", - "id": "flIwdXx", - "name": "aenami-eternity", - "sha256": "0b39gx92dia34dr6s52bscfg9nipsqz4pp56alcisb54w1wlvxnd" - }, - { - "ext": "jpeg", - "id": "YlN6a5u", - "name": "aenami-escape", - "sha256": "171xrri04cyvx5v8hw3n8rx0zxxp7k3ls7y74jgv0pykangcwlxn" - }, - { - "ext": "jpeg", - "id": "9VpCFbG", - "name": "aenami-far-from-tommorrow", - "sha256": "0wvddlnm6dk1irp84zjr1css140555lzm3snjqjqvl0sgy6xdjba" - }, - { - "ext": "jpeg", - "id": "RIWcJp8", - "name": "aenami-from-this-moment", - "sha256": "0fqlxbmkkqfgxlndnp82183vyjbwfx2hc6nrwci871xr0mrhd4pf" - }, - { - "ext": "jpeg", - "id": "a8zdWoe", - "name": "aenami-house-clouds", - "sha256": "0hwh74cc4vr7mi4y4sdzyhq0wpwkhrcwypzh0npzbiahc1h16a8q" - }, - { - "ext": "jpeg", - "id": "2dewB4y", - "name": "aenami-green-crater", - "sha256": "1hprbvadpwf461xnca1g0hr0pymrl8m1pmp8dvdmxbh086hl5xyz" - }, - { - "ext": "jpeg", - "id": "dj2qn6i", - "name": "aenami-guiding-light", - "sha256": "1kff1bdzvyi0hfi43609aidqpv2mnc54ybn00fnv8dsxkjii9sx8" - }, - { - "ext": "jpeg", - "id": "APkIJc8", - "name": "aenami-horizon", - "sha256": "08422kb8h5zgwiwdl7g6hyvy8xwpwqlgspv093nw3iz3lzzqjlmg" - }, - { - "ext": "jpeg", - "id": "ZVrpN7y", - "name": "aenami-im-here", - "sha256": "0y2pny7lw6544vccb23rbrqjyg5mx0lx72mlbspziqjb61ba5r0s" - }, - { - "ext": "jpeg", - "id": "JTM8Rk3", - "name": "aenami-lost-dream", - "sha256": "1z6kzma9kwdjfkm6ijlm9wp1ql73hpdijzdpf9r7n40rh1vrcgr4" - }, - { - "ext": "jpeg", - "id": "5LfwWEz", - "name": "aenami-lunar", - "sha256": "0w8wcx5sbml7f2qqn24vsb3rljlvb2fp9bx01qghfffnqfbx58qa" - }, - { - "ext": "jpeg", - "id": "uJZ8vxw", - "name": "aenami-inner-thoughts", - "sha256": "0cjrhc9kmdw4zvqh7f0lmgkpcj1asbqbf30glnc8i31fq6cdcsiv" - }, - { - "ext": "jpeg", - "id": "6f1R9ko", - "name": "aenami-lost-in-between", - "sha256": "0pxgj327886b9fykss7rpk975z5rxc1f6cjp3gvm211zxy5qrx1j" - }, - { - "ext": "jpeg", - "id": "zSkgycN", - "name": "aenami-landscape", - "sha256": "002s8lfsl3yiz82523pfw5x4mh5n0dnwqy2mrbn5wqihw5a98idj" - }, - { - "ext": "jpeg", - "id": "56dtsbg", - "name": "aenami-lynx", - "sha256": "1ykm31v5zz2mshddrh849vzn3dpn8kybq6mbls6skz0bynxa512b" - }, - { - "ext": "jpeg", - "id": "BiqSNnh", - "name": "aenami-million-little-pieces", - "sha256": "1qmjxn06r73s50n6ff5104gaz29589r2ncywm61cn9mlibq570mh" - }, - { - "ext": "jpeg", - "id": "sQDJsSx", - "name": "aenami-moons", - "sha256": "18zr7ibgr41rccjjjgj756sg1j5xap74mgql5xsbd7bpfym3kmhc" - }, - { - "ext": "jpeg", - "id": "gKNjD1j", - "name": "aenami-northern-lights", - "sha256": "0w9n0biq80p4rqa9321k1f44jfplwab969pnakf50l3xb7bd15ls" - }, - { - "ext": "jpeg", - "id": "aqmiDH6", - "name": "aenami-pier", - "sha256": "1nckp1ggbkwhqpwsrp017wi8axvrvc2fx2x2jqsc5pz8v3cjvd7k" - }, - { - "ext": "jpeg", - "id": "stIhQJS", - "name": "aenami-otherside", - "sha256": "0il88smwyyhdvxh8afi4vl4jij242iifiyrb59xmg40bx501mwxw" - }, - { - "ext": "jpeg", - "id": "D75PJzd", - "name": "aenami-mountain-sound", - "sha256": "0fcy8majyc5qxaii8nrbymwz2mc93n1rv92ikxjl7r1k672b26jn" - }, - { - "ext": "jpeg", - "id": "4AAzya9", - "name": "aenami-out-of-time", - "sha256": "1vkz7mq2605qx8a438cxh6nxc1cmm0fzp6z1g2lxvmmm7lbfkam9" - }, - { - "ext": "jpeg", - "id": "BsLiuxd", - "name": "aenami-rain", - "sha256": "0s666x8niz1mnd9fy5dhnrmga1vn6hn0d55b8wh8k2lwsi3x5qq0" - }, - { - "ext": "jpeg", - "id": "68l4evC", - "name": "aenami-omen", - "sha256": "00xi5qdwb3v6037wn73ajza8lirjqadwgf228lq9rd6y6sbm576f" - }, - { - "ext": "jpeg", - "id": "sZAekli", - "name": "aenami-northwind", - "sha256": "1hb7wzj7sbnwx26kj2521gvl2nd017dbh74fdnjw1hc1d0ycss4a" - }, - { - "ext": "jpeg", - "id": "qSH0obm", - "name": "aenami-over-the-city", - "sha256": "09bxbkjfs33ginm69kccncyx3v9i9llp483ap1234ifr7m9mmmc3" - }, - { - "ext": "jpeg", - "id": "I6Vi2du", - "name": "aenami-waiting", - "sha256": "11v36q6hda9ybsyfngh7nsvgzdh16jmawyzmjfgzvxinkw7ipsl1" - }, - { - "ext": "jpeg", - "id": "XbGxnWi", - "name": "aenami-walls", - "sha256": "0lvgijwggprrjmmyrbrkc7nvzmr6149iz2gqs8nhs024dfrwdv18" - }, - { - "ext": "jpeg", - "id": "1Yy692W", - "name": "aenami-where-we-were", - "sha256": "1ac42n3m20c3g5d626chh1yn96sz1795x4wag6vkf7nv0bj07j64" - }, - { - "ext": "jpeg", - "id": "Nunj33a", - "name": "aenami-window-vista", - "sha256": "0qg6ywh2j2yf07bl7qqc3kryfi4702kcjijbv98sc8gdcsxrixb7" - }, - { - "ext": "jpeg", - "id": "GmRfkZ1", - "name": "aenami-rooflines", - "sha256": "15amn8m508ww0nanzlr5idh4spq8vayggzwycx7840ycj7qcmqf4" - }, - { - "ext": "jpeg", - "id": "eZQlEdJ", - "name": "aenami-seaside", - "sha256": "1jy7dsks1h25w20wmrrqixnrl0cj5pqy2239qv9pqna6cqajvx12" - }, - { - "ext": "jpeg", - "id": "EH1mzYI", - "name": "aenami-window-cat", - "sha256": "1lvmhx5crazvdk7hl14yrc1kg9pc3fk9567wym3qqqdcvnagh6bd" - }, - { - "ext": "jpeg", - "id": "nEpAGm2", - "name": "aenami-wings", - "sha256": "0034bc6wrhnfcld19ssldzfd9vhai5y4d0mrfv98ch8v5j6n2p95" - }, - { - "ext": "jpeg", - "id": "GUi0MlE", - "name": "aenami-serenity", - "sha256": "187rgh0ajnbazw1lk8yxpjmjlzqhvxwd6yh9aakk7nzpl3225xl0" - }, - { - "ext": "jpeg", - "id": "szcPZcg", - "name": "aenami-wish-you-were-here", - "sha256": "0h2qm45cl9hvp0wij7h01zxs121nqdcr5fi5kdpg4gq998afwzx0" - }, - { - "ext": "jpeg", - "id": "80GiHVd", - "name": "aenami-shuttle", - "sha256": "1dakffaj9vp3d2y4c3mx33abwy6qrl46kjlpnahh5aziwzhflhn2" - }, - { - "ext": "jpeg", - "id": "zgI8dGD", - "name": "aenami-you", - "sha256": "1nwv7v0fzvfdcyqrczc68jbvvsc7cqirmbhsax7mr835b8r2vz8l" - }, - { - "ext": "jpeg", - "id": "JQluRPv", - "name": "aenami-sky-mirro", - "sha256": "0mqa7pq4xxcnj0gll4kmixcafmgri8fqd69vn0n95ry22didd8sb" - }, - { - "ext": "jpeg", - "id": "sq1olBi", - "name": "aenami-solar", - "sha256": "1cf12nhyzcs1mdl4prx3gmifzdmd4skdyaryp7bjznwkh6bavf1a" - }, - { - "ext": "jpeg", - "id": "wEBMDdZ", - "name": "aenami-sundown", - "sha256": "11khxhq6dgi61af8mc1h2r47m50kzmxc30shs2y7y3xxf9a348sz" - }, - { - "ext": "jpeg", - "id": "1aaX5se", - "name": "aenami-stay", - "sha256": "1jmjnpipmxfm3ikll2x1slav2cr5ds81cfvfa0ixxnvlwz89k4g6" - }, - { - "ext": "jpeg", - "id": "DbSymf3", - "name": "aenami-somewhere-in-time", - "sha256": "0gf3c3my0waw02wxa39krd4rviln9873l3sl60f4icki8w78j0w2" - }, - { - "ext": "jpeg", - "id": "ChDVDTJ", - "name": "aenami-the-way", - "sha256": "1ww2n4a6jzs1bvr9icg34pqsvpk9slshmg596kznz6qr2ychg261" - }, - { - "ext": "jpeg", - "id": "iirQ7yS", - "name": "aenami-top-of-the-world", - "sha256": "0v4fwq2h3x2d45zy879jg5k4kjljcl1p4ql7sjyijwqwdifalvcm" - }, - { - "ext": "jpeg", - "id": "i21jzZu", - "name": "aenami-travel", - "sha256": "1p8kp0d0bjn7c9j1lnil1vxlgp5q2mrg3jh834rary41jfxg26qr" - }, - { - "ext": "jpeg", - "id": "GvCivBh", - "name": "aenami-the-day-you-left", - "sha256": "17asllhyx9x6rgylfhjcaxv6a36p9xm4msi4262srps7cbxfnf58" - }, - { - "ext": "jpeg", - "id": "qfe8eO6", - "name": "aenami-sweet-clouds", - "sha256": "0nk6487lamdc7dpws1c573k38nxy3iz06cvynyk6p6hbmkw1gx9r" - }, - { - "ext": "jpeg", - "id": "ZlWlLDM", - "name": "aenami-the-revenant", - "sha256": "0jlv4arajw18f6bpd4xqaha1mv96mg67nfwzs3adb8xadwczacpz" - }, - { - "ext": "jpeg", - "id": "CKR3dUi", - "name": "aenami-the-way-you-are", - "sha256": "14kc63nyzib6lx8hdhr0hbca4v3wcrqxz4hgqswrpfabyiszmny0" - }, - { - "ext": "jpeg", - "id": "FiLHSDW", - "name": "aenami-the-secret-place", - "sha256": "1zg1673kvdfp8hn859l07f4w399lf6mh6h80s0267zbwlv3zapni" - }, - { - "ext": "jpeg", - "id": "qr2ls6c", - "name": "aenami-timeless", - "sha256": "1jfqhnbdsd3fxqlal98hbirhz167gdrflv7fdfbyadsb22a059a1" - }, - { - "ext": "jpeg", - "id": "Nq45Zm3", - "name": "aenami-stars-and-you", - "sha256": "0aivcrzm0jm2y7rrgjdvn7fc99plpj9yqm8gr9xki82nps2lm97k" - }, - { - "ext": "jpeg", - "id": "qywdh0f", - "name": "aenami-stardust", - "sha256": "1hfm2iww2yzq0c2fm9q9d6v2467pjm5b4265m1lzw9n0p33dq57i" - }, - { - "ext": "jpeg", - "id": "iUXLWBj", - "name": "aenami-wait", - "sha256": "045jqfybp5ykab3gwf5aavm9dkpa1gvia8dqwyp20frln6jlq4dm" - }, - { - "ext": "png", - "id": "OKuVxYE", - "name": "outerwilds-strangers-homeworld", - "sha256": "11l65a6g21rmgsv2s3nmb78fypd5p9586id72ad9zpnala2nwzqa" - }, - { - "ext": "jpeg", - "id": "Vnt5LIz", - "name": "mountain-yosemite-purple", - "sha256": "09p6w0a934yr7g45ca32r58jqmc4124kq4z5azfmmwdbkjjvpf15" - }, - { - "ext": "jpeg", - "id": "ejRaeKw", - "name": "scifi-city-gray", - "sha256": "0zx6g5fpvkspjh9r6jni8r9l4jl3bx15xfxfwk32h8qyjdj67iw5" - }, - { - "ext": "jpeg", - "id": "BM09kO1", - "name": "landscape-snow-white-pink", - "sha256": "04xh37v2p8z32b6blc3i54a7j1v4mf55qp5gw2agds7f48dpcnjb" - }, - { - "ext": "jpeg", - "id": "wsHDMyY", - "name": "plains-flowers-green-red", - "sha256": "1bia6j96si73jb0fay1rj45nww4p81jg1bwadzc8ji0ffcc52pnz" - }, - { - "ext": "jpeg", - "id": "m3A8QaC", - "name": "samurai-cyberpunk-pink-green", - "sha256": "1v1dn6h40bppbc659kcc0y6q6s4hvdqq8615m9s0fg3ss8b2hqiq" - }, - { - "ext": "jpeg", - "id": "3ct8fH8", - "name": "abstract-cyan-purple", - "sha256": "1b5v15cpyw4k4w9cf5z2n51v1d5wxkk8wzf3birgzxi96h7p0wnd" - }, - { - "ext": "jpeg", - "id": "TkJhD6I", - "name": "abstract-red-purple-pink", - "sha256": "0n6k7qwldq8fcgaf1r0wf951jam9v3x81yjyw749d8j4mhzjkllf" - }, - { - "ext": "jpeg", - "id": "a4p7WnU", - "name": "abstract-salmon-blue", - "sha256": "0p75a1i3b6mhc7vd18f5bzq6fhnwxxic256kk7syv3b6n9l5pd80" - }, - { - "ext": "png", - "id": "6ybrgdj", - "name": "astronaut-minimalism", - "sha256": "0i5qjbz5ln1n9488yi81p4xr87w5ivmj8kmw7da69gw4l34z5zna" - }, - { - "ext": "jpeg", - "id": "OIx63MJ", - "name": "aurora-night-landscape", - "sha256": "15gz0v6fxddwwvrzap6ffdql19kri0gk145yyrqav9c04lf5cndk" - }, - { - "ext": "jpeg", - "id": "PKwRl5U", - "name": "autumn-leaves-orange", - "sha256": "1xgh36kjd6h8qj6l1wvi308kwaypcpaq9aiyxb8fn1gvnkh50v5y" - }, - { - "ext": "jpeg", - "id": "EZQrVFZ", - "name": "autumn-mountains", - "sha256": "195zxqs30apvz6mn4pbsnx67f2k8kvm25ahaqbqbqgcjhxqs816y" - }, - { - "ext": "jpeg", - "id": "sPf8X00", - "name": "beach-light-blue", - "sha256": "08lgw5dl9cm7z6ymr80yycip90p21v1kg14d6acm91yjxk35dpza" - }, - { - "ext": "jpeg", - "id": "5DABtMP", - "name": "blackhole-interstellar", - "sha256": "19vllf928yax0avidfdkdxg9xa6cdif00hj65zg0fs877hra3zg3" - }, - { - "ext": "png", - "id": "zsWkvRJ", - "name": "blue-orange-abstract", - "sha256": "1h949x9sdhbvi3fimz92rrb0bavc67j6drwvzwc4spgfp8wbvnn1" - }, - { - "ext": "jpeg", - "id": "HF3doXE", - "name": "blue-red-sky-clouds", - "sha256": "0fq75hbzyidbimhm208hwrjdjpyivmz15adlw9y7qrm7xc1qb0kq" - }, - { - "ext": "jpeg", - "id": "w4KdYOz", - "name": "cartoon-city-scifi", - "sha256": "0k21a5fdzh8a7bzm80cfvf6hlfz27cr3sm0ya8khw2zabj0zmsmg" - }, - { - "ext": "jpeg", - "id": "YkqZAPS", - "name": "cartoon-mountain", - "sha256": "0rgl64hyk103cdghf2qbkl7dxcgf1760y6kpyqm9d3936hy1i54m" - }, - { - "ext": "jpeg", - "id": "BRaytcU", - "name": "clouds-moon-painting-purple", - "sha256": "0ghlyabq6j2kzj3wawmwxk552j0cwn0lwfb5c1h93zj4qy06ilql" - }, - { - "ext": "jpeg", - "id": "CwxXVhI", - "name": "cthulhu", - "sha256": "0kzirh1f7h5gw29z8529hpqiil1d3h0bbdn39ccpyx25m6mz3s4b" - }, - { - "ext": "jpeg", - "id": "t0vsV7P", - "name": "cubist-purple-pink", - "sha256": "1qf7n3mxz68gip646f4qpvlj85flc5694lp48rc6gwv4gidn51fl" - }, - { - "ext": "jpeg", - "id": "Uqs6vMB", - "name": "cubist-crystal-brown-teal", - "sha256": "18l6w18j9h4vq7ak9544m99s8zrz4dagx9gjs6k6f3lvf6sc8wpg" - }, - { - "ext": "jpeg", - "id": "s2DZY9c", - "name": "cubist-orange-blue", - "sha256": "01a9zj0h4qm2d88al2kmmvf4cak3bri4wpyk3hfy3prkhjw65l50" - }, - { - "ext": "jpeg", - "id": "r8LHLB9", - "name": "cyberpunk-city-red", - "sha256": "03j7yi2x5vrfdp557bngidi8jafsv9ck9v5mqc2rjgnqpvfbjl50" - }, - { - "ext": "png", - "id": "UR2whSu", - "name": "deer-lunar-fantasy", - "sha256": "0prmcysxq60zvmlwm6vlsjgw2d9wdgbqcfn01m8198vl90iyn6y7" - }, - { - "ext": "jpeg", - "id": "PRun2Wx", - "name": "desert-dunes", - "sha256": "02bgls75vpjl2787laps89czrnw75kcxj1jww74l2aapmczrckiy" - }, - { - "ext": "jpeg", - "id": "YWaLxyW", - "name": "desert-dunes-night", - "sha256": "1g5d34k76pqw48hlpzlfyrlpajv6lsfs1rqxs14b00s0rkivwd3l" - }, - { - "ext": "jpeg", - "id": "DdJbvpl", - "name": "eclipse-moon-red", - "sha256": "057hdwidc8yiashsgni7a21cm2csyy8kplzphw84zi06gq0sdvs8" - }, - { - "ext": "jpeg", - "id": "P5p6gvq", - "name": "fantasy-tree-blue", - "sha256": "0clwdbwl6jinpjbf4bapi1qkgx6a0cy8w7mcamkw2zc8fblghrqf" - }, - { - "ext": "jpeg", - "id": "RiisWy4", - "name": "fantasy-chinese-fort", - "sha256": "0zk3yj16zw3idvbh4ny0vx6z87slrjbg3wqys2s6qgydf5pfp50p" - }, - { - "ext": "jpeg", - "id": "hlVWex9", - "name": "fantasy-chinese-night", - "sha256": "10zs7496z2wxqrbkx6a32jny07vra049bsc4cvw8z0xj4sp0vd2s" - }, - { - "ext": "jpeg", - "id": "DbqgxCL", - "name": "fantasy-chinese-town", - "sha256": "1fd2zis5ws8spx82p33yr96rr0n4zv1krix42c80rhb58f8h43gq" - }, - { - "ext": "jpeg", - "id": "wkEswZE", - "name": "fantasy-red-forest", - "sha256": "0hpyfgkkzyw21wagw27mgg91f3i4l3qpprjvzrn80qgg8nkpcgax" - }, - { - "ext": "jpeg", - "id": "SQ5Wt1q", - "name": "fantasy-snow-mountain", - "sha256": "05z6jymjhzi4xp5jg7j1xgrndz9nmcldhc8qpsjj709vvr8ysvwl" - }, - { - "ext": "jpeg", - "id": "ZmYVTr8", - "name": "fantasy-sunset-tree", - "sha256": "1hjgbzrw20a9i5gasnh2f2kb0i0w1gy711kfkz8k48x4nv16pi8f" - }, - { - "ext": "png", - "id": "YfjfSux", - "name": "forest-deer-landscape", - "sha256": "18q1aqxnavvslm3kvblnpphq9qfc88zh68qk9ysmnyx2gc7yn0zs" - }, - { - "ext": "jpeg", - "id": "Qq5O5DI", - "name": "cubist-pink-yellow", - "sha256": "1vvcpanvwyd9wx438195i3mq89grhfgnggs28l6z9x6vcphk3f0l" - }, - { - "ext": "jpeg", - "id": "yAgjkpr", - "name": "forest-green", - "sha256": "1jxmsv3m6qv0k63kvfmzqamws4z9xmw005ndci7gr9vf5ilh4hds" - }, - { - "ext": "jpeg", - "id": "px7sF71", - "name": "autumn-japanese-room", - "sha256": "1dfwm3q49681g1a0374qladqplsjdik62p3b0r5bl6ilin91blnm" - }, - { - "ext": "jpeg", - "id": "EMEUnXz", - "name": "kombi-sky-sunset-watercolor", - "sha256": "15gsv7qj5jlpzvmfr0f7s2cbsqpf3rjvsmkpx47n3ii06wcx7r0j" - }, - { - "ext": "jpeg", - "id": "9fm6Z69", - "name": "lake-mountains-landscape", - "sha256": "10j5qxnvd8iifdhihymv9wx0x595qkaslyc43xsn5b1caqwddfpc" - }, - { - "ext": "jpeg", - "id": "HKFgSlP", - "name": "lightning-mountains", - "sha256": "1h4gjr57s241zc4vhil25i4cw2hb5hb81ncwjskncwlkas0cnxrc" - }, - { - "ext": "jpeg", - "id": "chmnqIq", - "name": "lowpoly-fish", - "sha256": "0f2kgbxsdxnr223ddk2p1qxlmyvkf893xrglhs194ykkrdlfwhj9" - }, - { - "ext": "jpeg", - "id": "EWDyGPw", - "name": "lowpoly-island", - "sha256": "1xwdcl1sc7q4hylzssgnjjsx4dswz49qrirv4lf200r90xbm1f0p" - }, - { - "ext": "jpeg", - "id": "agNCupE", - "name": "mountain-pink-purple", - "sha256": "0p2zavbhhv2zb7wymxxgr83cw1mla3vaqbpdpq0lr3p0mwjsnpp2" - }, - { - "ext": "jpeg", - "id": "cGeQqjy", - "name": "mountain-yellow-sunset", - "sha256": "083gr4gn70i0x1jhikwpcg3dk0zc52sib210ny2alzk8q7gp0f56" - }, - { - "ext": "jpeg", - "id": "9vfMeTG", - "name": "mountain-yellow-red", - "sha256": "00al7mhf6yshb4qhca9l2kypf7pb9jhkiil8lagpm200wl2r2vnk" - }, - { - "ext": "jpeg", - "id": "IA2T8tT", - "name": "city-cyan-orange", - "sha256": "05n0mfi37bgnxkbjj6vq2az56wa3vp5haa0qyp0pbkzdgqdp96f9" - }, - { - "ext": "jpeg", - "id": "OJQl9fw", - "name": "forest-clouds-landscape-painting", - "sha256": "07p1qhl5k76xhxdijzy780gvibx3485997rqhkdb5zd6vz7x9dl5" - }, - { - "ext": "jpeg", - "id": "xuP6mAg", - "name": "nebula-cyan-yellow", - "sha256": "1qfq0fxm970pgz010rj22wxp12bmpc7yxjqif10nlv11ypdn3wvc" - }, - { - "ext": "jpeg", - "id": "I6CkYip", - "name": "plains-gold-field", - "sha256": "0x514qcv9jf2p6z1ca6mi7j1kfyv6w9n8njl33p5iyyp2z59g788" - }, - { - "ext": "jpeg", - "id": "MCT39SF", - "name": "planet-comets-blue-pink", - "sha256": "0s112hlsw2pag65qxdlnprhim48x2gwvziymjymkcszp55fq5rw2" - }, - { - "ext": "jpeg", - "id": "1kCnuju", - "name": "planet-gray", - "sha256": "0z1l2ym499d195giqlhybma3k45ad336jilhdhww6zmr7kh2i087" - }, - { - "ext": "jpeg", - "id": "4z2QvKv", - "name": "nebula-purple-gold", - "sha256": "0dqacrms5ra4w1banbnd5hzqg186rrnlszh7qbf6il0l9vvjylgr" - }, - { - "ext": "jpeg", - "id": "ta0UUvC", - "name": "mountain-nebula-purple-pink", - "sha256": "1dvly9mcv6aqcq6l67gv1vcfdcwaf7z478lqh8i4jliw4w04if7j" - }, - { - "ext": "jpeg", - "id": "vpsuota", - "name": "mountain-stars-purple", - "sha256": "0aqa7xx174lfz71xgzq59fb8z1w7gc8kqmpcrg1q2k0xmhzdfiff" - }, - { - "ext": "jpeg", - "id": "ExrK7uv", - "name": "nebula-purple-pink", - "sha256": "11qaybypqn7gn1mrvhf8zvas75ysx5xgdcizb1njjmhvgfcnpvqy" - }, - { - "ext": "jpeg", - "id": "i9fwJt5", - "name": "painting-river-snow-forest-gold", - "sha256": "1v53fmx6hfhbw4qcga72b1skq9v926c1b50b23fs5r94j1ampidv" - }, - { - "ext": "jpeg", - "id": "FlZTrlo", - "name": "scifi-city-lights", - "sha256": "0g6g022h3b7f1s7c1davry08phcj3dkyg9wyn92jpssvphhz8dpz" - }, - { - "ext": "jpeg", - "id": "vMLkDJ6", - "name": "scifi-astronauts-red", - "sha256": "0snr40wgdab1m2nvalp67lna015j7cn167hi66iz2faw2ndnydxj" - }, - { - "ext": "jpeg", - "id": "F7xoHky", - "name": "landscape-snow-lighthouse-white", - "sha256": "1svc332hw5aakw9i0q42wd7cxxb2cjjg50gkqy1xyp6xgssw8j23" - }, - { - "ext": "jpeg", - "id": "XNIxNxb", - "name": "planet-purple-gray", - "sha256": "0hlkg56qlfg86dg7icqpi2khims1fyshmpciyn6a8bbdjx57a6ik" - }, - { - "ext": "png", - "id": "IwyyqzM", - "name": "landscape-forest-elk-purple", - "sha256": "1r8fdi4k53lxq213m56rkhi8aj8b5my50i2my2k652h9l847zxq0" - }, - { - "ext": "jpeg", - "id": "0ZF3mfd", - "name": "landscape-forest-cyan-gold", - "sha256": "10x09brlajw4iyzdzxg6m1sqh6kxdd0wnld5y0pc4zn0zkygnacx" - }, - { - "ext": "jpeg", - "id": "Ny8Qt2W", - "name": "landscape-painting-purple-green", - "sha256": "1kzk919rz1g11na0hfihwk1dlcrjnd470aqpxkvnxw1zy2yaxsg8" - }, - { - "ext": "jpeg", - "id": "oLnpVAh", - "name": "landscape-mountains-purple-blue", - "sha256": "0gs0b7i7w2hys9bpv6pb4b7pli8plxx9y007k0q7m5pwdjf8ajyc" - }, - { - "ext": "png", - "id": "i4ulyPe", - "name": "clouds-comet-orange-bue", - "sha256": "1563j1hg6giqprk70njljcj8v0g4qvry9ai9mc0rg7a6qidc6d5m" - }, - { - "ext": "jpeg", - "id": "KRm9npy", - "name": "triangles-abstract-nebula-red", - "sha256": "1nwyrw353b57zfdqnrxh0bqz7d61aci1ybwmrr1pgpsf50ys30cy" - }, - { - "ext": "jpeg", - "id": "bR386Mm", - "name": "wave-painting-cyan-orange", - "sha256": "07spb5z86aijb5l3j8zj48zivkxb0ryzs1ma94n7jakxxr7k4lip" - }, - { - "ext": "jpeg", - "id": "ZiocLpU", - "name": "tree-snow-minimal-white", - "sha256": "1hd1k5gkfn2kvmrnc03w4mmwl96b2l943ixpccg7i6hlmvkqa303" - }, - { - "ext": "jpeg", - "id": "e6E2IOc", - "name": "ships", - "sha256": "0vpxg5403nsnipzgibdah0i5kwkfbgm5kkv9kfa4zzdz2rrykkx5" - }, - { - "ext": "jpeg", - "id": "cpPjhaq", - "name": "scifi-cube", - "sha256": "186qfjxb1zkasp3wivcbh72wr2bcj2c90zncwypxlcfp8dl2cz7w" - }, - { - "ext": "jpeg", - "id": "HNPeX2h", - "name": "scifi-spaceship-clouds", - "sha256": "08cmf3nqzdkjwjjysy7cn9l2zjmvlkvwhpnbk644kcr1spvybw46" - }, - { - "ext": "jpeg", - "id": "JF4BZWw", - "name": "lake-houses-sunset-gold", - "sha256": "1wvfxylx3c4q8yx8bl60q63zk4cyjibdmmn42h246lhsr5qrff4m" - }, - { - "ext": "jpeg", - "id": "lbSq5se", - "name": "cthulhu-side", - "sha256": "0qa3x06gmc7a54b9hksa6zdg794mgk5l1yylbk7f0hzl7vz58a94" - }, - { - "ext": "jpeg", - "id": "ssi4zpM", - "name": "cthulhu-standing", - "sha256": "00wqp90q4x3nyr1bj40qw2wpppw7f4aq1vgww2jhm9ja0aafhmn5" - }, - { - "ext": "jpeg", - "id": "HdCMqmb", - "name": "fox-forest-green", - "sha256": "1rkxvg6mjnraphinfbgb7jmd272qrdzlxfj3fc0bqlx9b0q5i0a2" - }, - { - "ext": "jpeg", - "id": "yC3GJi4", - "name": "city-pink-car-outrun", - "sha256": "0z2xa9i5d7688hmbys03avaz0kj74mzyhcpv7h4jx89hy0k0563r" - }, - { - "ext": "jpeg", - "id": "0QU8UeV", - "name": "city-pink-gold-sunset", - "sha256": "0kcn8c4iz8vg3fw99iwx16w69vp74fllir75yxdm94rhsjhwc44x" - }, - { - "ext": "jpeg", - "id": "5p9moeS", - "name": "forest-blue-purple-deer", - "sha256": "14dgj27kk7ax4fp08q7xpd6za75zn5zqadb9lzdj29bp6arh7ijx" - }, - { - "ext": "jpeg", - "id": "XK9g9yK", - "name": "city-pink-purple-scifi", - "sha256": "0qd0hc22dxfyax6yn0gcd9syl6gaaqr14zx2cf81jmqqlv7nx5cf" - }, - { - "ext": "png", - "id": "x8L2JA1", - "name": "linkinpark-hybridtheory", - "sha256": "151h7mrqkrfgq5fnpa5r4351d6nmd8k0bmxfnyld86avz2wblvgs" - }, - { - "ext": "jpeg", - "id": "APFnPz7", - "name": "castle-mountains", - "sha256": "15spnipniz9l6plksv727dpvzszxjlq775wk7apwljm3s92kys1b" - }, - { - "ext": "jpeg", - "id": "iBIYWua", - "name": "cosmic-cliffs", - "sha256": "0k19j2fp3pgqcgzqn2hl890c6qhq6m3r8f96lrhdyfrkizkys3dg" - }, - { - "ext": "jpeg", - "id": "VK736cL", - "name": "elden-ring", - "sha256": "1b78krnb03d91609pqj4xx8h0xd74pig4wpsbql01n1qkh83l89w" - }, - { - "ext": "jpeg", - "id": "y45W4W9", - "name": "fighters-atmosphere-upwards", - "sha256": "114qvpjkacp259l58frb8p36dwhchgzf99pmc3b72qix43qn5y2k" - }, - { - "ext": "jpeg", - "id": "780nwco", - "name": "island-birds-eye", - "sha256": "0hhr52j3hqzcyl0h2h1j1lw6z0ikscv7fiakf813wlj36gbbjqr4" - }, - { - "ext": "jpeg", - "id": "FYXKXao", - "name": "kosmos-space-dark", - "sha256": "0lay6q0kh1jgikdaskcvlvy4a98bldj7qqvf0xvspawvzi2a5dml" - }, - { - "ext": "jpeg", - "id": "KHSFMd4", - "name": "milky-way-desert", - "sha256": "09wsanqa0lyvyqri60mzx51sz9zvi5ck7sfdmfpq72iscy28wc1h" - }, - { - "ext": "jpeg", - "id": "37jsRhx", - "name": "milky-way-mountains", - "sha256": "0kmb4shlc76m98ch9yaq9mpvjlrdfgi1mkxmgx70y3jqll9jfb8k" - }, - { - "ext": "jpeg", - "id": "XaXeJlb", - "name": "ocean-sunset", - "sha256": "1gcgcv8nwxawldxkcsvc0hk4x3cdiarl5g73ami16kqhl3z9bpby" - }, - { - "ext": "jpeg", - "id": "P6V6D9L", - "name": "pink-neon-motorcycle", - "sha256": "1a171qg2zkzv64rrhijp090gkkfxg98vpvlwkdamdz1qxpxv1rmw" - }, - { - "ext": "png", - "id": "WcygACw", - "name": "ringed-planet-cartoon", - "sha256": "160w298nk6nks5n0ssq60ami8wd02k13ky5vkp2jrb0vbkcpm8bp" - }, - { - "ext": "jpeg", - "id": "fiFundK", - "name": "snow-purple-white", - "sha256": "0qk6sq088ghjq1v5cl5w49hydblslig6d88m0m3d0hslyr7xk4w8" - }, - { - "ext": "jpeg", - "id": "pLgwcvI", - "name": "summer-cartoon-town", - "sha256": "0kdd1ky4g754ljpfc63p91r7x11sc51spv503hlh08bwdiv60ldq" - }, - { - "ext": "jpeg", - "id": "orBsKsn", - "name": "400i-starcitizen", - "sha256": "09fa27z03vs9wijl76pvg7niybc1799hhsr4973jqydirqrj550p" - }, - { - "ext": "jpeg", - "id": "rOfKtiV", - "name": "abstract-white-gold", - "sha256": "1wyfhic691x2bvbnxckrb89clnx1vmd8zzads9l31fclh8q4vird" - }, - { - "ext": "jpeg", - "id": "TNA9XNY", - "name": "aurora-borealis-water-mountain", - "sha256": "1jc5kzjnzz2lspbvqzby5i53g822klldxxi2ykgb378vqw9pfhs2" - }, - { - "ext": "jpeg", - "id": "SgfKQK1", - "name": "castle-sunset-fantasy", - "sha256": "02zkikixyl63i2miwfd6lapc1mr8l5zmfqm3g279mjbmdyccqwk6" - }, - { - "ext": "jpeg", - "id": "jGe0HrK", - "name": "desert-city", - "sha256": "1zjyv01aa64v6g75d317s1pc8fz6pgrcysv5dglysi779hmrjl11" - }, - { - "ext": "jpeg", - "id": "S4lhkLn", - "name": "fantasy-city-mountains", - "sha256": "03ix97s2vgf9p3nbsik7zlj394cwv3kc6qsrw30lc1zkx9ffk8nj" - }, - { - "ext": "jpeg", - "id": "pJVleCQ", - "name": "landscape-river-birds", - "sha256": "1f0sp2qiyyp6hxvxp3da9bcyj5xr9b8brb3mlika9qvigrfa17bl" - }, - { - "ext": "png", - "id": "F9qlUHr", - "name": "minimalist-purple-desert", - "sha256": "16zfb3bnq2cyxkgndyr1n76n6fbsa6nl978sbg16d1rh1wnakhqf" - }, - { - "ext": "jpeg", - "id": "D93Kdg4", - "name": "orange-blue-circuits", - "sha256": "10d7kcy6r14mdkwalzwk4m4l4q0skj484zmkl995il1vi6qk6ja5" - }, - { - "ext": "jpeg", - "id": "dkYwlGE", - "name": "pink-purple-sunset", - "sha256": "1jxyixcazs0dw2nq7aiblcm24vc8b0l787rb95s9kwkp7xf3xh1f" - }, - { - "ext": "jpeg", - "id": "Ae0YvMv", - "name": "planet-pink-gold", - "sha256": "08qksm90ryxkmlqi4gqrcy2417svz5iamfg7gyr8bsx1h4j1qk8d" - }, - { - "ext": "jpeg", - "id": "faCqnm7", - "name": "planet-red-desert", - "sha256": "1ip9icxsva5rlwyv6wlwdnhx7gnkwsqg8y04glvq45qgr6p3s4i5" - }, - { - "ext": "png", - "id": "hkhLSd8", - "name": "purple-pink-circuits-minimalist", - "sha256": "10af2ln3ysgpivkk30g0bzl586dk408q2555zcr988y6df0cafha" - }, - { - "ext": "jpeg", - "id": "RcZW0hr", - "name": "scifi-reactor-blue-orange", - "sha256": "1ycx87pm6vy92kvicfbayjx9hjhis729n8yg3prkcy2712v4y7ra" - }, - { - "ext": "jpeg", - "id": "ctnvPx1", - "name": "scifi-space-ring-orange", - "sha256": "0rn7kvp3dpwlszsfi32rx0xzp87001lipvqypy3gm76mx5a42mjd" - }, - { - "ext": "jpeg", - "id": "zw7LRCQ", - "name": "starcitizen-banu", - "sha256": "1d4z87l9bsncxdv5aqv8dgv8jhf3iar3vgayznbdxgj0hnbcdfs5" - }, - { - "ext": "jpeg", - "id": "iOIuN69", - "name": "temple-fantasy-blue", - "sha256": "0q8z4j4xchk0kmcpniyyqj8nkiqh97d90gzk7b7gv196vhxldhq3" - }, - { - "ext": "jpeg", - "id": "oqwTh85", - "name": "towers-ice", - "sha256": "0cqm4ish4yzrww7v0whmv8ckxcdwzppfm0gkpyfflpgm8xakyykf" - }, { "ext": "jpeg", "id": "u2T7X4I", diff --git a/hosts/common/optional/gnome.nix b/hosts/common/optional/gnome.nix index 94a1cf3..0c325b4 100644 --- a/hosts/common/optional/gnome.nix +++ b/hosts/common/optional/gnome.nix @@ -2,23 +2,26 @@ services = { xserver = { enable = true; - desktopManager.gnome = { - enable = true; - }; displayManager.gdm = { enable = true; autoSuspend = false; - wayland = true; + wayland = false; + }; + desktopManager.gnome = { + enable = true; }; }; + dbus.packages = [ pkgs.gnome3.dconf ]; + udev.packages = [ pkgs.gnome3.gnome-settings-daemon ]; geoclue2.enable = true; gnome.games.enable = true; }; + networking.networkmanager.enable = true; services.avahi.enable = true; + # Enable CUPS to print documents. services.printing.enable = true; services.avahi.nssmdns = true; # for a WiFi printer services.avahi.openFirewall = true; - networking.networkmanager.enable = true; } diff --git a/hosts/common/optional/greetd.nix b/hosts/common/optional/greetd.nix deleted file mode 100644 index 519ab84..0000000 --- a/hosts/common/optional/greetd.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ pkgs, lib, config, ... }: -let - homeCfgs = config.home-manager.users; - homePaths = lib.mapAttrsToList (n: v: "${v.home.path}/share") homeCfgs; - extraDataPaths = lib.concatStringsSep ":" homePaths; - vars = ''XDG_DATA_DIRS="$XDG_DATA_DIRS:${extraDataPaths}"''; - - sway-kiosk = command: "${pkgs.sway}/bin/sway --config ${pkgs.writeText "kiosk.config" '' - output * bg #000000 solid_color - exec "dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK" - xwayland disable - input "type:touchpad" { - tap enabled - } - exec '${vars} ${command} -l debug; ${pkgs.sway}/bin/swaymsg exit' - ''}"; - - gburdCfg = homeCfgs.gburd; -in -{ - users.extraUsers.greeter.packages = [ - gburdCfg.gtk.theme.package - gburdCfg.gtk.iconTheme.package - ]; - - programs.regreet = { - enable = true; - settings = { - GTK = { - icon_theme_name = "ePapirus"; - theme_name = gburdCfg.gtk.theme.name; - }; - background = { - path = gburdCfg.wallpaper; - fit = "Cover"; - }; - }; - }; - services.greetd = { - enable = true; - settings.default_session.command = sway-kiosk (lib.getExe config.programs.regreet.package); - }; -} diff --git a/hosts/loki/default.nix b/hosts/loki/default.nix index 4f5552b..4ec2ed1 100644 --- a/hosts/loki/default.nix +++ b/hosts/loki/default.nix @@ -11,11 +11,9 @@ ../common/optional/gnome.nix ../common/optional/x11-keymap.nix - ../common/optional/gamemode.nix - ../common/optional/greetd.nix +# ../common/optional/gamemode.nix ../common/optional/pipewire.nix ../common/optional/quietboot.nix - ../common/optional/lol-acfix.nix ]; networking = {