diff --git a/gnu/local.mk b/gnu/local.mk
index b432a95026..f51b5a7e03 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1321,6 +1321,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/hurd-cross.patch				\
   %D%/packages/patches/hurd-xattr.patch				\
   %D%/packages/patches/hwloc-1-test-btrfs.patch			\
+  %D%/packages/patches/hyfetch-fix-generator-script-quotation-escaping.patch	\
+  %D%/packages/patches/hyfetch-remove-old-catchy-os-py.patch	\
   %D%/packages/patches/i7z-gcc-10.patch				\
   %D%/packages/patches/icecat-makeicecat.patch			\
   %D%/packages/patches/icecat-avoid-bundled-libraries.patch	\
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 9a82740eb6..4833105eed 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -3922,19 +3922,24 @@ (define-public neofetch
 (define-public hyfetch
   (package
     (name "hyfetch")
-    (version "1.4.4")
+    (version "1.4.6")
     (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "HyFetch" version))
-        (sha256
-          (base32 "1k3pcl16y2czkk7wd79yk0w1kqpi4fp8h8szhjs5ywwy20nqmms8"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hykilpikonna/hyfetch")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (patches
+        (search-patches
+         ;; XXX: Cherry-picked from upstream, remove when updating.
+         "hyfetch-fix-generator-script-quotation-escaping.patch"
+         "hyfetch-remove-old-catchy-os-py.patch"))
+       (sha256
+        (base32
+         "1cnjvkil40bipia8gvs32q0lbqyi5j0nrsr7k4s0c55rh5bhkc3d"))))
     (build-system python-build-system)
-    (inputs (list python-hypy-utils python-typing-extensions))
-    (arguments `(#:phases (modify-phases %standard-phases
-                            (add-before 'build 'set-HOME
-                              (lambda _  ;; Tries to set files in .config
-                                (setenv "HOME" "/tmp"))))))
+    (inputs (list python-typing-extensions))
     (home-page "https://github.com/hykilpikonna/HyFetch")
     (synopsis "@code{neofetch} with pride flags <3")
     (description "HyFetch is a command-line system information tool fork of
diff --git a/gnu/packages/patches/hyfetch-fix-generator-script-quotation-escaping.patch b/gnu/packages/patches/hyfetch-fix-generator-script-quotation-escaping.patch
new file mode 100644
index 0000000000..dc09864707
--- /dev/null
+++ b/gnu/packages/patches/hyfetch-fix-generator-script-quotation-escaping.patch
@@ -0,0 +1,115 @@
+From db69285ec161452c11ae490266e84211bec38c0d Mon Sep 17 00:00:00 2001
+From: Azalea Gui <me@hydev.org>
+Date: Fri, 10 Feb 2023 23:05:23 -0500
+Subject: [PATCH] [F] Fix generator script quotation escaping #91 #90
+
+---
+ hyfetch/distros/debian.py   | 4 ++--
+ hyfetch/distros/haiku.py    | 2 +-
+ hyfetch/distros/puffos.py   | 2 +-
+ hyfetch/distros/skiffos.py  | 2 +-
+ hyfetch/distros/trisquel.py | 4 ++--
+ tools/list_distros.py       | 4 +++-
+ 6 files changed, 10 insertions(+), 8 deletions(-)
+
+diff --git a/hyfetch/distros/debian.py b/hyfetch/distros/debian.py
+index 8aab161d..7b4a2a9c 100644
+--- a/hyfetch/distros/debian.py
++++ b/hyfetch/distros/debian.py
+@@ -4,7 +4,7 @@ from . import AsciiArt
+ debian = AsciiArt(match=r'''"Debian"*''', color='1 7 3', ascii=r"""
+ ${c2}       _,met$$$$$gg.
+     ,g$$$$$$$$$$$$$$$P.
+-  ,g$$P"        \"""Y$$.".
++  ,g$$P"        "\""Y$$.".
+  ,$$P'              `$$$.
+ ',$$P       ,ggs.     `$$b:
+ `d$$'     ,$P"'   ${c1}.${c2}    $$$
+@@ -18,6 +18,6 @@ ${c2}  `Y$$
+      `$$b.
+        `Y$$b.
+           `"Y$b._
+-              `\"""
++              `"\""
+ """)
+     
+\ No newline at end of file
+diff --git a/hyfetch/distros/haiku.py b/hyfetch/distros/haiku.py
+index cf10cfc5..198cd142 100644
+--- a/hyfetch/distros/haiku.py
++++ b/hyfetch/distros/haiku.py
+@@ -15,6 +15,6 @@ ${c3}           MMMM${c4}   .cOMMMMM|/MMMMM/`
+            MM${c4}MMMMMMM/`:MMM/  ${c3}MMMM
+            MMMM              MMMM
+            MMMM              MMMM
+-           \""""              \""""
++           "\"\""              "\"\""
+ """)
+     
+\ No newline at end of file
+diff --git a/hyfetch/distros/puffos.py b/hyfetch/distros/puffos.py
+index 789d3994..0e61def4 100644
+--- a/hyfetch/distros/puffos.py
++++ b/hyfetch/distros/puffos.py
+@@ -7,7 +7,7 @@ ${c1}
+             ,/'      '"";
+            /             ".
+          ,'mmmMMMMmm.      \
+-       _/-"^^^^^\"""%#%mm,   ;
++       _/-"^^^^^"\""%#%mm,   ;
+  ,m,_,'              "###)  ;,
+ (###%                 \#/  ;##mm.
+  ^#/  __        ___    ;  (######)
+diff --git a/hyfetch/distros/skiffos.py b/hyfetch/distros/skiffos.py
+index 49d311c0..93a846a7 100644
+--- a/hyfetch/distros/skiffos.py
++++ b/hyfetch/distros/skiffos.py
+@@ -11,6 +11,6 @@ ${c2}
+       ${c2}*@@@@@@@@@@@@@@@@@@@@@@@@@p${c1}||||==,
+         ${c1}`'||LLL{{""${c2}@$B@@@@@@@@@@@@@@@p${c1}||
+             ${c1}`~=|||||||||||L"${c2}$@@@@@@@@@@@
+-                   ${c1}````'\"""\""""${c2}'\"""\"""""
++                   ${c1}````'"\"\""\"\""${c2}'"\"\""\"\"\""
+ """)
+     
+\ No newline at end of file
+diff --git a/hyfetch/distros/trisquel.py b/hyfetch/distros/trisquel.py
+index c92a5938..b15eb1f4 100644
+--- a/hyfetch/distros/trisquel.py
++++ b/hyfetch/distros/trisquel.py
+@@ -3,7 +3,7 @@ from . import AsciiArt
+ 
+ trisquel = AsciiArt(match=r'''"Trisquel"*''', color='4 6', ascii=r"""
+ ${c1}                         ,o$$$o.
+-                      ,o$$Y\"""Y$$b
++                      ,o$$Y"\""Y$$b
+     ,o$$$$$$o.       ,$$'   ,   Y$$b
+  ,o$$$$$$$$$$$$o.    :$      b   Y$$.
+ ,$$"'      "Y$$$$o.   'b.   ,b  d$$$
+@@ -11,7 +11,7 @@ $$'  .d$$$$b  '$$$$o   'Y$$$Y  d$$$'
+ $$'  q'    'b  '$$$$$o._   _.o$$$$'
+ .$$,_    _,d$  ,$$$$$$$$$$$$${c2}$$$$Y'
+ ${c1} '$$$$aaa$$$' .$$$$$$${c2}$$$$$$$$'
+-${c1}     \""""     ${c2}d$$$$"'
++${c1}     "\"\""     ${c2}d$$$$"'
+              d$$$'   .d$$b.
+              $$$$  .$"   'a$.
+              $$$$  $b      $$.
+diff --git a/tools/list_distros.py b/tools/list_distros.py
+index d781b581..63fb5288 100755
+--- a/tools/list_distros.py
++++ b/tools/list_distros.py
+@@ -140,7 +140,9 @@ def export_distro(d: AsciiArt) -> str:
+         varname = varname.replace(s, '_')
+ 
+     # Escape/unescape ascii
+-    ascii = d.ascii.replace('"""', '\\"""').replace("\\\\", "\\")
++    ascii = d.ascii.replace("\\\\", "\\")
++    while '"""' in ascii:
++        ascii = ascii.replace('"""', '"\\""')
+ 
+     script = f"""
+ from . import AsciiArt
+-- 
+2.39.1
+
diff --git a/gnu/packages/patches/hyfetch-remove-old-catchy-os-py.patch b/gnu/packages/patches/hyfetch-remove-old-catchy-os-py.patch
new file mode 100644
index 0000000000..253730ce22
--- /dev/null
+++ b/gnu/packages/patches/hyfetch-remove-old-catchy-os-py.patch
@@ -0,0 +1,48 @@
+From be475f02112e75a7ff72a594f75eb63b0a5ac29b Mon Sep 17 00:00:00 2001
+From: Azalea Gui <me@hydev.org>
+Date: Fri, 10 Feb 2023 23:25:16 -0500
+Subject: [PATCH] [-] Remove old catchy_os.py (Fixes #92)
+
+---
+ hyfetch/distros/cachy_os.py | 28 ----------------------------
+ 1 file changed, 28 deletions(-)
+ delete mode 100644 hyfetch/distros/cachy_os.py
+
+diff --git a/hyfetch/distros/cachy_os.py b/hyfetch/distros/cachy_os.py
+deleted file mode 100644
+index 75df6106..00000000
+--- a/hyfetch/distros/cachy_os.py
++++ /dev/null
+@@ -1,28 +0,0 @@
+-
+-from hyfetch.distro import AsciiArt
+-
+-cachy_os = AsciiArt(match=r'''"Cachy OS"*''', color='2 8 6', ascii=r"""
+-${c3}           ${c2}.${c3}-------------------------:
+-${c3}          .${c1}+=${c3}========================.
+-${c3}         :${c1}++${c3}===${c1}++===${c3}===============-       :${c1}++${c3}-
+-${c3}        :${c1}*++${c3}====${c1}+++++==${c3}===========-        .==:
+-${c3}       -${c1}*+++${c3}=====${c1}+***++=${c3}=========:
+-${c3}      =${c1}*++++=${c3}=======------------:
+-${c3}     =${c1}*+++++=${c3}====-                     ${c2}...${c3}
+-${c3}   .${c1}+*+++++${c3}=-===:                    .${c1}=+++=${c3}:
+-${c3}  :${c1}++++${c3}=====-==:                     -***${c1}**${c3}+
+-${c3} :${c1}++=${c3}=======-=.                      .=+**+${c2}.${c3}
+-${c3}.${c1}+${c3}==========-.                          ${c2}.${c3}
+-${c3} :${c1}+++++++${c3}====-                                ${c2}.${c3}--==-${c2}.${c3}
+-${c3}  :${c1}++${c3}==========.                             ${c2}:${c1}+++++++${c3}${c2}:
+-${c3}   .-===========.                            =*****+*+
+-${c3}    .-===========:                           .+*****+:
+-${c3}      -=======${c1}++++${c3}:::::::::::::::::::::::::-:  ${c2}.${c3}---:
+-${c3}       :======${c1}++++${c3}====${c1}+++******************=.
+-${c3}        :=====${c1}+++${c3}==========${c1}++++++++++++++*-
+-${c3}         .====${c1}++${c3}==============${c1}++++++++++*-
+-${c3}          .===${c1}+${c3}==================${c1}+++++++:
+-${c3}           .-=======================${c1}+++:
+-${c3}             ${c2}..........................
+-""")
+-    
+\ No newline at end of file
+-- 
+2.39.1
+
