From 4bb90d0314dbdc45a9b19b71756a47ba4bdae670 Mon Sep 17 00:00:00 2001 From: Luca Junge Date: Tue, 23 May 2023 21:44:30 +0200 Subject: [PATCH] mimetype update --- .eleventy.js | 3 + package-lock.json | 38 ++++++++++ package.json | 1 + src/css/tailwind.css | 14 +++- .../gltf-before.jpg | Bin 0 -> 2425 bytes .../index.md | 68 ++++++++++++++++++ .../output1.png | Bin 0 -> 20895 bytes 7 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 src/posts/adding-custom-icons-for-mime-types-on-linux/gltf-before.jpg create mode 100644 src/posts/adding-custom-icons-for-mime-types-on-linux/index.md create mode 100644 src/posts/adding-custom-icons-for-mime-types-on-linux/output1.png diff --git a/.eleventy.js b/.eleventy.js index d94c1eb..f8f10d7 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -1,6 +1,9 @@ const { DateTime } = require("luxon") +const syntaxHighlight = require("@11ty/eleventy-plugin-syntaxhighlight"); module.exports = function (eleventyConfig) { + eleventyConfig.addPlugin(syntaxHighlight); + //eleventyConfig.addPassthroughCopy("css") eleventyConfig.addPassthroughCopy("src/**/*.png") eleventyConfig.addPassthroughCopy("src/**/*.jpg") diff --git a/package-lock.json b/package-lock.json index bc8fb7c..298ee58 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ }, "devDependencies": { "@11ty/eleventy": "^1.0.2", + "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0", "autoprefixer": "^10.4.13", "npm-run-all": "^4.1.5", "postcss": "^8.4.18", @@ -79,6 +80,19 @@ "url": "https://opencollective.com/11ty" } }, + "node_modules/@11ty/eleventy-plugin-syntaxhighlight": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-syntaxhighlight/-/eleventy-plugin-syntaxhighlight-5.0.0.tgz", + "integrity": "sha512-y9BUmP1GofmbJgxM1+ky/UpFCpD8JSOeLeKItUs0WApgnrHk9haHziW7lS86lbArX5SiCVo4zTTw9x53gvRCaA==", + "dev": true, + "dependencies": { + "prismjs": "^1.29.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, "node_modules/@11ty/eleventy-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.1.tgz", @@ -3339,6 +3353,15 @@ "node": ">=0.10.0" } }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/promise": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", @@ -4793,6 +4816,15 @@ } } }, + "@11ty/eleventy-plugin-syntaxhighlight": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-syntaxhighlight/-/eleventy-plugin-syntaxhighlight-5.0.0.tgz", + "integrity": "sha512-y9BUmP1GofmbJgxM1+ky/UpFCpD8JSOeLeKItUs0WApgnrHk9haHziW7lS86lbArX5SiCVo4zTTw9x53gvRCaA==", + "dev": true, + "requires": { + "prismjs": "^1.29.0" + } + }, "@11ty/eleventy-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.1.tgz", @@ -7198,6 +7230,12 @@ "js-beautify": "^1.6.12" } }, + "prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "dev": true + }, "promise": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", diff --git a/package.json b/package.json index 044845c..388b7cc 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "license": "MIT", "devDependencies": { "@11ty/eleventy": "^1.0.2", + "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0", "autoprefixer": "^10.4.13", "npm-run-all": "^4.1.5", "postcss": "^8.4.18", diff --git a/src/css/tailwind.css b/src/css/tailwind.css index 1dd6f10..8b75876 100644 --- a/src/css/tailwind.css +++ b/src/css/tailwind.css @@ -34,8 +34,20 @@ .post-style blockquote a { @apply ml-1 text-cyan-700; } -/* Model List */ +.post-style img { + @apply mx-auto rounded-lg my-7; +} + +.post-style code:not(pre code) { + @apply mx-0.5 my-2 px-2 py-0.5 bg-gray-900 rounded-lg; +} + +.post-style pre[class^="language-"] { + @apply my-7 p-2 rounded-lg bg-gray-900; +} + +/*** Model List Styles ***/ .model-list-style h1 { @apply mt-6 mb-2 text-4xl font-bold; } diff --git a/src/posts/adding-custom-icons-for-mime-types-on-linux/gltf-before.jpg b/src/posts/adding-custom-icons-for-mime-types-on-linux/gltf-before.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fa6773e9ec4c814b0f7797aefb6f4574f9a03fc2 GIT binary patch literal 2425 zcmb_bc{JPG7XC#HF^i$vAXLzcR=E{gL$xGQQ#6RwbUTQ-Xid3N+E@4N#fEX^&< z0T2iPK)VCj83W7!J}@sYFPLvv@$vET3y44jc12uRSWpBiE-48WheD+e$jeGe!(^b) zgNF~o6ciK{6{TdARg~c>@^D4?9tddnssO)$7z82)mxfBi|F-PB0H6?{7N`Y-lmQ+n z2n+@7yaW{XX!3#f`0fion3qog!UGcAb(={5ATSuj%PS}hf`ETSfOvNOP<{bPsl(Db zID5ze*@MbIpAE{DIdR$j_5)h=ljeV4N9dZG*9?a(${wsini?Y_2LI%<=h^}TF{ zeEhpUs7g1nb%Nwah$>4`6@0fay8|GmLc(aj_2bN7ZB)E*bovu!vqqa*c%9+1FI0UD zNl~iYK+`04Z>r0u&MmA=PZ>=pj7MOr7nt7<&%SAyWTCeB5cGyUBj#a#JvELkk|?lQ zf!-4LvF@1?!u$nR%*A)>9I{vEi_i8?*s!HDb{ILs*&aAiX7U$4b44L>9Be>A;Fxe2&=VzWLh#1(MdtPzp%V) zXm_OFYLh`3!+#Rf^@_2ot~54(WOJO8r*Sd@aM2QkgtgX4)Cx`oapTNSAOowFW`1Z<5 zq-r_-m%i@#pF8w|Tra3y#T#}jz4lFWfdy>}8=~FQ5l-3YSH-2oF1N{-+PZz3p1$*p zd}41q^>$gdN05m}IfljT!6{*L)bTq2DLl79Ju54oqr2(TWDk9=8E$W~2?MvpeH~uO zvn_h~S%>%fC7^G=2;Rp;O-laA(30ZU0OjanVi_gRS$6LLUK2+f?omIA%~QykNORvf zpH_@ZNh&42uU5g}20!Z8()?;Rz`fS@JCjZ{65gEG!Mc`^e5i4HLT-|`*3=y{G}7D} zh6kd!8@4UjY8mXrBCfIU1Hm%OSWO+9m=eP9Et3}H%b>=@3Gz5xHux9ukcZ}tYdBgZ z0zDZfbbLi7HmS#EMprR<(ClKB@tJ`jjne+DTQje$SvAb!{QPvu5R7t=b!Icm#>bdF z7*ta>=$`EKVfjJDb`(lueGz=%(n8=s}DDFK6an} z+C=8F*yJ@HUXa-EMt=*YKKGjZXWPlGxyS|H{2a51+>hS5z8;4L%#D7y?zS!cGZP2?``wH|{4Cv(J!ob0n9ztL%dM7CpR4OnT|JW39Yb%p=;BroxURVd z*J2|Ns4S%RTy1tAIerGFU}p1X6Vs_z?DF(keWrYmNd1?V)rfALPIh-Qq&*(0Cps_wL;QqFhU^x$Uw zbsGiyDqUJbtRuJxdi2n_A!QBZH@Zgb-FUs;)7Sx++7j19w$=A^{O^k=7cY+4XsweX z#j{^&uM$p=A89mvA{Qzn8Z$)E8e{cfJ&qyWkXI;jtszWeZ$9B3yM6wY_FRywMkz>n zcKhZ9g-MCID(5ElkKqcU=8FTJLVTlz9w6UyF~n|2l49*@D$V+S~fdNF0TRd8Qw1x(`LN%Yp0Oyx&LCOzAqN&j~%}cj=j4?!Z7tlM_N? z&d-j37@k4-MP9A750y*MvKMqO=w0th;Ka`!?Prgx)}gN!W!JTe+-rX;vV!t8@KV8& zb!3PEpVG=v0qgjVdo>?a*JL9VFUsUr{mN1`OQvRBcNi(A;juPr+BD7J#Za#WZB|AG z_2pQ0>eJD}qJpx9--BYfg9VRcDqD4ZB;Qls;-}_s^nNDSav|;e4flUq#dk*j1Cd7n Ai~s-t literal 0 HcmV?d00001 diff --git a/src/posts/adding-custom-icons-for-mime-types-on-linux/index.md b/src/posts/adding-custom-icons-for-mime-types-on-linux/index.md new file mode 100644 index 0000000..6cfb73f --- /dev/null +++ b/src/posts/adding-custom-icons-for-mime-types-on-linux/index.md @@ -0,0 +1,68 @@ +--- +title: Adding custom icons for MIME types on linux +sources: + - https://blog.robertelder.org/custom-mime-type-ubuntu/ + - another source +--- + +# The problem + +I frequently work with 3D models in the web and therefore with .gltf or .glb files. These formats are the best choice for compressing and optimizing models for the web but they still seem to lack support in operating systems and their file managers. That is also the case for the preview icons. For example, that's how a .gltf file shows up in my file manager in Fedora 38 (Nautilus): + +![A window of the default file manager in Fedora 38 showing a broken file icon for the file named 'DamagedHelmet.gltf'](./gltf-before.jpg) + +That's a very bad icon for files. It's blurry, shows a warning symbol and does not really represent the file contents. + +I was wondering if it's possible to change icons for specific file types (also called MIME types) and as it turns out, it's possible on Linux! + +## What to do + +First, it's important to make the file extension known to the operating system. You can find existing custom definitions for all users in the `/usr/share/mime/packages` folder: + +![The contents of the /usr/share/mime/packages/ folder, showing multiple files with .xml extension](./output1.png) + +Notice the `gltf.xml` and `glb.xml` files? For every file type you want to add a custom icon to you need to add a corresponding `.xml` file. Let's look at the `glb.xml` file for reference: + +```xml + + + + glTF Binary Format MIME Type + + + +``` + +The important part is the `` and the `` line. Add a new file and change the lines according to your MIME type and file extension and also name the file accordingly. + +### Update the mime database + +The next step is to update the mime database to give your defined MIME types to files ending with .glb or .gltf. +You can do that with: + +```bash +sudo update-mime-database /usr/share/mime +``` + +This will generate a folder with your MIME type xml definition in `/usr/share/mime/`, so for `.glb` and `.gltf` it will create the following files: + +```bash +luca@carbon /usr/share/mime $ tree model +model +├── 3mf.xml +├── gltf-binary.xml +├── gltf+json.xml +└── ... + +1 directory, 4 files +``` + +### Add the icons to your file types + +The final step is getting your .svg icon ready and connect it to your MIME type. Copy your svg icon to `/usr/share/icons/hicolor/scalable/mimetypes/-.svg`. For .glb the mimetype-group would be `model` and the mimetype would be `gltf-binary`, resulting in this line for the whole filepath: + +```bash +/usr/share/icons/hicolor/scalable/mimetypes/model-binary-gltf.svg +``` + +Now you just need to update your icon database with `sudo update-icon-caches /usr/share/icons/*` on Debian/Ubuntu or `sudo gtk-update-icon-cache /usr/share/icons/*` on Fedora. You may need to restart you system to get the icon to show up. \ No newline at end of file diff --git a/src/posts/adding-custom-icons-for-mime-types-on-linux/output1.png b/src/posts/adding-custom-icons-for-mime-types-on-linux/output1.png new file mode 100644 index 0000000000000000000000000000000000000000..bca699609a73b72cb3f36be3aca8304e465658f2 GIT binary patch literal 20895 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