摘要:前言来了做文件管理器项目开发,已经有了个月时间了,学了些许基础知识,这个让我联想到下做应用开发的一些优点和缺点,先暂时做个凌乱的总结,以便后期整理资料。
来了deepin做文件管理器项目开发,已经有了4个月时间了,学了些许linux基础知识,这个让我联想到linux下做应用开发的一些优点和缺点,先暂时做个凌乱的总结,以便后期整理资料。这里的资料整理都基于freedesktop标准协议来进行一些知识点整理(基于deepin linux)。
freedesktop标准
图标主题管理是遵循freedesktop标准来构建的,不同主题的应用图标都放在/user/share/icons目录下,在桌面环境要换一个主题的时候都是在这个目录下对应找到应用图标的。
上图是我的系统里边安装的主题目录,分别有deepin, oxygen, hicolor, flattr...等等。比如deepin主题的应用程序目录就是在/usr/share/icons/deepin/apps。
这个目录里边还有不同尺寸的图标集,供给不同需求来获取图标,尺寸一般会有12,24,48,56,128,256,scalable,不同主题的厂商做的都不尽相同。当然我们读主题的时候还不是直接按着这个目录结构读的,主题根目录统一在/usr/share/icons,然后就是对应这不同的主题的目录下去了,我们是通过度index.theme这个配置文件来找到需要尺寸类型的图标。
index.theme
[Icon Theme] Name=deepin Comment=Default icon theme for deepin Inherits=flattr Example=x-directory-normal Directories=actions/scalable,actions/22,actions/24,apps/48,apps/128,apps/scalable,devices/scalable,devices/48,places/22,places/24,places/32,places/48,places/64,places/128,places/scalable,status/scalable,status/48,mimetypes/22,mimetypes/24,mimetypes/32,mimetypes/48,mimetypes/64,mimetypes/128,mimetypes/scalable [actions/scalable] Size=96 Context=Actions Type=Scalable MinSize=16 MaxSize=96 [actions/22] Size=22 Context=Actions Type=Fixed [actions/24] Size=24 Context=Actions Type=Fixed [apps/48] Size=48 Context=Applications Type=Fixed [apps/128] Size=128 Context=Applications Type=Fixed [apps/scalable] Size=128 Context=Applications Type=Scalable MinSize=16 MaxSize=512 [emblems/12] Size=12 Context=Emblems Type=Fixed [emblems/22] Size=22 Context=Emblems Type=Fixed [emblems/24] Size=24 Context=Emblems Type=Fixed [emblems/32] Size=32 Context=Emblems Type=Fixed [emblems/48] Size=48 Context=Emblems Type=Fixed [emblems/scalable] Size=96 Context=Emblems Type=Scalable MinSize=16 MaxSize=128 [devices/scalable] Size=256 Context=Devices Type=Scalable MinSize=16 MaxSize=256 [devices/48] Size=48 Context=Devices Type=Fixed [emblems/scalable] Size=24 Context=Emblems Type=Fixed [mimetypes/22] Size=22 Context=MimeTypes Type=Fixed [mimetypes/24] Size=24 Context=MimeTypes Type=Fixed [mimetypes/32] Size=32 Context=MimeTypes Type=Fixed [mimetypes/48] Size=48 Context=MimeTypes Type=Fixed [mimetypes/64] Size=64 Context=MimeTypes Type=Fixed [mimetypes/128] Size=128 Context=MimeTypes Type=Fixed [mimetypes/scalable] Size=512 Context=MimeTypes Type=Scalable MinSize=16 MaxSize=512 [places/22] Size=22 Context=Places Type=Fixed [places/24] Size=24 Context=Places Type=Fixed [places/32] Size=32 Context=Places Type=Fixed [places/48] Size=48 Context=Places Type=Fixed [places/64] Size=64 Context=Places Type=Fixed [places/128] Size=128 Context=Places Type=Fixed [places/scalable] Size=256 Context=Places Type=Scalable MinSize=16 MaxSize=256 [status/48] Size=48 Context=Status Type=Fixed [status/scalable] Size=96 Context=Status Type=Scalable MinSize=16 MaxSize=96
desktop文件是一个简单的应用程序配置文本,我们平时可以直接打开二进制文件,同时也可以通过这个配置文件进行打开。这个配置文件的作用是在桌面环境中,直接读这个配置来管理应用,这样就不用直接找二进制文件了。desktop文件在linux下放的目录个人感觉好乱,各大桌面环境或者应用都有自己的套路,并不会严格遵守freedesktop标准。我总结的desktop文件一般就在以下目录中能找到:
/usr/share/applications/
/usr/local/share/applications/
/usr/share/gnome/applications/
~/.local/share/applications
google-drive.desktop
[Desktop Entry] Version=1.0 Type=Application Exec=/usr/bin/dde-file-manager %u Icon=dde-file-manager StartupNotify=true Terminal=false Categories=Utility; OnlyShowIn=Deepin; Actions=new-window; MimeType=inode/directory; Name=Deepin File Manager Name[ar]=مدير الملفات Name[ast]=Xestor de Ficheros Name[bg]=Файлов мениджър Name[bn]=ফাইল ম্যানেজার Name[ca]=Gestor de fitxers Name[cs]=Správce souborů Name[da]=Filhåndtering Name[de]=Dateiverwaltung Name[el]=Διαχειριστής αρχείων Name[en_AU]=Deepin File Manager Name[en_GB]=Deepin File Manager Name[es]=Administrador de archivos Name[et]=Failihaldur Name[eu]=Fitxategi kudeatzailea Name[fi]=Tiedostonhallinta Name[fr]=Gestionnaire de fichiers Name[gl]=Xestor de ficheiros Name[he]=מנהל קבצים Name[hr]=Upravitelj datoteka Name[hu]=Fájlkezelő Name[id]=Manajer Berkas Name[is]=Skráastjóri Name[it]=Gestore dei file Name[ja]=ファイルマネージャー Name[kk]=Файлдар басқарушысы Name[ko]=파일 관리자 Name[lt]=Failų tvarkytuvė Name[lv]=Faila pārvaldnieks Name[ms]=Pengurus Fail Name[nb]=Filbehandler Name[nl]=Bestandbeheerder Name[nn]=Filhandsamar Name[oc]=Gestionari de fichièrs Name[pa]=ਫਾਇਲ ਮੈਨੇਜਰ Name[pl]=Menedżer plików Name[pt]=Gestor de ficheiros Name[pt_BR]=Gerenciador de arquivos Name[ro]=Manager de fișiere Name[ru]=Файловый менеджер Name[sk]=Správca súborov Name[sl]=Upravljalnik datotek Name[sr]=Управник датотека Name[sv]=Filhanterare Name[te]=దస్త్ర నిర్వాహకం Name[th]=โปรแกรมจัดการแฟ้ม Name[tr]=Dosya Yöneticisi Name[ug]=ھۆججەت باشقۇرغۇ Name[uk]=Файловий менеджер Name[vi]=Trình quản lý tệp tin Name[zh_CN]=深度文件管理器 Name[zh_HK]=深度檔案管理員 Name[zh_TW]=深度檔案管理員 Comment=Browse the file system Comment[ar]=تصفح ملف النظام Comment[ast]=Restola pel sistema de ficheros Comment[bg]=Преглед на файловата система Comment[bn]=ফাইল সিস্টেম ব্রাউজ করুন Comment[ca]=Navega el sistema de fitxers Comment[cs]=Procházet systém souborů Comment[da]=Gennemse filsystemet Comment[de]=Das Dateisystem durchsuchen, um einen eigenen Befehl zu wählen Comment[el]=Περιηγηθείτε στο αρχείο συστήματος Comment[en_AU]=Browse the file system Comment[en_GB]=Browse the file system Comment[es]=Navegar por el sistema de archivos Comment[et]=Sirvi failisüsteemi Comment[eu]=Arakatu fitxategi sistema Comment[fi]=Selaa tiedostojärjestelmää Comment[fr]=Parcourir le système de fichiers Comment[gl]=Examinar o sistema de ficheiros Comment[he]=עיון במערכת הקבצים Comment[hr]=Pregledaj datotečni sustav Comment[hu]=Fájlrendszer tallózása Comment[id]=Ramban sistem berkas Comment[is]=Flakka í skráakerfinu Comment[it]=Sfoglia il file system Comment[ja]=ファイルシステムを参照します Comment[kk]=Файлдық жүйені шолу Comment[ko]=파일 시스템 탐색 Comment[lt]=Naršyti failų sistemą Comment[ms]=Layar sistem fail Comment[nb]=Bla gjennom filsystemet Comment[nl]=Blader door het bestandssysteem Comment[nn]=Bla gjennom filsystemet Comment[oc]=Percórrer lo sistèma de fichièrs Comment[pa]=ਫਾਇਲ ਸਿਸਟਮ ਬਰਾਊਜ਼ਰ ਕਰੋ Comment[pl]=Przegląda system plików i zarządza jego zawartością Comment[pt]=Explorar sistema de ficheiros Comment[pt_BR]=Navegar pelo sistema de arquivos Comment[ro]=Gestionați fișierele din sistem Comment[ru]=Просмотреть файловую систему Comment[sk]=Prehliadať systém súborov Comment[sl]=Brskajte po datotečnem sistemu Comment[sr]=Разгледајте систем датотека Comment[sv]=Bläddra i filsystemet Comment[te]=దస్త్ర వ్యవస్థను విహరించు Comment[th]=ท่องดูระบบแฟ้ม Comment[tr]=Dosya sistemini tara. Comment[ug]=ھۆججەت سىستېمىسىنى كۆرىدۇ Comment[uk]=Оглянути файлову систему Comment[vi]=Duyệt hệ thống tệp tin Comment[zh_CN]=浏览文件系统 Comment[zh_HK]=瀏覽檔案系統 Comment[zh_TW]=瀏覽檔案系統 [Desktop Action new-window] Name=New Window Name[bg]=Нов прозорец Name[ca]=Finestra nova Name[cs]=Nové okno Name[da]=Nyt vindue Name[de]=Neues Fenster Name[el]=Νέο παράθυρο Name[es]=Ventana nueva Name[eu]=Leiho berria Name[fa]=پنجره نو Name[fi]=Uusi ikkuna Name[fr]=Nouvelle fenêtre Name[fur]=Gnûf barcon Name[gd]=Uinneag ùr Name[gl]=Nova xanela Name[he]=חלון חדש Name[hu]=Új ablak Name[it]=Nuova finestra Name[ja]=新しいウィンドウ Name[kk]=Жаңа терезе Name[ko]=새 창 Name[lt]=Naujas langas Name[lv]=Jauns logs Name[nb]=Nytt vindu Name[nl]=Nieuw venster Name[oc]=Fenèstra novèla Name[pl]=Nowe okno Name[pt]=Nova janela Name[pt_BR]=Nova janela Name[ru]=Создать окно Name[sk]=Nové okno Name[sr]=Нови прозор Name[sr@latin]=Novi prozor Name[sv]=Nytt fönster Name[th]=หน้าต่างใหม่ Name[tr]=Yeni Pencere Name[uk]=Нове вікно Name[zh_CN]=新建窗口 Name[zh_TW]=新增視窗 Exec=dde-file-manager --new-window
[Desktop Entry]
Version 应用版本
Type 类型(一般为Application)
Exec 执行命令(shell 会执行的命令)
Icon 应用图标(一般为主题应用名字,绝对路径)
MimeType 支持打开文件的格式
Actions 右键菜单显示项
看到上面的文件内容例子,我们发现desktop文件可以很灵活做应用信息采集处理,甚至做应用程序的国际化显示
linux下做默认启动程序也是很奇葩的,不同发行版本都md有他们的自己套路,搞到做文件管理器时候,要做各种兼容性问题。绝大大部分默认启动程序的配置文件:
/.config/mimeapps.list /.local/share/applications/mimeapps.list /.local/share/applications/defaults.list /.local/share/applications/mimeinfo.cache /usr/local/share/applications/mimeapps.list /usr/local/share/applications/defaults.list /usr/local/share/applications/mimeinfo.cache /usr/share/applications/mimeapps.list /usr/share/applications/defaults.list /usr/share/applications/mimeinfo.cache
鸭个蛋蛋,就是这么奇葩,做linux默认程序兼容就是作死。当然这是没办法,谁叫我是做linux开发的,先啃一波了呵呵。下面是一个默认程序的配置内容
..list ...cache
[Default Applications] applicationoctet-stream=FoxitReader.desktop applicationpdf=FoxitReader.desktop applicationppdf=FoxitReader.desktop texthtml=google-chrome.desktop textplain=/usr/share/applications/sublime_text.desktop x-scheme-handlerabout=google-chrome.desktop x-scheme-handlerhttp=google-chrome.desktop x-scheme-handlerhttps=google-chrome.desktop x-scheme-handlerunknown=google-chrome.desktop application/pdf=FoxitReader.desktop application/ppdf=FoxitReader.desktop application/octet-stream=FoxitReader.desktop
有了这些基础概念我们就可以在linux下做简单的桌面系统开发了,比如启动器,桌面,文件管理器,docker栏等等,当然真正做开发的时候,天天踩新坑是必然事情,只能慢慢磨合着做了。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/9724.html
摘要:视觉组接触的软件进行视觉开发会用到各种各样的软件开发环境辅助工具等,所以很有必要了解一些相关的快捷键命令使用技巧。没有这样保姆级的,并不存在一款能够自动为你生成的软件。一款录制屏幕的软件。 --NeoZng【neozng1@hnu.edu.cn】 3.视觉组接触的软件 进行视觉开发会用到...
摘要:在的世界里,中文并不是必须的,英文是必须的,但是只要你愿意,还是有办法让支持中文的显示与输入的,而且搞定这个问题,意味着你对的认识程度已经超过了很多其他发行版的用户。 跳进 Linux 的唯一理由 既然知道 Linux 在这个世界已经存在了,而你又是个挺喜欢摆弄计算机的人,那么对 Linux 是怎样的一种存在难道不感到好奇么? 也许在你开始尝试使用 Linux 时,已经看到了很多对 L...
摘要:在的世界里,中文并不是必须的,英文是必须的,但是只要你愿意,还是有办法让支持中文的显示与输入的,而且搞定这个问题,意味着你对的认识程度已经超过了很多其他发行版的用户。 跳进 Linux 的唯一理由 既然知道 Linux 在这个世界已经存在了,而你又是个挺喜欢摆弄计算机的人,那么对 Linux 是怎样的一种存在难道不感到好奇么? 也许在你开始尝试使用 Linux 时,已经看到了很多对 L...
摘要:这一课我们来学探索之旅第三部分第一课数据处理,慢条斯理掘金作者谢恩铭转载请注明出处内容简介第三部分第一课数据处理,慢条斯理第三部分第二课预告流管道重定向,三管齐下数据处理,慢条斯理哈哈,终于到了第三部分了。 Linux 基础之常用命令篇 - 后端 - 掘金最近一段时间工作实在是太忙了,所以好久没有写文章了,趁着周末把linux 的相关知识,整理了下。这一篇文件主要记录了一些linux的...
摘要:一下,原文开始学习的一些建议建议读者范围有开发经验者。关于英文全是英文大家在和里面都说英文跟国外高手切磋得用英文。压根躲不过去,所以必须得用英文。不会英文不会学不好。,与的新星以一定会在未来大放异彩。 Mark一下,原文:开始学习Linux的一些建议 建议读者范围 有开发经验者。 科研人员(由其Numrical)。 动手能力强的。 只是好奇,对于Linux只是浅尝辄止的就不建议继...
阅读 2937·2021-09-30 09:48
阅读 3179·2021-09-22 16:00
阅读 900·2019-08-30 13:08
阅读 2884·2019-08-30 10:53
阅读 2301·2019-08-29 18:33
阅读 1445·2019-08-29 12:47
阅读 758·2019-08-29 12:16
阅读 1809·2019-08-26 12:02