diff --git a/assets/img/profile-image/LICENSE.md b/assets/img/profile-image/LICENSE.md new file mode 100644 index 0000000..ce94d3e --- /dev/null +++ b/assets/img/profile-image/LICENSE.md @@ -0,0 +1,9 @@ +Pixabay License: https://pixabay.com/service/license/ + +Credits: +* https://pixabay.com/users/ribastank-805206/ + +Source: +* https://pixabay.com/photos/yoda-starwars-actionfigure-667955/ +* https://free-images.com/display/yoda_starwars_actionfigure_667955.html + diff --git a/assets/img/profile-image/face.jpg b/assets/img/profile-image/face.jpg new file mode 100644 index 0000000..d997d43 Binary files /dev/null and b/assets/img/profile-image/face.jpg differ diff --git a/assets/img/profile-image/yoda_starwars_actionfigure_667955.jpg b/assets/img/profile-image/yoda_starwars_actionfigure_667955.jpg new file mode 100644 index 0000000..012e690 Binary files /dev/null and b/assets/img/profile-image/yoda_starwars_actionfigure_667955.jpg differ diff --git a/hosts/yodaGaming/configuration.nix b/hosts/yodaGaming/configuration.nix index 97b5d4c..b38b1be 100644 --- a/hosts/yodaGaming/configuration.nix +++ b/hosts/yodaGaming/configuration.nix @@ -26,10 +26,7 @@ #../../modules/programs-kde.nix # ../../modules/gnome-base.nix - ../../modules/gnome-config.nix - ../../modules/gnome-extensions.nix ../../modules/fwupd-gnome.nix - ../../modules/gnome-wallpaper.nix ../../modules/programs-gnome.nix ../../modules/programs-base.nix diff --git a/hosts/yodaTab/configuration.nix b/hosts/yodaTab/configuration.nix index 26c2e44..ac1ea67 100644 --- a/hosts/yodaTab/configuration.nix +++ b/hosts/yodaTab/configuration.nix @@ -28,12 +28,9 @@ #../../modules/programs-kde.nix # ../../modules/gnome-base.nix - ../../modules/gnome-config.nix - ../../modules/gnome-extensions.nix # Not required as display scale is set 2.0 (multiple of 1). #../../modules/gnome-fractional-scaling.nix ../../modules/fwupd-gnome.nix - ../../modules/gnome-wallpaper.nix ../../modules/programs-gnome.nix ../../modules/programs-base.nix diff --git a/hosts/yodaTux/configuration.nix b/hosts/yodaTux/configuration.nix index f84eed8..1b69a36 100644 --- a/hosts/yodaTux/configuration.nix +++ b/hosts/yodaTux/configuration.nix @@ -34,11 +34,8 @@ #../../modules/programs-kde.nix # ../../modules/gnome-base.nix - ../../modules/gnome-config.nix - ../../modules/gnome-extensions.nix ../../modules/gnome-fractional-scaling.nix #../../modules/fwupd-gnome.nix # TODO: Constantly keeps installing the same fw update again - ../../modules/gnome-wallpaper.nix ../../modules/programs-gnome.nix ../../modules/programs-base.nix diff --git a/modules/gnome-base.nix b/modules/gnome-base.nix index 7eae3f6..6b1a1ec 100644 --- a/modules/gnome-base.nix +++ b/modules/gnome-base.nix @@ -7,6 +7,10 @@ imports = [ ./audio.nix + ./gnome-config.nix + ./gnome-extensions.nix + ./gnome-wallpaper.nix + ./gnome-profile-image.nix ]; # Enable the X11 windowing system. diff --git a/modules/gnome-profile-image.nix b/modules/gnome-profile-image.nix new file mode 100644 index 0000000..e6cdb7f --- /dev/null +++ b/modules/gnome-profile-image.nix @@ -0,0 +1,29 @@ +{ config, pkgs, ... }: +let + dir = "/var/lib/AccountsService/icons"; + user = "yoda"; +in +{ + # https://discourse.nixos.org/t/setting-the-user-profile-image-under-gnome/36233/4 + + # Important: File permissions and file format + # https://discourse.nixos.org/t/setting-the-user-profile-image-under-gnome/36233/7 + + # https://github.com/tolgaerok/nixos-kde/blob/3c4b55f2b0345facc5bc5157750dfaecef9d4d6c/machines/LAPTOPS/HP-i5-ProBook-6460b/user/user-profile-pic/default.nix + # https://github.com/tolgaerok/nixos-kde/blob/3c4b55f2b0345facc5bc5157750dfaecef9d4d6c/user/user-home-settings/create-user-profile-pics.nix + + # After changing my profile image in KDE Plasma 6, this file was created: + # /var/lib/AccountsService/users + # With content: + # [User] + # Icon=/var/lib/AccountsService/icons/yoda + # SystemAccount=false + # Permissions: root:root 0600 + + # `system.activationScripts`: + # - Since these are executed every time you boot the system or run `nixos-rebuild`, it’s important that they are idempotent and fast. + system.activationScripts.setGnomeProfilePicture = '' + mkdir -p ${dir} + cp ${(pkgs.callPackage ./profile-image.nix { })}/img.png ${dir}/${user} + ''; +} diff --git a/modules/profile-image.nix b/modules/profile-image.nix new file mode 100644 index 0000000..3da4dae --- /dev/null +++ b/modules/profile-image.nix @@ -0,0 +1,18 @@ +{ pkgs, lib }: +let + max-width = "256"; +in + pkgs.stdenv.mkDerivation rec{ + name = "yoda-profile-image"; + src = "${../assets/img/profile-image/face.jpg}"; + nativeBuildInputs = with pkgs; [ imagemagick ]; + phases = "installPhase"; + # magick limit width: https://stackoverflow.com/a/38415211/6334421 + # magick jpg options: quality, progressive, strip metadata. https://stackoverflow.com/a/7262050/6334421 + installPhase = '' + set -eu -o pipefail + mkdir -p $out + ${pkgs.imagemagick}/bin/magick $src -resize '${max-width}>' -quality 90% -interlace Plane -strip $out/img.jpg + ${pkgs.imagemagick}/bin/magick $src -resize '${max-width}>' $out/img.png + ''; + }