Run all platform windows linux mac os x unix ios android

Мультизагрузка Windows, Linux и Mac OS X Сайт недорого! Контент-маркетинг Реклама в Интернет Двойная загрузка Ubuntu и Windows 8 Как сделать двойную

Содержание

  1. Мультизагрузка Windows, Linux и Mac OS X
  2. Подготовка диска
  3. Установка Windows, Linux и Mac OS X
  4. Примечание 1, GPT и GRUB EFI
  5. Примечание 2, BSD загрузчик ядра XNU
  6. Является ли macOS UNIX? (И что это значит?)
  7. macOS: UNIX или нет?
  8. Распространение Unixes
  9. Следующий шаг
  10. Стандарты POSIX и SUS
  11. Итак, MacOS UNIX?

Мультизагрузка Windows, Linux и Mac OS X

Сайт недорого!
Контент-маркетинг
Реклама в Интернет
Двойная загрузка Ubuntu и Windows 8
Как сделать двойную загрузку Ubuntu 14.04 и Windows 8 .
Установка программ на Андроид
Установка новых программ на Андроид вполне проста. Есть два способа .
Как раздать Интернет по WiFi на Windows 7
. инструкция как раздать WiFi с Windows 7 .
Точка доступа WiFi на Андроид
. инструкция как раздать WiFi с Андроида .
Точка доступа WiFi на Windows 8.1
. инструкция как раздать WiFi с Windows 8.1 .
USB модем Билайн, Мегафон, МТС
не работает, не подключается — что делать?
Раздача интернета по сети
Как расшарить интернет по сети Linux и Windows.
Точка доступа на Ubuntu 12.04
. Создание WiFi точки доступа на Ubuntu 12.04.
Настроить WiFi на Windows 7
. в этой статье будет описан процесс настройки шаг за шагом с иллюстрациями.
DSL, FTTx — настройка интернета МТС, Ростелеком
Настройка pppoe соединения в Windows 7.
Инструкция по Андроид
. Обзор и описание графического интерфейса Андроид (Android).
Как расшарить файлы и папки Linux
. сетевой доступ без пароля на Linux.
Настройка Ubuntu 14.04
. скорость и удобство работы Ubuntu 14.04 .
Как выбрать SSD?
. характеристики SSD . функции SSD.
Как выбрать монитор?
. характеристики монитора . функции монитора.
Как выбрать планшет?
. характеристики планшета . функции планшета.
Как выбрать фотоаппарат
. будет описано устройство фотоаппарата . перечислены виды фотоаппаратов.
Установка Windows 7 c USB-флешки
Используя USB Flash можно установить Windows 7.
Установка Ubuntu 12.04 LTS .
простая инструкция как установить Linux Ubuntu 12.04 поверх Windows 7 .
Установка Windows XP/7 на нетбук
Сложность установки Windows XP на нетбуки заключается в том, что эти компьютеры не имеют CD-DVD приводов .
Загрузочная установочная USB-флешка Windows 7 или 8
. Как сделать установочную USB-Flash Windows 7 или 8.
Как записывать диски .
. Теория и практика записи CD и DVD дисков .
Как записать MP3 .
Запись диска с mp3 треками, который может быть прочитан в бытовых mp3 плеерах .
Флешка CD-ROM
как создать USB CD-ROM из флеш-диска Apacer .
Записываемые CD и DVD диски .
На сегодняшний день (начало 2005 года) существует три базовых типа (формата) записываемых дисков DVD .

После перехода компании Apple на платформу Intel возник соблазн установить на один и тот же компьютер сразу три ОС — Windows, Linux и Mac OS X. Распространено мнение о том, что Mac OS X не уживается с другими ОС. Однако это не так. Можно без проблем установить все эти три ОС на один жесткий диск. Как это сделать и будет описано в этой статье.

Подготовка диска

Первое что необходимо сделать это создать на жестком диске необходимое количество разделов под эти ОС. По минимуму потребуется 4 раздела — 1 для Windows, 1 для Mac OS X и 2 для Linux. Два для Linux, потому, что в отличии от Windows и Mac OS X Linux для swap использует отдельный раздел. При этом важно, чтобы разделы на диске были в формате MBR (еще этот формат называют DOS).

Какой программой создавать разделы это дело вкуса, на мой взгляд наиболее удобно использовать Live дистрибутив Ubuntu Linux и программу Gparted.

Относительно структуры разделов. Нужно будет как минимум два первичных раздела — для Mac OS X и Windows. При этом раздел для Mac OS X нужно будет создать обязательно с файловой системой FAT32. Linux можно устанавливать на логические разделы в расширенном разделе. То есть конфигурация диска например может быть такой:

  • Первичный раздел 1 — файловая система NTFS. Раздел для установки MS Windows.
  • Первичный раздел 2 — файловая система FAT32. Раздел для установки Mac OS X.
  • Расширенный раздел, логичекий раздел 1 — файловая система linux swap. Раздел для установки GNU/Linux.
  • Расширенный раздел, логичекий раздел 2 — файловая система linux ext3. Раздел для установки GNU/Linux.

Кроме этих четырех разделов можно создать еще общий для всех ОС раздел для размещения общих файлов. Однако при выборе файловой системы для такого раздела, нужно знать о том, что:

  • Mac OS X — умеет читать и записывать на файловую систему FAT32, не умеет записывать на файловую систему NTFS и не умеет читать систему Ext.
  • Linux — умеет читать и записывать на файловые системы FAT32, NTFS, но не умеет записывать на файловую систему HFS+ journaled.
  • Windows — умеет читать и записывать только файловые системы FAT32, NTFS.

То есть общий файловый раздел должен иметь файловую систему FAT32. Относительно размеров разделов. По минимуму раздел для каждой ОС я бы рекомендовал не менее 10 Гб. Но если диск достаточно большой, то лучше по 15-20 Гб. Размер раздела linux swap нужно определять немного больше чем размер оперативной памяти, это связано с тем, что при выключении в режиме hibernate Linux записывает образ оперативной памяти на swap раздел.

Установка Windows, Linux и Mac OS X

После разбиения диска на разделы можно начинать установку. Первыми нужно устанавливать Windows и Mac OS X, какую именно из них первой, а какую второй безразлично. Нужно только знать, что после установки второй из этой пары, загрузка с первой станет временно невозможной, но это исправляется после установки Ubuntu Linux.

Важное примечание по установке Mac OS X. После того, как загрузится установщик Mac OS X, нужно будет запустить программу «Дисковая утилита», затем, в этой программе, переформатировать первичный раздел FAT32 в файловую систему HFS+ journaled. После этого закрыть программу «Дисковая утилита» и в установщике выбрать этот раздел HFS+ journaled для установки.

Последней устанавливается Ubuntu Linux (конечно это может быть и другой дистрибутив GNU/Linux). Желательно подобрать свежий дистрибутив который использует загрузчик Grub 2. После установки Ubuntu Linux и загрузчика Grub2 в стартовом загрузочном меню будут строки для запуска всех трех ОС. Но если, произойдет сбой и в меню Grub не будет Mac OS X или Windows тогда нужно будет загрузиться в Ubuntu Linux, там открыть терминал и выполнить команду update-grub.

Теоретические вопросы создания мультизагрузочных систем описаны в статье Мультизагрузка (multiboot system)

Примечание 1, GPT и GRUB EFI

Если Mac OS X устанавливается по умолчанию, то установщик делает разбивку диска в формате GPT. В такой ситуации для обеспечения мультизагрузки все равно можно использовать загрузчик Grub 2. Но нужно будет сделать дополнительный раздел с файловой системой FAT32 и затем при установке Ubuntu указать этот раздел как /boot, а в опциях установки Grub указать тип загрузчика EFI.

Примечание 2, BSD загрузчик ядра XNU

Загрузка ядра Mac OS X XNU возможна как напрямую через Grub, так и с использованием 3-х ступенчатого BSD загрузчика (при использовании разметки диска в формате MBR). Частный случай такого BSD загрузчика это известный загрузчик Chameleon — специально модифицированный для загрузки ядра XNU на не Apple компьютерах. В случае использования такого BSD загрузчика в меню Grub добавляется chainloader на boot сектор того раздела на котором установлена Mac OS X. То есть Grub запускает вторую ступень BSD загрузчика, она запускает третью ступень, а та запускает ядро XNU.

Источник

Является ли macOS UNIX? (И что это значит?)

Является ли macOS UNIX или просто Unix? Или это Unix-подобный? Мы отвечаем на бесконечные дебаты и объясняем такие стандарты, как POSIX и SUS.

macOS: UNIX или нет?

Эта тема поднимает кучу разных вопросов. Какова родословная macOS? Сколько из этого наследственного материала все еще присутствует в современных macOS, и имеет ли это значение? Прежде чем мы сможем ответить, является ли что-то UNIX, Unix или Unix-подобным, нам нужно понять, что означают эти термины. Кто решает, является ли что-то Unix или UNIX, и какие критерии они используют?

Давайте начнем с самого начала.

Unix был создан пятьдесят лет назад в Bell Labs , научно-исследовательской компании AT & T. Перенесемся в 1973 г. и в версию 4 Unix, которая была переписана на языке программирования C. Это сделало операционную систему намного более переносимой и более легкой для переноса на другие аппаратные платформы. В том же году Кен Томпсон и Деннис Ритчи , два основных архитектора Unix, представили на конференции доклад об операционных системах. Сразу же они получили запросы на копии операционной системы.

Связанный указом о согласии от 1956 года, AT & T должен был отказаться от «любого бизнеса, кроме предоставления услуг связи обычных операторов связи». Unix не квалифицировался как нечто, от чего AT & T могла бы извлечь выгоду. Итак, компания сделала что-то примечательное для того времени: распространил Unix в качестве исходного кода с либеральной лицензией. Небольшие сборы покрывали доставку и упаковку, а также «разумный гонорар».

Распространение Unixes

Поскольку Unix был предоставлен «как есть», он пришел без поддержки. В результате сообщество Unix начало объединяться, чтобы помогать участникам, а также исправлять и расширять Unix. Таким образом, вы можете получить исходный код, изменить его и получить поддержку от сообщества. Это знакомое кольцо. Различные разновидности Unix начали появляться, адаптироваться и настраиваться в соответствии с организацией, выполняющей работу.

Боб Фабри , профессор компьютерных наук в Калифорнийском университете в Беркли, был в программном комитете симпозиума по принципам операционных систем 1973 года. Он слушал презентацию Томпсона и Ричи, озаглавленную «Система разделения времени UNIX» .

Фабри запросил копию операционной системы, и в 1974 году Unix был установлен на PDP / 11 в Исследовательской группе по компьютерным наукам (CSRG) в Калифорнийском университете в Беркли. Примечательно, что Кен Томпсон провел там год, работая над тем, что быстро стало собственной разновидностью Unix в университете. Копии изменений и дополнений UC Berkeley были распространены и стали называться Berkeley Software Distribution (BSD). В конце концов, они стали дистрибутивами всей системы Unix, все еще известной как BSD. Номера версий, такие как 4.2BSD, идентифицировали разные версии.

В 1984 году AT & T была освобождена от строгих условий соглашения о согласии 1956 года и способна правильно продавать свою операционную систему. Он включает в себя код BSD, такой как TCP / IP , vi и оболочку C, csh . Даже при таком перекрестном опылении и сотрудничестве возникли трудности с лицензированием. BSD содержал код AT & T, который не был открытым исходным кодом, но элементы BSD были.

Версия BSD без кода AT & T была разработана, чтобы обойти эти проблемы. Однако когда код AT & T был удален, около 20 процентов ядра отсутствовало. Уильям Джолиц написал недостающие части, и эта версия Unix была выпущена как 386BSD . Проект 386BSD застопорился, но в 1993 году его база исходного кода породила проекты NetBSD и FreeBSD .

Это дало нам один кусок головоломки: FreeBSD.

Следующий шаг

После того, как он был уволен из Apple, Inc. в 1985 году, Стив Джобс основал компанию NeXT, Inc. Чтобы предоставить операционную систему для своей линейки продуктов для рабочих станций, NeXT разработал NeXTSTEP . Он использовал BSD в качестве кодовой базы, но представил совершенно другое ядро.

NeXT использовал модифицированную версию микроядра Mach и 4.3BSD для формирования NeXTSTEP, который является второй частью этой головоломки. Mach был разработан в Carnegie Mellon для облегчения исследований в области распределенных и параллельных вычислений. Исследовательская группа использовала BSD в качестве операционной системы и заменила ядро, а не написала свою собственную операционную систему.

В 1996 году Apple Inc. приобрела NeXT, Inc. и тем самым приобрела NeXTSTEP. Apple начала разрабатывать операционную систему, которая в конечном итоге стала macOS с помощью Mac OS X. Он обновил ядро ​​Mach и заменил его более продвинутой версией, разработанной и использованной Open Software Foundation в операционной системе OSF / 1 . Apple также обновила компоненты BSD обновленными и улучшенными версиями из дистрибутива FreeBSD.

Apple вернула элементы ядра BSD обратно в ядро ​​Mach. Он также разработал гибридное ядро, которое объединило характеристики как монолитной, так и микроядерной архитектуры.

Также был включен комплект ввода / вывода , разработанный Apple на основе DriverXit NeXTSTEP. Это позволило добавлять драйверы в ядро ​​без необходимости каждый раз изменять его.

XNU — третья часть головоломки.

Стандарты POSIX и SUS

В 1996 году два органа по стандартизации — X / Open и Open Software Foundation — объединились, чтобы сформировать The Open Group .

Open Group является органом по сертификации торговой марки UNIX. Другими словами, перед тем, как вы сможете назвать ее UNIX, она должна проштамповать вашу операционную систему как соответствующую ее стандартам. UNIX во всех заглавных буквах является знаком соответствия.

Итак, категории следующие:

  • Unix: семейство операционных систем. Это семейство включает как операционные системы UNIX, так и Unix-подобные операционные системы.
  • Операционные системыUNIX : они были сертифицированы как соответствующие стандартам.
  • Unix-подобныеоперационные системы : они выглядят и работают как Unix, но не были сертифицированы как совместимые.

Конечно, вполне возможно, что некоторые операционные системы в категории «Unix-like» могут быть протестированы завтра и признаны совместимыми. Сейчас это, по сути, UNIX, но их можно отнести только к категории Unix, потому что у них еще нет штампов.

Есть два стандарта, которые сертифицируют UNIX: POSIX и Single UNIX Specification (SUS) . SUS — это расширенный набор POSIX. Итак, что-то может быть POSIX-совместимым, но это не делает его UNIX. Однако, если что-то совместимо с SUS, это UNIX.

POSIX и SUS образуют большие коллекции документов (около 3700 страниц). Они определяют работу и ожидаемое поведение каждого аспекта совместимой системы UNIX. Все, от асинхронного и синхронного ввода-вывода до интерфейса сценариев и программ уровня пользователя, каталогизируется и определяется.

Стандарты определяют интерфейсы приложений и поведение во время выполнения, но не определяют, как они реализованы .

Итак, MacOS UNIX?

Ответ должен быть да.

Вы можете проследить его происхождение через FreeBSD до BSD, а оттуда — до Unix, распространяемого Bell Labs, до увеличения платы за лицензию от AT & T.

Но это не имеет значения.

Если вы пишете операционную систему с нуля прямо сейчас, если она удовлетворяет требованиям SUS, она считается UNIX. И не важно, как вы это реализуете. Ядро XNU в основе macOS представляет собой гибридную архитектуру. Он объединяет код Apple с частями ядер Mach и BSD.

Но это тоже не важно. Важно то, что он соответствует требованиям стандартов, по которым он измеряется.

Часть BSD ядра XNU предоставляет интерфейсы прикладного программирования POSIX (такие как различные системные вызовы API и BSD). Сохранение этого элемента ядра BSD без изменений в XNU является ключом к получению сертификации в качестве UNIX. Это позволяет XNU говорить о совместимости и совместимости UNIX с остальной частью системы.

macOS — это совместимая с UNIX 03 операционная система, сертифицированная The Open Group. Это было с 2007 года, начиная с MAC OS X 10.5. Единственным исключением был Mac OS X 10.7 Lion, но соответствие было восстановлено с OS X 10.8 Mountain Lion.

Забавно, но так же, как GNU означает «GNU — не Unix», XNU — «X не Unix ».

Источник

If there’s some cross-platform C/C++ code that should be compiled on Mac OS X, iOS, Linux, Windows, how can I detect them reliably during preprocessor process?

Brian Tompsett - 汤莱恩's user avatar

asked May 7, 2011 at 8:37

eonil's user avatar

0

There are predefined macros that are used by most compilers, you can find the list here. GCC compiler predefined macros can be found here.
Here is an example for gcc:

#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
   //define something for Windows (32-bit and 64-bit, this part is common)
   #ifdef _WIN64
      //define something for Windows (64-bit only)
   #else
      //define something for Windows (32-bit only)
   #endif
#elif __APPLE__
    #include <TargetConditionals.h>
    #if TARGET_IPHONE_SIMULATOR
         // iOS, tvOS, or watchOS Simulator
    #elif TARGET_OS_MACCATALYST
         // Mac's Catalyst (ports iOS API into Mac, like UIKit).
    #elif TARGET_OS_IPHONE
        // iOS, tvOS, or watchOS device
    #elif TARGET_OS_MAC
        // Other kinds of Apple platforms
    #else
    #   error "Unknown Apple platform"
    #endif
#elif __ANDROID__
    // Below __linux__ check should be enough to handle Android,
    // but something may be unique to Android.
#elif __linux__
    // linux
#elif __unix__ // all unices not caught above
    // Unix
#elif defined(_POSIX_VERSION)
    // POSIX
#else
#   error "Unknown compiler"
#endif

The defined macros depend on the compiler that you are going to use.

The _WIN64 #ifdef can be nested into the _WIN32 #ifdef because _WIN32 is even defined when targeting the Windows x64 version. This prevents code duplication if some header includes are common to both
(also WIN32 without underscore allows IDE to highlight the right partition of code).

Top-Master's user avatar

Top-Master

6,6515 gold badges33 silver badges59 bronze badges

answered May 7, 2011 at 8:43

Evgeny Gavrin's user avatar

Evgeny GavrinEvgeny Gavrin

7,5171 gold badge22 silver badges27 bronze badges

6

As Jake points out, TARGET_IPHONE_SIMULATOR is a subset of TARGET_OS_IPHONE.

Also, TARGET_OS_IPHONE is a subset of TARGET_OS_MAC.

So a better approach might be:

#ifdef _WIN64
   //define something for Windows (64-bit)
#elif _WIN32
   //define something for Windows (32-bit)
#elif __APPLE__
    #include "TargetConditionals.h"
    #if TARGET_OS_IPHONE && TARGET_OS_SIMULATOR
        // define something for simulator
        // (although, checking for TARGET_OS_IPHONE should not be required).
    #elif TARGET_OS_IPHONE && TARGET_OS_MACCATALYST
        // define something for Mac's Catalyst
    #elif TARGET_OS_IPHONE
        // define something for iphone  
    #else
        #define TARGET_OS_OSX 1
        // define something for OSX
    #endif
#elif __linux
    // linux
#elif __unix // all unices not caught above
    // Unix
#elif __posix
    // POSIX
#endif

Note that above checks TARGET_OS_SIMULATOR macro because TARGET_IPHONE_SIMULATOR macro got deprecated since iOS 14.

Top-Master's user avatar

Top-Master

6,6515 gold badges33 silver badges59 bronze badges

answered Sep 10, 2013 at 21:50

PatchyFog's user avatar

PatchyFogPatchyFog

1,53316 silver badges17 bronze badges

4

5 Jan 2021: link update thanks to @Sadap’s comment.

Kind of a corollary answer: the people on this site have taken the time to make tables of macros defined for every OS/compiler pair.

For example, you can see that _WIN32 is NOT defined on Windows with Cygwin (POSIX), while it IS defined for compilation on Windows, Cygwin (non-POSIX), and MinGW with every available compiler (Clang, GNU, Intel, etc.).

Anyway, I found the tables quite informative and thought I’d share here.

answered Sep 12, 2017 at 13:21

houtanb's user avatar

houtanbhoutanb

3,78220 silver badges21 bronze badges

2

How to install VLC Media Player on a computer

April 15, 2019

This tutorial teaches you how to install the free VLC media player on your computer or smartphone. VLC is available for Windows, Mac, iPhone, and Android platforms.

VLC is a free and open source cross-platform multimedia player and framework that plays most multimedia files as well as DVDs, Audio CDs, VCDs, and various streaming protocols. Why should you choose VLC player?

  • Plays everything — Files, Discs, Webcams, Devices and Streams. 

  • Plays most codecs with no codec packs needed — MPEG-2, MPEG-4, H.264, MKV, WebM, WMV, MP3es, WAV

  • Runs on all platforms — Windows, Linux, Mac OS X, Unix, iOS, Android 

  • Completely Free — no spyware, no ads and no user tracking.

Windows PCs

Open the VLC website. Type in your computer’s web browser or click above for direct access.

Click Download VLC. It’s an orange button on the right side of the page.

Select a download location if prompted. Doing so will allow the VLC setup file to download onto your computer. 

The VLC file will download automatically, so if you aren’t prompted for a download location, skip this step.

Click Yes when prompted. Doing so opens the installation window.

Select a language. When asked, click the language drop-down box and select the language you want to use for VLC Media Player, then click OK to proceed. 

Click Next three times. This will take you to the installation page.

Click Install. It’s at the bottom of the page. Doing so installs VLC Media Player on your computer.

Run VLC Media Player. Immediately after installing VLC, you can run it by making sure the «Run VLC media player» box is checked and clicking Finish.When you want to run VLC in the future, you’ll double-click the VLC app icon on your desktop or select it from Start.

mac OS

Open the VLC website. Type in your computer’s web browser or click above for direct access.

Click Download VLC. It’s an orange button on the right side of the page.

Select a download location if prompted. Doing so will allow the VLC setup file to download onto your computer. 

The VLC file will download automatically, so if you aren’t prompted for a download location, skip this step.

 Open the downloaded DMG file. Go to the folder into which your browser downloads files, then double-click the VLC DMG file. This will open the installation window.

Click and drag the VLC app icon onto the «Applications» folder. The «Applications» folder is on the right side of the window, while the traffic cone-shaped VLC app icon is on the left. 

Doing so will install VLC on your computer.

Run VLC. The first time you open VLC after installing it, do the following: 

Double-click the VLC app icon in the Applications folder. 

Wait for your Mac to verify VLC. 

Click Open when prompted.

Android

Open your Android’s Google Play Store. Tap the Google Play Store app icon, which resembles a multi-colored triangle on a white background.

Tap the search bar. It’s at the top of the screen. Your Android’s on-screen keyboard will appear.

Open the VLC page. Type in vlc, then tap VLC for Android in the resulting drop-down menu. 

Tap INSTALL. This is on the right side of the page. Doing so prompts VLC to begin installing onto your Android.If prompted, tap ALLOW after tapping INSTALL to confirm the download. 

You can open VLC directly from within the Play Store by tapping OPEN when VLC finishes installing.

Всего сколько лет назад о кроссплатформенном ПО большинство разработчиков не задумывалось вовсе, а те кто сталкивался с подобной задачей в основном занимались разработкой решений которые работали на Windows и UNIX. Это были (и есть) крупные серверные системы, системные библиотеки, редакторы, и прочее узкоспециализированное ПО.

Но, все течет, все меняется, Windows и Linux (с Гномом или КДЕ) уже не единственные платформы с которыми работает “обычный пользователь”. В последнее время появилось большое количество платформ для обычного пользователя и это никак нельзя игнорировать.

К сожалению, даже сейчас, большая удача если ПО работает на чем-то кроме Windows. А уж если такое приложение еще и выглядит прилично… Но это уже совсем редкость.

Собственно, к чему я все это пишу. Меня всегда интересовало кроссплатформенное ПО, но, обычно, это было серверное ПО не обладавшее вообще никаким GUI. А тут меня озадачил вопрос, как написать приложение для конечного пользователя которое можно при минимальном количестве усилий заставить работать на как можно большем количестве платформ. При этом, приложение везде должно выглядеть “как родное”. Да, говоря о приложении для конечного пользователя, я имею ввиду не очень сложное приложении типа графического просмотрщика, планировщика задач и т.п. Приложение обладающее относительно не сложной бизнес логикой, в тоже время не являющиеся приложением класса свистелко-перделка у которого есть только GUI.

Исходя из сказанного ранее, я думаю что список поддерживаемых платформ можно ограничить следующими ОС: Windows, Linux, Mac OS X, iOS, Android, Symbian^3 и Windows Phone 7. А в качестве языков для разработки приложений C++, Java, Objective-C, C#.

Как известно, при наличии желания обеспечить поддержку большого количества платформ, необходимо довольно тщательно подходить к вопросу построения архитектуры приложения. Как минимум стоит продумать разбиение приложения по слоям GUI, бизнес логики и, при необходимости, базы данных.

Если внимательно посмотреть на список платформ, то сразу становится очевидно то, что, как минимум, общего GUI создать не удастся, хотя, это не такая уж большая проблема. Для начала я подготовил небольшой, и совершенно не претендующий на “единственный и окончательный” список библиотек, поддерживаемых каждой из платформ. В список я старался включать наиболее распространенные, либо переносимые библиотеки (именно поэтому в нем нет WTL и других похожих решений).

Windows. Наверное, это наиболее богатая в плане выбора доступных библиотек платформа. GUI для Windows приложений отлично разрабатываются с использованием C++ (Qt), Java, C#. В принципе, можно использовать даже Objective-C из состава GCC в связке с GNUStep, разве что перед тем как на это решиться, я бы очень советовал посмотреть на вот этот скриншот.

Linux. Как ни странно, но тут практически нет никаких отличий от Windows, разве что Mono поддерживает C# версий 1.0, 2.0 и 3.0, версия языка 4.0 в разработке.

Mac OS X. Выбор доступных библиотек для Мака существенно более ограниченный. Полагаю, это вызвано тем, что основная масса пользователей не любит отличный от Cocoa интерфейс и как следствие все стараются выпустить приложения с “родным” внешним видом. Недавно (Mac OS X 10.6.3), руку к этому приложила и компания Apple объявив Java “устаревшей”. Написанные на Java приложения и раньше отличались некой внешней убогостью и неповоротливостью (Stanza, Code Collaborator), но поддержка со стороны Apple гарантировала стабильность платформы. Теперь этого нет и использование Java уже не кажется на столько привлекательным решением как раньше.

Еще существует Qt, который хоть и не позволяет добиться 100% нативного внешнего вида, но все же не плох (Perforce Client).

Поклонников C# обрадует тот факт, что Mono работает на Mac OS X, но вот то как Mono приложение будет выглядеть на Маке заставит вздрогнуть даже не притязательного пользователя. Дело в том, что Mono использует библиотеку GTK, которая работает на Mac OS X только через X-сервер и отличается на редкость уродливым внешним видом (лично я это могу простит только Wireshark).

iOS. Обычно, GUI для iOS приложений пишут с использованием Objective-C и Cocoa Touch (несколько урезанная версия Cocoa “большого брата” с поддержкой тачскрина). Но никто не мешает купить тот-же MonoTouch по вполне разумной цене и создавать GUI на C#. Да, судя по видеороликам, на iOS можно затащить не только Qt, но и QML. Удастся ли разместить такое приложение в AppStore я не знаю.

Android. Тут все довольно просто, GUI пишется на Java с использованием Android SDK. Так же на платформу портируется Qt в рамках проекта android-lighthouse который на данный момент доступен в довольно куцем виде. Не менее куцым, выглядит и проект MonoDroid.

Symbian^3. Nokia рекомендует использовать для разработки приложений Qt либо Java. А на просторах интернета мне попадались линки о возможности использования .Net Compact Framework для Symbian, но я не смог найти какой-либо актуальной информации на этот счет.

Windows Phone 7. Для разработки доступен только C#. Ну что за гады?!

В итоге получаем следующую интересную табличку для GUI приложения:

Платформа/SDK C++ Java Objective-C C#
Windows + + +
Linux + + +
Mac OS X +/- +/- +
iOS + +/-
Android +
Symbian + +
Windows Phone 7 +

“+” – идеально подходит;

“-” – использование не возможно в принципе, либо крайне не рекомендуется;

“+/-” – подходит, но по тем или иным причинам лучше не использовать.

Теперь можно сказать что с GUI разобрались. Одно можно сказать точно – использовать Qt придется.

Теперь к слою с логикой. Тут вопросов однозначно меньше, а альтернатив больше, ведь для написания бизнес логики нужно не так уж и много: контейнеры да алгоритмы и, в идеале, возможность так или иначе распаралелить вычисления. Так что таблица с инструментарием для написания уровня бизнес логики выйдет схожей с таблицей посвященной GUI, разве что с небольшим но очень важным уточнением. Для платформ iOS и Android (в случае с Android придется дополнительно использовать NDK) бизнес логика может быть написана на C++.

При этом, использование STL на Symbian потребует использования uSTL который был портирован Penrillian. Насколько это оправданное решение сказать сложно.

Платформа/SDK C++ Java Objective-C C#
Windows + + + +
Linux + + + +
Mac OS X + + + +
iOS + + +
Android + +
Symbian + +
Windows Phone 7 +

Выводы получаются довольно неожиданные. Java не является лучшим решением ни для написания кроссплатформенной логики, ни для написания кроссплатформенного GUI. Оптимальным вариантом оказывается логика написанная на C++ с использованием абстракции над контейнерами и алгоритмами.

GUI придется писать как минимум с использованием Qt (Windows/Linux и Symbian), Cocoa (Mac OS X и iOS) и Android SDK. А вот поддержку для Windows Phone 7 я бы стал делать только в крайнем случае. Создание приложения для этой платформы потребует отдельной реализации как логики, так и GUI которая нигде больше не пригодится.



Last updated Sept. 11, 2022, 12:43 p.m. by Author

Tags:

security

software

productivity

privacy

applications

desktop


The post below contains a curated and regularly updated list of recommended apps for the desktop users (Windows & Linux).

All of the apps listed here are open source and free as in freedom.

If are looking for an alternative to one of the apps you are currently using, you should look at alternativeTo.

Another great resource to find the answer to the question: «What are the best applications that…» is Slant.

For a comprehensive list of privacy focused software, loot at privacytools.io and at PRISM break.

Linux users should look here — this is a list with a vast number of different applications grouped in categories.

Moreover, because Flatpak is becoming the new cross distribution standard for publishing software, you can also check Flathub to discover new apps.

Because the list is periodically updated, if you want to stay up to date with the latest additions and deletions, you can use the Web Pages Scanner extension to be notified about any changes made here.


Table of contents:

1. System
2. Security & Privacy
3. Productivity & System Tools
4. Office
5. Graphics
6. Communication
7. Multimedia
8. Gaming
9. Web
10. Software Development
11. Command Line Tools

System

Manjaro Linux

Because of the privacy concerns, you should not use Windows 10. There are a lot of different Linux distros to choose from, but for me personally Manjaro is the best one when you want to start your Linux journey.

There are a few reasons for that:

  • It just works out of the box. The recommendation is made for an average person and I assume that over 90% of them are still using Windows. So putting there the Arch Linux as a recommended OS would not make any sense, it would only discourage somebody from making the switch after a failed installation. Of course there are better alternatives for somebody looking for privacy and security solutions as Qubes OS, Whonix and Tails, but none of them can be recommended as a daily driver.

  • Rolling release, so there is no need to reinstall it from time to time.

  • Based on the amazing Arch Linux.

  • It has access the AUR. And for me personally the Arch User Repository is the greatest thing about Arch — you have a one-click access to almost every app that could be run on Linux.

If you are a Linux veteran, you probably have your favourite Linux distro already, so you can just use it.

The best app to put the downloaded Manjaro ISO on a USB drive is balenaEtcher or Ventoy.

Security & Privacy

VeraCrypt

VeraCrypt is a free open source disk encryption software for Windows, Mac OSX and Linux, based on TrueCrypt 7.1a.

VeraCrypt main features:

  • Creates a virtual encrypted disk within a file and mounts it as a real disk.
  • Encrypts an entire partition or storage device such as USB flash drive or hard drive.
  • Encrypts a partition or drive where Windows is installed (pre-boot authentication).
  • Encryption is automatic, real-time(on-the-fly) and transparent.
  • Parallelization and pipelining allow data to be read and written as fast as if the drive was not encrypted.
  • Encryption can be hardware-accelerated on modern processors.
  • Provides plausible deniability, in case an adversary forces you to reveal the password: Hidden volume (steganography) and hidden operating system.

Picocrypt

Picocrypt is a very small (hence Pico), very simple, yet very secure encryption tool that you can use to protect your files. It’s designed to be the go-to tool for encryption, with a focus on security, simplicity, and reliability. Picocrypt uses the secure XChaCha20 cipher and the Argon2id key derivation function to provide a high level of security, even from three-letter agencies like the NSA. It’s designed for maximal security, making absolutely no compromises security-wise, and is built with Go’s standard x/crypto modules. Your privacy and security are under attack. Take it back with confidence by protecting your files with Picocrypt.

Cryptomator

Free client-side encryption for your cloud files. It creates a virtual hard drive called vault. Everything you put onto the virtual hard drive ends up encrypted.

Compared to other disk encryption utilities, Cryptomator encrypts each file individually. So if you edit just a small text file, only the corresponding encrypted file is changed.

This way the synchronization client of your cloud storage provider knows exactly what needs to be uploaded and what doesn’t.

KeePassXC

KeePassXC is a community fork of KeePassX, a native cross-platform port of KeePass Password Safe, with the goal to extend and improve it with new features and bugfixes to provide a feature-rich, fully cross-platform and modern open-source password manager.

Currently the best password manager out there. It does not offer a cloud solution, but this is a feature — you should be the one who chooses where to store your own passwords.

You should use it together with KeePass Tusk, a Firefox extension which adds KeePass functionality to your browser and can autofill usernames and passwords.

Tusk can access KeePass files stored in Dropbox, Google Drive, Onedrive, PCloud, OwnCloud, and NextCloud.

Syncthing

Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it’s transmitted over the Internet.

Features:

  • Private. None of your data is ever stored anywhere else other than on your computers. There is no central server that might be compromised, legally or illegally.
  • Encrypted. All communication is secured using TLS. The encryption used includes perfect forward secrecy to prevent any eavesdropper from ever gaining access to your data.
  • Authenticated. Every node is identified by a strong cryptographic certificate. Only nodes you have explicitly allowed can connect to your cluster.
  • Web GUI. Configure and monitor Syncthing via a responsive and powerful interface accessible via your browser.
  • Portable. Works on Mac OS X, Windows, Linux, Android and BSD. Run it on your desktop computers and synchronize them with your server for backup.
  • Simple. Syncthing doesn’t need IP addresses or advanced configuration: it just works, over LAN and over the Internet. Every machine is identified by an ID. Just give your ID to your friends, share a folder and watch: UPnP will do if you don’t want to port forward or you don’t know how.
  • Powerful. Synchronize as many folders as you need with different people.

Duplicati

Free backup software to store encrypted backups online.

Duplicati works with standard protocols like FTP, SSH, WebDAV as well as popular services like Microsoft OneDrive, Amazon Cloud Drive & S3, Google Drive, box.com, Mega, hubiC and many others.

Backup files and folders with strong AES-256 encryption. Save space with incremental backups and data deduplication. Run backups on any machine through the web-based interface or via command line interface. Duplicati has a built-in scheduler and auto-updater.

Vorta Backup Client (Linux only)

Vorta is a backup client for macOS and Linux desktops. It integrates the mighty BorgBackup with your desktop environment to protect your data from disk failure, ransomware and theft.

  • Encrypted, deduplicated and compressed backups using Borg as backend.
  • No vendor lock-in – back up to local drives, your own server or BorgBase, a hosting service for Borg backups.
  • Open source – free to use, modify, improve and audit.
  • Flexible profiles to group source folders, backup destinations and schedules.
  • One place to view all point-in-time archives and restore individual files.

Gufw Firewall (Linux only)

One of the easiest firewalls in the world.

OpenSnitch (Linux only)

OpenSnitch is a GNU/Linux port of the Little Snitch application firewall.

simplewall (Windows only)

Simple tool to configure Windows Filtering Platform (WFP) which can configure network activity on your computer.

The lightweight application is less than a megabyte, and it is compatible with Windows Vista and higher operating systems. You can download either the installer or portable version. For correct working, needs administrator rights.

Features:

  • Simple interface without annoying pop ups
  • Rules editor (create your own rules)
  • Internal blocklist rules (block Windows spy / telemetry)
  • Dropped packets information with notification and logging to a file feature (win7+)
  • Allowed packets information with logging to a file feature (win8+)
  • Windows Subsystem for Linux (WSL) support (win10)
  • Windows Store support (win8+)
  • Windows services support
  • Free and open source
  • Localization support
  • IPv6 support

BleachBit

When your computer is getting full, BleachBit quickly frees disk space. When your information is only your business, BleachBit guards your privacy. With BleachBit you can free cache, delete cookies, clear Internet history, shred temporary files, delete logs, and discard junk you didn’t know was there.

Designed for Linux and Windows systems, it wipes clean thousands of applications including Firefox, Internet Explorer, Adobe Flash, Google Chrome, Opera, Safari,and more. Beyond simply deleting files, BleachBit includes advanced features such as shredding files to prevent recovery, wiping free disk space to hide traces of files deleted by other applications, and vacuuming Firefox to make it faster. Better than free, BleachBit is open source.

Under Windows you should also use the additional cleaning routines called Winapp2.

Simple DNSCrypt (Windows only)

Simple DNSCrypt is a simple management tool to configure dnscrypt-proxy on windows based systems.

Qomui (Linux only)

Qomui (Qt OpenVPN Management UI) is an easy-to-use OpenVPN/WireGuard gui for GNU/Linux with some unique features such as provider-independent support for double-hop connections. Qomui supports multiple providers with added convenience when using AirVPN, PIA, ProtonVPN, Windscribe or Mullvad.

Features:

  • should work with all VPN providers that offer OpenVPN config files
  • automatic download function for Mullvad, Private Internet Access, Windscribe, ProtonVPN and AirVPN
  • support for OpenVPN over SSL and SSH for AirVPN and OpenVPN over SSL for Windscribe (Stealth Mode)
  • allows double-hop VPN connections (VPN chains) between different providers
  • gui written in PyQt including option to minimize application to system tray
  • security-conscious separation of the gui and a D-Bus service that handles commands that require root privileges
  • protection against DNS leaks/ipv6 leaks
  • iptables-based, configurable firewall that blocks all outgoing network traffic in case the VPN connection breaks down

  • allow applications to bypass the VPN tunnel, open a second VPN tunnel or use the VPN only for specific applications

  • experimental support for WireGuard
  • command-line interface
  • automatic weekly updates of server configurations for supported providers — experimental

eOVPN (Linux only)

eOVPN is a application to connect, manage and update(from remote .zip) OpenVPN configurations.

Rymdport

Rymdport (formerly wormhole-gui) is a cross-platform application that lets you easily and safely share files, folders, and text between devices. The data is sent securely with end-to-end encryption using the same protocol as magic-wormhole. This means that Rymdport can talk not only to itself, but also to other wormhole clients.

The transfers are implemented using wormhole-william, a native Go implementation of magic-wormhole. As a result, Rymdport compiles into a native binary with no runtime dependencies while also outperforming the reference implementation of magic-wormhole.

OnionShare

OnionShare is an open source tool that lets you securely and anonymously share a file of any size. A web server is started, making OnionShare accessible as a Tor Onion Service, potentially temporarily or in a stealthy manner, over the Internet. An unguessable address is generated and is shared for the recipient to open in the Tor Browser to download the files. No separate server or third party file-sharing service required. You host the files on your own computer.

The huge drawback of this software is that it is very slow, as the transfer is made through the Tor Network.

Social Amnesia

Social Amnesia aims to make your social media only exist within a time period that you choose. For many people, there is no reason they want to have years old tweets or reddit comments existing and making it easier for online marketers and jilted ex-lovers to profile you. With Social Amnesia, set the time period you want to keep, whitelist posts and items you want to preserve indefinitely, and let Social Amnesia wipe the rest out of existence.

Reddit:

  • Delete comments and submissions, showing you every item that will be deleted and asking you to confirm their deletion before running.
  • Edits your posts before deleting them. According to the reddit admins this is an effective way to remove content from reddit.
  • Keep a time range of comments and submissions (in hours)
  • Keep comments or submissions that are above a certain amount of upvotes.
  • Skip gilded comments/submissions.
  • Whitelist specific posts and comments you want to save.

Twitter:

  • Delete tweets, retweets, replies and remove «favorites» (aka hearts), showing you every item that will be deleted/removed and asking you to confirm their deletion before running.
  • Keep a time range of tweets, retweets, replies and favorites.
    • In the case of favorites, this is done by the time the favorited item was created, NOT the time it was favorited at.
  • Keep tweets that have a certain amount of retweets or favorites.
    • This option ignores retweets, these will be removed no matter what if they are out of the time range.
  • Whitelist specific tweets and favorites you want to save.

Wireshark

Wireshark is the world’s foremost and widely-used network protocol analyzer. It lets you see what’s happening on your network at a microscopic level and is the de facto (and often de jure) standard across many commercial and non-profit enterprises, government agencies, and educational institutions. Wireshark development thrives thanks to the volunteer contributions of networking experts around the globe and is the continuation of a project started by Gerald Combs in 1998.

Wireshark has a rich feature set which includes the following:

  • Deep inspection of hundreds of protocols, with more being added all the time
  • Live capture and offline analysis
  • Standard three-pane packet browser
  • Multi-platform: Runs on Windows, Linux, macOS, Solaris, FreeBSD, NetBSD, and many others
  • Captured network data can be browsed via a GUI, or via the TTY-mode TShark utility
  • The most powerful display filters in the industry
  • Rich VoIP analysis
  • Read/write many different capture file formats: tcpdump (libpcap), Pcap NG, Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Network General Sniffer® (compressed and uncompressed), Sniffer® Pro, and NetXray®, Network Instruments Observer, NetScreen snoop, Novell LANalyzer, RADCOM WAN/LAN Analyzer, Shomiti/Finisar Surveyor, Tektronix K12xx, Visual Networks Visual UpTime, WildPackets EtherPeek/TokenPeek/AiroPeek, and many others
  • Capture files compressed with gzip can be decompressed on the fly
  • Live data can be read from Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring, Frame Relay, FDDI, and others (depending on your platform)
  • Decryption support for many protocols, including IPsec, ISAKMP, Kerberos, SNMPv3, SSL/TLS, WEP, and WPA/WPA2
  • Coloring rules can be applied to the packet list for quick, intuitive analysis
  • Output can be exported to XML, PostScript®, CSV, or plain text

Portmaster

Portmaster is a free and open-source application that puts you back in charge over all your computer’s network connections. Developed

ExifCleaner

ExifCleaner is a free, opensource desktop GUI app to remove exif metadata from images and video files with simple drag and drop. It’s built on top of the proven ExifTool library and supports fast multi-core batch processing of files.

Metadata Cleaner

Metadata within a file can tell a lot about you. Cameras record data about when a picture was taken and what camera was used. Office applications automatically add author and company information to documents and spreadsheets. Maybe you don’t want to disclose those informations.

This tool allows you to view metadata in your files and to get rid of them, as much as possible.

Under the hood, it relies on mat2 to parse and remove the metadata.

Tron Script (Windows only)

Tron is a collection of programs, tools, utilities, and Windows functions that are all scripted together. Those programs and such are designed to remove malware and bloatware, repair damaged operating systems, update old versions of very common applications, free up drive space by clearing out caches, and more. By consolidating and automating these tasks into a single execution it saves a lot of time and makes the whole process a lot more efficient.

Tron’s intended goal is to take a badly-running Windows PC (bloated, infected with malware, neglected, etc) and automate about 85% of the work involved in getting it to run well again. There is nothing Tron does which you couldn’t do on your own without it. Tron’s real power is in its automation and the breadth of tools that it uses to achieve its intended goal.

Be sure to read the Tron Wiki before using it.

ControlUWP (Windows only)

ControlUWP app doesn’t replace (currently) the native Windows 10 settings panel but bundles the most important locations and recommended settings in one place and you can open and execute them in bulk. It is completely modular and based on PowerShell scripts. Everybody can map his favorite settings as he wants.

Privatezilla (Windows only)

Privatezilla integrates the most critical Windows 10 privacy settings and allows you to quickly perform a privacy check against these settings. Active settings are marked with the status «Configured» and indicates that your privacy is protected. The inactive ones are declared as «Not configured». All available settings (currently 60) can be enabled as well as disabled.

Some similar applications/scripts:

Bloatbox

Simple Windows bloatware uninstaller.

Windows10Debloater

A simple script removing bloatware.

Debloat Windows 10

A collection of debloating and privacy enhancing scripts, built into the SharpApp.

WindowsSpyBlocker

A simple portable app that blocks Windows telemetry and spying.

For advanced users:

Windows 10 Sophia Script

«Windows 10 Sophia Script» is a set of functions for Windows 10 fine-tuning and automating the routine tasks.

Core features:

  • Set up Privacy & Telemetry;
  • Turn off diagnostics tracking scheduled tasks with pop-up form written in WPF;
  • Set up UI & Personalization;
  • Uninstall OneDrive «correctly»;
  • Interactive prompts;
  • Change %TEMP% environment variable path to %SystemDrive%Temp
  • Change location of the user folders programmatically (without moving user files) within interactive menu using arrows to select a drive
  • «Desktop»;
  • «Documents»;
  • «Downloads»;
  • «Music»;
  • «Pictures»
  • «Videos.
  • Uninstall UWP apps displaying friendly packages names with pop-up form written in WPF;
  • Dynamically generated UWP apps list installed for all users
  • Disable Windows features displaying friendly packages names with pop-up form written in WPF;
  • Uninstall Windows capabilities displaying friendly packages names with pop-up form written in WPF;
  • Install and setup WSL
  • Create a Windows cleaning up task in the Task Scheduler;
  • A toast notification will pop up a minute before the task starts
  • Create tasks in the Task Scheduler to clear
  • %SystemRoot%SoftwareDistributionDownload
  • %TEMP%
  • Pin shortcuts to Start via pure PowerShell
  • Three shortcuts are pre-configured to be pinned: Control Panel, «old style» Devices and Printers, and Windows PowerShell
  • Unpin all Start menu tiles;
  • Turn on Controlled folder access and add protected folders using dialog menu;
  • Add exclusion folder from Microsoft Defender Antivirus scanning using dialog menu;
  • Add exclusion file from Microsoft Defender Antivirus scanning using dialog menu;
  • Refresh desktop icons, environment variables and taskbar without restarting File Explorer;
  • Setup Windows 10 security;
  • Many more File Explorer and context menu «deep» tweaks.

The following were not updated for some time:

Destroy Windows 10 Spying
PrivateWin10
Windows 10 Lite (Better Privacy)

Productivity & System Tools

CopyQ

CopyQ is advanced clipboard manager with editing and scripting features. It monitors system clipboard and saves its content in customized tabs. Saved clipboard can be later copied and pasted directly into any application.

Features:

  • Support for Linux, Windows and OS X 10.9+
  • Store text, HTML, images or any other custom formats
  • Quickly browse and filter items in clipboard history
  • Sort, create, edit, remove, copy/paste, drag’n’drop items in tabs
  • Add notes or tags to items
  • System-wide shortcuts with customizable commands
  • Paste items with shortcut or from tray or main window
  • Fully customizable appearance
  • Advanced command-line interface and scripting
  • Ignore clipboard copied from some windows or containing some text
  • Support for simple Vim-like editor and shortcuts
  • Many more features

espanso

A cross-platform Text Expander written in Rust.

What is a Text Expander?

A text expander is a program that detects when you type a specific keyword and replaces it with something else. This is useful in many ways:

  • Save a lot of typing, expanding common sentences.
  • Create system-wide code snippets.
  • Execute custom scripts
  • Use emojis like a pro.

Key Features:

  • Works on Windows, macOS and Linux
  • Works with almost any program
  • Works with Emojis 😄
  • Works with Images
  • Date expansion support
  • Custom scripts support
  • Shell commands support
  • App-specific configurations
  • Expandable with packages
  • Built-in package manager for espanso hub
  • File based configuration

AutoHotkey (Windows only)

AutoHotkey (AHK) is a free, open-source macro-creation and automation software for Windows that allows users to automate repetitive tasks. It is driven by a scripting language that was initially aimed at providing keyboard shortcuts, otherwise known as hotkeys, that over time evolved into a full-fledged scripting language.

You can use AutoHotkey to:

  • Automate almost anything by sending keystrokes or mouse clicks, or via COM.
  • You can write a mouse or keyboard macro by hand or a recorder.
  • Create hotkeys for keyboard, joystick, and mouse.
  • Remap keys and buttons on your keyboard, joystick, and mouse.
  • Expand abbreviations as you type them.
  • Retrieve and change the Clipboard’s contents.

You can also:

  • Convert any AHK script into an executable file that can be run on computers where AutoHotkey is not installed.
  • Create custom data-entry forms, user interfaces and menu bars.
  • Automate data entry jobs by reading data from text files, XML, CSV, Excel and various database formats.
  • Read signals from hand-held remote controls via the WinLIRC client script.
  • Use the Component Object Model (COM).
  • Use arrays, structures, matrices, and objects.
  • Use variadic functions.
  • Use DLL calls and Windows Messages.
  • Use Perl Compatible Regular Expressions (PCRE).
  • Use interactive debugging features.

AutoKey (Linux only)

AutoKey, a desktop automation utility for Linux and X11.

It allows you to manage collection of scripts, and assign abbreviations and hotkeys to these scripts allowing you to execute them on demand in whatever program you are using.

Important: This is an X11 application, and as such will not function 100% on distributions that default to using Wayland instead of Xorg.

Double Commander

Double Commander is a free cross platform open source file manager with two panels side by side. It is inspired by Total Commander and features some new ideas.

Some key features:

  • Internal text editor (F4) with syntax hightlighting
  • Built in file viewer (F3) to view files of in hex, binary or text format
  • Archives are handled like subdirectories. You can easily copy files to and from archives. Supported archive types: ZIP, TAR GZ, TGZ, LZMA and also BZ2, RPM, CPIO, DEB, RAR
  • Extended search function with full text search in any files
  • Configurable button bar to start external programs or internal menu commands
  • Total Commander WCX, WDX and WLX plug-ins support

Alternatively, if you are a Linux user, you can also take a look at Krusader.

PeaZip

PeaZip is free file archiver utility, based on Open Source technologies of 7-Zip, p7zip, FreeArc, PAQ, and PEA projects.

Cross-platform, full-featured but user-friendly alternative to WinRar, WinZip and similar general purpose archive manager applications, open and extract 180+ archive formats: 001, 7Z, ACE(*), ARC, ARJ, BZ2, CAB, DMG, GZ, ISO, LHA, PAQ, PEA, RAR, TAR, UDF, WIM, XZ, ZIP ZIPX — view full list of supported archive file formats for archiving and for extraction.

In essence, it is a more user-friendly alternative to the wonderful 7-Zip

ConvertAll

With ConvertAll, you can combine the units any way you want. If you want to convert from inches per decade, that’s fine. Or from meter-pounds. Or from cubic nautical miles. The units don’t have to make sense to anyone else.

In addition to this installed version, there is also an online version, written in JavaScript. See convertall-js.bellz.org to try it out.

Szyszka

Szyszka is simple but powerful batch file rename.

Features:

  • Written in Rust
  • Available for Linux, Max, Windows
  • Very simple GUI created with GTK3
  • Multiple rules which can be freely combined:
  • Replace text
  • Trim text
  • Adding text
  • Adding numbers
  • Purge text
  • Change letters to big/small
  • Use custom rule

Ant Renamer (Windows only)

Ant Renamer is a free program that makes easier the renaming of lots of files and folders by using specified settings. It supports Unicode names.

KRename (Linux only)

KRename is a powerful batch renamer for KDE. It allows you to easily rename hundreds or even more files in one go. The filenames can be created by parts of the original filename, numbering the files or accessing hundreds of informations about the file, like creation date or Exif informations of an image.

Simplest File Renamer

Rename your files directly or with your favorite text editor:

  1. Add files to rename
  2. Rename them inside the app or using your favorite text editor
  3. Click the «Rename» button

KDE Connect

KDE Connect is a project that enables all your devices to communicate with each other. Here’s a few things KDE Connect can do:

  • Receive your phone notifications on your desktop computer and reply to messages
  • Control music playing on your desktop from your phone
  • Use your phone as a remote control for your desktop
  • Run predefined commands on your PC from connected devices. See the list of example commands for more details.
  • Check your phones battery level from the desktop
  • Ring your phone to help finding it
  • Share files and links between devices
  • Browse your phone from the desktop
  • Control the desktop’s volume from the phone

To achieve this, KDE Connect:

  • implements a secure communication protocol over the network, and allows any developer to create plugins on top of it.
  • Has a component that you install on your desktop.
  • Has a KDE Connect client app you run on your phone.

Windows builds are available here.

PhotoRec

PhotoRec is file data recovery software designed to recover lost files including video, documents and archives from hard disks, CD-ROMs, and lost pictures (thus the Photo Recovery name) from digital camera memory. PhotoRec ignores the file system and goes after the underlying data, so it will still work even if your media’s file system has been severely damaged or reformatted.

PhotoRec is free — this open source multi-platform application is distributed under GNU General Public License (GPLV v2+). PhotoRec is a companion program to TestDisk, an application for recovering lost partitions on a wide variety of file systems and making non-bootable disks bootable again. You can download them from this link.

For more safety, PhotoRec uses read-only access to handle the drive or memory card you are about to recover lost data from. Important: As soon as a picture or file is accidentally deleted, or you discover any missing, do NOT save any more pictures or files to that memory device or hard disk drive; otherwise you may overwrite your lost data. This means that while using PhotoRec, you must not choose to write the recovered files to the same partition they were stored on.

Engauge Digitizer

The Engauge Digitizer tool accepts image files (like PNG, JPEG and TIFF) containing graphs, and recovers the data points from those graphs. The resulting data points are usually used as input to other software applications. Conceptually, Engauge Digitizer is the opposite of a graphing tool that converts data points to graphs. The process is shown below — an image file is imported, digitized within Engauge, and exported as a table of numeric data to a text file.

Catfish (Linux only)

Catfish is a versatile file searching tool. Catfish is a search GUI powered by locate and find behind the scenes, with autocompletion from Zeitgeist and locate. The advanced options allow filtering by date and file type. The interface is intentionally lightweight and simple, using only GTK+.

You can also try ANGRYsearch, Rummage
, fsearch or Drill.

Recoll

Recoll finds documents based on their contents as well as their file names.

Features:
— It can search most document formats. You may need external applications for text extraction.
— It can reach any storage place: files, archive members, email attachments, transparently handling decompression.
— One click will open the document inside a native editor or display an even quicker text preview.
— A WEB front-end with preview and download features can replace or supplement the GUI for remote use.
— The software is free, open source, and licensed under the GPL.
— Detailed features and application requirements for supported document types.

The port of Recoll to Windows lacks a few goodies like like real-time indexing, or multi-thread execution. Be aware that the athor asks for a small contribution to download it.

There’s a Firefox extension that allows indexing visited websites by Recoll.

dnGrep (Windows only)

dnGrep allows you to search across files with easy-to-read results. Search through text files, Word documents, PDFs, and archives using text, regular expression, XPath, and phonetic queries. dnGrep includes search-and-replace, whole-file preview, right-click search in File Explorer, and much more.

Features:
— Search across text files, Word documents, PDFs, and archives
— Search using text, regular expressions (regex), XPath, and phonetics
— Search-and-replace, including undo
— Whole-file preview
— Right-click to search in File Explorer
— Move/copy/delete result files
— Open line results in a custom editor, like Notepad++
— Bookmark search patterns for later use
— Try out complex searches in the Test window
— Much more!

SpeedCrunch

SpeedCrunch is a high-precision scientific calculator featuring a fast, keyboard-driven user interface. It is the best replacement for the system calculator app.

SpeedCrunch comes with over 80 built-in mathematical functions. You can also define your own functions.

Variables allow you to store your results. Perform calculations with up to 50 digits of precision, using complex numbers, numeral bases, unit conversions, and more.

Auto-completion allows you to speed up your task.

Ulauncher (Linux only)

Application launcher for Linux. ​ Type in an application name without worrying about spelling. Ulauncher will figure out what you meant. It also remembers your previous choices and automatically selects the best option for you.

Improve your workflow with customizable shortcuts and extensions. Create a shortcut for web search or your scripts or install a 3rd party extension.

Alternatively you could also use Albert which is based on the Qt framework or Krunner which is a part of KDE Plasma desktop environment.

ueli (Windows only)

Windows alternative to Ulauncher. It does not offer as many functions and does not support extensions, but it does its main job of launching apps and finding files.

ActivityWatch

ActivityWatch is an app that automatically tracks how you spend time on your devices.

It is open source, privacy-first, cross-platform, and a great alternative to services like RescueTime, ManicTime, and WakaTime.

It can be used to keep track of your productivity, time spent on different projects, bad screen habits, or just to understand how you spend your time.

Features:

  • Tracking: Tracks active application and window title out of the box, more with watchers.
  • Categories: Get a better overview of your usage by breaking it down into categories.
  • Browser extensions: Track the active tab using the extensions for Chrome and Firefox.
  • Editor plugins: Track how you spend time writing code with editor watchers.
  • Privacy: Data is stored locally and doesn’t leave your device, we put local and privacy first.
  • Cross-platform: Runs on Windows, macOS, Linux, and Android.

You can enhance its functionality by installing the Firefox extension — it will add the ability to keep track of how much time you spend on the web.

Clonezilla

Clonezilla is a partition and disk imaging/cloning program similar to True Image or Norton Ghost. It helps you to do system deployment, bare metal backup and recovery. Two types of Clonezilla are available, Clonezilla live and Clonezilla SE (server edition). Clonezilla live is suitable for single machine backup and restore. While Clonezilla SE is for massive deployment, it can clone many (40 plus!) computers simultaneously. Clonezilla saves and restores only used blocks in the hard disk. This increases the clone efficiency.

Rescuezilla

Rescuezilla is an easy-to-use disk imaging application that’s fully compatible with Clonezilla — the industry-standard trusted by tens of millions.

Yes, Rescuezilla is the Clonezilla GUI (graphical user interface) that you might have been looking for.

Disk imaging makes a backup of your computer’s hard drive which is managed as files stored on an external hard drive. If your hard drive fails, you can restore your disk image and within a few minutes all your documents and settings will be restored to the exact same state they were in when the last snapshot was taken.

Rescuezilla lets you perform backup, restore and recovery actions, even if you aren’t able to boot into your regular operating system. It does not matter if you use Windows, Mac or Linux. It doesn’t matter if you can’t even login. Download and write the ISO to a USB stick, and reboot your machine. Your computer will load a complete mini operating system with a point-and-click user interface into your computer’s memory without writing any information to your hard drive.

FreeFileSync

FreeFileSync is a folder comparison and synchronization software that creates and manages backup copies of all your important files. Instead of copying every file every time, FreeFileSync determines the differences between a source and a target folder and transfers only the minimum amount of data needed.

It is extremely fast in comparing two directories.

Ventoy

Ventoy is an open source tool to create bootable USB drive for ISO files. With ventoy, you don’t need to format the disk again and again, you just need to copy the iso file to the USB drive and boot it. You can copy many iso files at a time and ventoy will give you a boot menu to select them (screenshot). Both Legacy BIOS and UEFI are supported in the same way. 200+ ISO files are tested (list).

A «Ventoy Compatible» concept is introduced by ventoy, which can help to support any ISO file.

A simple alternative to Ventoy is balenaEtcher or Rufus for Windows users.

PowerToys (Windows only)

Microsoft PowerToys is a set of utilities for power users to tune and streamline their Windows experience for greater productivity. For

Timeshift (Linux only)

Timeshift for Linux is an application that provides functionality similar to the System Restore feature in Windows and the Time Machine tool in Mac OS. Timeshift protects your system by taking incremental snapshots of the file system at regular intervals. These snapshots can be restored at a later date to undo all changes to the system.

Timeshift is similar to applications like rsnapshot, BackInTime and TimeVault but with different goals. It is designed to protect only system files and settings. User files such as documents, pictures and music are excluded. This ensures that your files remains unchanged when you restore your system to an earlier date. If you need a tool to backup your documents and files please take a look at the excellent BackInTime application which is more configurable and provides options for saving user files.

Back in Time (Linux only)

Back In Time is a simple backup tool for Linux, inspired by «flyback project».

It provides a command line client ‘backintime’ and a Qt5 GUI ‘backintime-qt’ both written in Python3.

You only need to specify 3 things:

  • where to save snapshots
  • what folders to backup
  • backup frequency (manual, every hour, every day, every month)

Kopia

Kopia is a simple, cross-platform tool for managing encrypted backups in the cloud. It provides fast, incremental backups, secure, client-side end-to-end encryption, compression and data deduplication.

Unlike other cloud backup solutions, the user is in full control of the backup storage and responsible for purchasing one of the cloud storage products (such as Google Cloud Storage), which offer great durability and availability for the data.

Remmina (Linux only)

Remmina is a remote desktop client written in GTK+. Remmina primarily targets system administrators and travelers that need to work with computers remotely in front of either large monitors or tiny netbooks. It supports multiple network protocols within an integrated and consistent user interface.

Features:
— Protocols supported: RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC
— Maintain a list of remote desktop files, organized by groups
— Make quick connections by directly putting in the server name
— Remote desktops with higher resolutions are scrollable/scalable in both window and full screen mode
— Viewport full screen mode: remote desktop automatically scrolls when the mouse moves over the screen edge.
— Floating toolbar in fullscreen mode which allows you to switch between modes, toggle keyboard grabbing, and minimize
— Tabbed interface with optional group management support

mRemoteNG

mRemoteNG is a fork of mRemote: an open source, tabbed, multi-protocol, remote connections manager. mRemoteNG adds bug fixes and new features to mRemote.

It allows you to view all of your remote connections in a simple yet powerful tabbed interface.

mRemoteNG supports the following protocols:

  • RDP (Remote Desktop/Terminal Server)
  • VNC (Virtual Network Computing)
  • ICA (Citrix Independent Computing Architecture)
  • SSH (Secure Shell)
  • Telnet (TELecommunication NETwork)
  • HTTP/HTTPS (Hypertext Transfer Protocol)
  • rlogin
  • Raw Socket Connections

QEMU

QEMU (short for «Quick EMUlator») is a free and open-source hosted hypervisor that performs hardware virtualization.

QEMU is a hosted virtual machine monitor: It emulates central processing units through dynamic binary translation and provides a set of device models, enabling it to run a variety of unmodified guest operating systems. It also provides an accelerated mode for supporting a mixture of binary translation (for kernel code) and native execution (for user code), in the same fashion as VMware Workstation and VirtualBox do. QEMU can also be used purely for CPU emulation for user-level processes, allowing applications compiled for one architecture to be run on another.

VirtualBox

VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use. Not only is VirtualBox an extremely feature rich, high performance product for enterprise customers, it is also the only professional solution that is freely available as Open Source Software under the terms of the GNU General Public License (GPL) version 2. See «About VirtualBox» for an introduction.

Presently, VirtualBox runs on Windows, Linux, Macintosh, and Solaris hosts and supports a large number of guest operating systems including but not limited to Windows (NT 4.0, 2000, XP, Server 2003, Vista, Windows 7, Windows 8, Windows 10), DOS/Windows 3.x, Linux (2.4, 2.6, 3.x and 4.x), Solaris and OpenSolaris, OS/2, and OpenBSD.

VirtualBox is being actively developed with frequent releases and has an ever growing list of features, supported guest operating systems and platforms it runs on. VirtualBox is a community effort backed by a dedicated company: everyone is encouraged to contribute while Oracle ensures the product always meets professional quality criteria.

Flatseal (Linux only)

Flatseal is a graphical utility to review and modify basic permissions from your Flatpak applications.

DeadLock (Windows only)

DeadLock is a free file and folder unlocking utility. It can help you unlock files or folders that you’re unable to delete, copy, rename or move.

Bulk Crap Uninstaller (Windows only)

Bulk Crap Uninstaller (in short BCUninstaller or BCU) is a free (as in speech and beer) bulk program uninstaller with advanced automation. It excels at removing large amounts of applications with minimal to no user input, while requiring next to no technical knowledge.

It can detect most applications and games (even portable or not registered), clean up leftovers, force uninstall, automatically uninstall according to premade lists, and much more.

Czkawka

Czkawka is a simple, fast and easy to use alternative to FSlint, written in Rust.

Features:

  • Written in memory safe Rust
  • Amazingly fast — due using more or less advanced algorithms
  • CLI frontend, very fast and powerful with rich help
  • GUI GTK frontend — uses modern GTK 3 and looks similar to FSlint
  • Light/Dark theme match the appearance of the system
  • Saving results to a file — allows reading entries found by the tool easily
  • Rich search option — allows setting absolute included and excluded directories, set of allowed file extensions or excluded items with * wildcard
  • Clean Glade file in which UI can be easily modernized
  • Multiple tools to use:
  • Duplicates — Finds duplicates basing on size(fast), hash(accurate), first 1MB of hash(moderate)
  • Empty Folders — Finds empty folders with the help of advanced algorithm
  • Big Files — Finds provided number of the biggest files in given location
  • Empty Files — Looks for empty files across disk
  • Temporary Files — Allows finding temporary files
  • Similar Files — Finds files which are not exactly the same
  • Zeroed Files — Find files which are filled with zeros(usually corrupted)
  • Same Music — Search for music with same artist, album etc.

XTR Toolbox (Windows only)

Versatile and portable software designed to clean, tweak and optimize Windows. It’s extremely fast and rich with features.

Stacer (Linux only)

Stacer is an open source system optimizer and application monitor that helps users to manage entire system with different aspects, its an all in one system utility.

Netdata (Linux only)

Netdata is distributed, real-time performance and health monitoring for systems and applications. It is a highly-optimized monitoring agent you install on all your systems and containers.

Netdata provides unparalleled insights, in real-time, of everything happening on the systems it’s running on (including web servers, databases, applications), using highly interactive web dashboards.

A highly-efficient database stores long-term historical metrics for days, weeks, or months, all at 1-second granularity. Run this long-term storage autonomously, or integrate Netdata with your existing monitoring toolchains (Prometheus, Graphite, OpenTSDB, Kafka, Grafana, and more).

Netdata is fast and efficient, designed to permanently run on all systems (physical and virtual servers, containers, IoT devices), without disrupting their core function.

Netdata is free, open-source software and it currently runs on Linux, FreeBSD, and macOS, along with other systems derived from them, such as Kubernetes and Docker.

Latte Dock (Linux/KDE Plasma only)

Latte is a dock based on plasma frameworks that provides an elegant and intuitive experience for your tasks and plasmoids. It animates its contents by using parabolic zoom effect and trys to be there only when it is needed.

The best dock out there.

KSMoothDock

KSmoothDock is a cool desktop panel with parabolic zooming effect for KDE Plasma 5, with the focus on smooth zooming effect and being simple and easy to use.

Tiled Menu (Linux/KDE Plasma only)

A menu based on Windows 10’s Start Menu.

Supports:

  • Pin/Favourite apps/files through the context menu (or by dragging them from dolphin).
  • Resizing (permanently) the size of the menu by Alt + Right Clicking and dragging.
  • Any size tile 1×1, 2×2, 4×4, 4×2, 1×3, etc.
  • Easily edit the background image of a tile.
  • Customizable sidebar shortcuts.
  • Jump to Letter/Category (can also default to this view)
  • Defaulting to only showing the tiles.
  • Labeling Groups of Tiles + Move Groups of Tiles + Sorting items in the group

Does not support (Win10):
— Tile Groups («Folders»)

Event Calendar (Linux/KDE Plasma only)

An extended calendar with daily weather forecasts and events from Google Calendar. Also includes a timer and 24 hour forecast graph.

Based on the Event Flow Calendar for android. Combines code from weather-widget, volume control from mediacontrolscompact, and the default calendar + timer plasmoids.

Features:

* Google Calendar Agenda
* Google Tasks (Create/Toggle/Delete). Editing tasks will come soon.
* Weather
* Timer (8 preset durations / Scroll over the time left to adjust for other durations)
* Double click a day in the calendar to open the new event template in the browser.
* Clicking a day in the agenda opens a quick form for creating an event/task.
* Clicking an event in the agenda opens the event in the browser.
* Scrolling over the clock controls the volume.
* Full height single column layout (https://streamable.com/88ct)

kalu (Arch Linux derivatives only)

kalu (which could stand for «Keeping Arch Linux Up-to-date») is a small application that will add an icon to your systray and sit there, regularly checking if there’s anything new for you to upgrade. As soon as it finds something, it’ll show a notification to let you know about it. Very classic stuff.

QDirStat (Linux only)

QDirStat is a graphical application to show where your disk space has gone and to help you to clean it up.

This is a Qt-only port of the old Qt3/KDE3-based KDirStat, now based on the latest Qt 5. It does not need any KDE libs or infrastructure. It runs on every X11-based desktop on Linux, BSD and other Unix-like systems.

QDirStat has a number of new features compared to KDirStat. To name a few:

  • Multi-selection in both the tree and the treemap.
  • Unlimited number of user-defined cleanup actions.
  • Properly show errors of cleanup actions (and their output, if desired).
  • File categories (MIME types) and their treemap color are now configurable.
  • Exclude rules for directories are easily configurable.
  • Desktop-agnostic; no longer relies on KDE or any other specific desktop.

For cross-system alternative look at Filelight or WinDirStat for a Windows port of QDirStat.

Superpaper

Superpaper is an advanced multi monitor wallpaper manager for Linux and Windows operating systems, with partial and untested support for Mac OS X.

Novel features include:

  • Advanced spanning options
    • Pixel density correction
    • Bezel correction
    • Perspective correction
    • These are described in more detail on this wiki page.
  • Extensive Linux support!
    • Aims to support all desktop environments
    • Span wallpaper on KDE and XFCE!
  • Works on both Linux and Windows

Features in detail:

  • Set a single image across all displays
  • Set different image on every display
  • Pixel density correction: span an image flawlessly across displays of different shapes and sizes!
  • Bezel correction
  • Perspective correction: span the image even more flawlessly!
  • Manual pixel offsets for fine-tuning
  • Slideshow with configurable file order from local sources
  • Command-line interface
  • Tray applet for slideshow control
  • Hotkey support for easy slideshow control (Only Linux and Windows)
  • Align test tool to help fine tune your settings (Accessible only from GUI)

You can also take a look at HydraPaper (Linux only.)

HydraPaper (Linux only)

Manage your collection simply with folders, then add all of them to HydraPaper. You can enable or disable them with just a click.

We all have favorite wallpapers for any mood. Add them as favorites, and quickly find them back in the Favorites section.

Set your wallpapers as zoomed, centered, or fitted, with either a black background or a blurred version of the selected wallpaper.

You can quickly set random wallpapers, even from the app launcher. Fresh wallpapers in seconds.

Rainmeter (Windows only)

Rainmeter allows you to display customizable skins on your desktop, from hardware usage meters to fully functional audio visualizers. You are only limited by your imagination and creativity.

Rainmeter comes with a few simple starter skins that provide a good place to start, but the biggest part of the community are skins which you install onto your system.

You can place them onto your desktop and modify it so it will fit to your current systems theme to create something special and unique.

More skins can be found here.

Taskbar Monitor (Windows only)

A simple resource monitor for windows that resides on your taskbar.

It includes quite a few features already:

  • CPU, memory, disk and network graphs;
  • Different views available for each graph (summary, stacked or mirrored);
  • Proper installation tool that automatically registers the deskband at the taskbar.

SysMon (Linux only)

Graphical system monitor for linux, including information about CPU, GPU, Memory, HDD/SDD and your network connections. Similar to windows task manager.

Graphical visualization of the following data:

  • CPU utilization and per core clock speed

  • GPU utilization and clock speed (so far only Nvidia). Should work with multiple GPUs (not tested)

  • Memory and Swap utilization

  • Network utilization (Wlan and Ethernet). Wlan link bandwidth is constantly updated.

  • HDD/SSD utilization.

You can also see an overview of running processes.

WattmanGTK (Linux only)

A Wattman-like GTK3+ GUI.

What can it do?

  • View memory and GPU P-states including voltages.
  • Ability to monitor signals from GPU sensors by means of plotting
  • Write a bash file with overclock settings
  • Multi GPU support in top dropdown list

What can’t it do?

  • Directly apply values from GUI (this will be a future addition)
  • Fan control (this will be a future addition)
  • Monitor multiple GPU’s

Hardware Requirements

  • A Radeon card which uses the AMDGPU kernel driver

GreenWithEnvy (Linux Only)

System utility designed to provide information, control the fans and overclock your NVIDIA card.

Features:

  • Show general GPU stats (model name, driver version, gpu/memory/power usage, clocks, temps, etc)
  • GPU and Memory overclock offset profiles
  • Custom Fan curve profiles
  • Change power limit
  • Historical data graphs

OpenRGB

One of the biggest complaints about RGB is the software ecosystem surrounding it. Every manufacturer has their own app, their own brand, their own style. If you want to mix and match devices, you end up with a ton of conflicting, functionally identical apps competing for your background resources. On top of that, these apps are proprietary and Windows-only. Some even require online accounts. What if there was a way to control all of your RGB devices from a single app, on both Windows and Linux, without any nonsense? That is what OpenRGB sets out to achieve. One app to rule them all.

Features:

  • Set colors and select effect modes for a wide variety of RGB hardware
  • Save and load profiles
  • Control lighting from third party software using the OpenRGB SDK
  • Command line interface
  • Connect multiple instances of OpenRGB to synchronize lighting across multiple PCs
  • Can operate standalone or in a client/headless server configuration
  • View device information
  • No official/manufacturer software required

Yin-Yang KDE (Linux/KDE Plasma only)

Yin & Yang is a KDE tool which brings Auto Night-mode for KDE, VSCode and all GTK Apps like Firefox, Libreoffice and Chromium. On Top of that it let´s you specify Wallpaper swhich will be toggled alongisde. Yin & Yang styles all KDE and QT5 tools, furthermore it also themes VSCode or VSCodium. You can activate a Theme-toggle with shortcuts or let Yin-Yang toggle themes at scheduled Times.

Office

LibreOffice

LibreOffice is a powerful office suite — its clean interface and feature-rich tools help you unleash your creativity and enhance your productivity. LibreOffice includes several applications that make it the most powerful Free and Open Source office suite on the market — the best alternative to Microsoft Office.

Joplin

Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or from your own text editor. The notes are in Markdown format.

Notes exported from Evernote via .enex files can be imported into Joplin, including the formatted content (which is converted to Markdown), resources (images, attachments, etc.) and complete metadata (geolocation, updated time, created time, etc.). Plain Markdown files can also be imported.

The notes can be synchronised with various cloud services including Nextcloud, Dropbox, OneDrive, WebDAV or the file system (for example with a network directory). When synchronising the notes, notebooks, tags and other metadata are saved to plain text files which can be easily inspected, backed up and moved around.

The application is available for Windows, Linux, macOS, Android and iOS. A Web Clipper, to save web pages and screenshots from your browser, is also available for Firefox.

An interesting alternative to Joplin written using the Qt framework is QOwnNotes.

MindForger

MindForger is human mind inspired personal knowledge management tool. The best note-taking and knowledge gathering tool available.

MindForger aims to mimic human mind — learning, recalling, recognition, associations, forgetting — in order to achieve synergy with your mind to make your searching, reading and writing more productive.

MindForger starts where editors and search engines end. It thinks as you search, browse, read and write. Once you find a remark, MindForger brings its associations. As you browse notes and read them it looks up related relevant knowledge in your notebooks. If you edit a remark, MindForger brings associations as you write. It reminds you about existing content related to the text being written.

Currently it lacks a web clipper, it has also some bugs to be sorted out. After those will be taken care of it will be my preferred tool over Joplin mentioned above.

Note for Windows users: consider changing UI theme to native (under Mind -> Adapt), otherwise it may look a bit out of place as it was originally developed as a Linux application.

ghostwriter

A distraction-free Markdown editor. Features:

  • Built-in Themes
  • Live HTML Preview
  • Export to Multiple Formats
  • Focus Mode
  • Hemingway Mode
  • Document and Session Statistics
  • Drag and Drop Images
  • Custom Theme Creation

For me personally, it provides a wonderful writing experience. All of the posts I publish here were written using ghostwriter.

Windows user should use this link to download the latest binary.

Manuskript

Manuskript is an open-source tool for writers, with outliner, character management, plot development, distraction-free editor, etc.

Outliner — Organize your thoughts and snippets in a hierarchical manner. Organize them as you wish, reorganize them on the go.

Distraction-free mode — Get rid of all distraction while writing. Set personal goal in word count or time before you can leave editor.

Novel assistant — Use the snowflake method to grow your single genius idea in an coherent whole, with complex characters, intricate plots and detailed universe.

Manuskript is still in development, and in need of extensive testing.

NovelWriter

A markdown-like text editor designed for writing novels and larger projects of many smaller plain text documents.

It is designed to be a simple text editor that allows for easy organisation of text files and notes, with a meta data syntax for comments, synopsis, and cross-referencing between files, and built on plain text files for robustness.

Marker (Linux only)

A great GTK 3.0 alternative to ghostwriter (which is Qt based), unfortunately available only for Linux users.

Warning: This app is still very early in development. There are many bugs and unfinished features.

Features:

  • View and edit markdown documents
  • HTML and LaTeX conversion of markdown documents with scidown
    • Support for YAML headers
    • Document classes
    • Beamer/presentation mode (class: beamer)
    • Abstract sections
    • Table of Contents
    • External document inclusion
    • Equations, figures, table and listings with reference id and caption
    • Internal references
  • Extra scientific syntax of SciDwon wiki
  • TeX math rendering with KaTeX and MathJax
  • Support for mermaid diagrams
  • Support for charter for plot
  • Syntax highlighting for code blocks with highlight.js
  • Integrated sketch editor
  • Flexible export options with pandoc
    • PDF
    • RTF
    • ODT
    • DOCX
  • Custom CSS themes
  • Custom syntax themes
  • Native Gtk+3 application

Lifeograph

Lifeograph has all the basic features one might expect from a diary program and a few more:

  • Supports encrypted (with real AES256 encryption) and unencrypted diaries
  • Automatically logs out when not used for some time (to protect your diary when you forget to log out doing some other thing) (optional)
  • Automatically formats entry titles and subheadings
  • Wiki-like rich text formatting (bold, italic, =strikeout=, etc…)
  • Basic searching/filtering and replacing text
  • Themes in text editor
  • Favorite entries
  • Various to-do management features
  • Very strong support for tagging, including parametric tags
  • Spell checking
  • Links between entries, and to URIs (http://, file://, mailto://, etc…)
  • Automatic backups
  • Printing individual entries or whole diaries
  • Statistical charts (from v1.4 on some serious analytical capabilities when combined with parametric tags)
  • Images and charts in entries
  • Synchronization of diary files with each other (such as different versions on different machines)
  • Export diary file to plain text

Sumatra PDF (Windows only)

Sumatra PDF is a free PDF, eBook (ePub, Mobi), XPS, DjVu, CHM, Comic Book (CBZ and CBR) reader for Windows.

Sumatra PDF is powerful, small, portable and starts up very fast.

Simplicity of the user interface has a high priority.

Okular (Linux only)

Okular is a universal document viewer developed by KDE. Okular combines the excellent functionalities with the versatility of supporting different kind of documents, like PDF, Postscript, DjVu, CHM, XPS, ePub and others.

PDF Arranger

PDF Arranger is a small python-gtk application, which helps the user to merge or split pdf documents and rotate, crop and rearrange their pages using an interactive and intuitive graphical interface. It is a frontend for pikepdf.

YACReader

YACReader (Yet Another Comic Reader) is a free cross-platform comic reader with support for multiple comic files and image formats. YACReader comes with YACReaderLibrary an application for browsing and managing your comic collections with various smooth transition effects.

YACReader is fast, easy to use and all you need to enjoy your digital comics.

Artha

Artha is a handy thesaurus that focuses on high usability, without trading off simplicity and ease of use. It has the following distinct features that increases its usability:

  • WordNet — Artha harnesses the extensive & in-depth database provided by WordNet. Unlike other dictionaries which goes on-line for every single lookup, Artha works completely off-line; thanks to WordNet for its excellent and cognitive database.
  • Hot key Lookup — When you press a pre-set hot key, after selecting some text on any window, Artha pops up with the selection’s definitions looked-up.
  • Regular Expressions Search — When a word is vaguely known I.e. the user is unclear of its spelling or when it’s start/end alone is known or when the number of characters is known; one can speed up/narrow the search using regular expression to locate the particular word they have in mind.
  • Notifications — Artha can show passive notifications (balloon tips) instead of the application’s window popping up, so that you can continue what you were doing, uninterrupted. (like reading, writing, etc.)
  • Suggestions — When a misspelled word is queried for, Artha gives you its near-match suggestions.
  • Relative to Sense Mapping — Relative words like synonyms, antonyms, etc. that are displayed are many. You might not know to which sense/definition of a word does a relative map to. In Artha, when you select a relative, its corresponding definition is scrolled to and highlighted for easy comprehension.

For a given word, the possible relatives shown by Artha includes Synonyms, Antonyms, Derivatives, Pertainyms (Related Noun/Verb), Attributes, Similar Terms, Domain Terms, Entails (what verb entails doing), Causes (what a verb causes to), Hypernyms (is a kind of), Hyponyms (kinds), Holonyms (is a part of) and Meronyms (parts). To know more about each category of relatives, click on it for an explanation and example. Once launched, Artha sits on the system tray and looks for the pre-set hot key combination press. You can select some text on any window, and call Artha by pressing the key combo. Depending upon the option set, Artha with either pop-up with the word looked-up or will show a passive notification of the most important definition of the searched term, from the system tray.

textpieces (Linux only)

Small tool for quick text transformations such as checksums, encoding, decoding and so on. Written in Vala for GNOME desktop in hope to be useful.

Features:

  • Base64 encoding and decoding
  • SHA1, SHA2 and MD5 checksums
  • Prettify and minify JSON
  • Covert JSON to YAML and vice versa
  • Count lines, symmbols and words
  • Escape and unescape string, URL and HTML
  • Remove leading and trailing whitespaces
  • Sort and reverse sort lines
  • Reverse lines and whole text
  • You can write your own scripts and create custom tools

NormCap

OCR powered screen-capture tool to capture information instead of images.

Features:

  • On-screen recognition of selected text
  • Multi platform support for Linux, Windows, MacOS
  • Multi monitor support, incl. HDPI displays
  • «Magically» parsing the text (optional, on by default)
  • Show notifications (optional)
  • Stay in system tray (optional)
  • Check for updates (optional, off by default)

GTK+ Font Manager (Linux only)

Font Manager is intended to provide a way for average users to easily manage desktop fonts, without having to resort to command line tools or editing configuration files by hand. While designed primarily with the Gnome Desktop Environment in mind, it should work well with other Gtk+ desktop environments.

Zotero

Zotero is a free, easy-to-use tool to help you collect, organize, cite, and share research.

Zotero is the only software that automatically senses research on the web. Need an article from JSTOR or a preprint from arXiv.org? A news story from the New York Times or a book from a library? Zotero has you covered, everywhere.

Zotero helps you organize your research any way you want. You can sort items into collections and tag them with keywords. Or create saved searches that automatically fill with relevant materials as you work.

Zotero instantly creates references and bibliographies for any text editor, and directly inside Word, LibreOffice, and Google Docs. With support for over 9,000 citation styles, you can format your work to match any style guide or publication.

Freeplane

Freeplane is a free and open source software application that supports thinking, sharing information and getting things done at work, in school and at home. The software can be used for mind mapping and analyzing the information contained in mind maps. Freeplane runs on any operating system that has a current version of Java installed. It can be run locally or portably from removable storage like a USB drive.

Super Productivity

Organize your daily tasks in one place while making time tracking a lot less annoying. Super Productivity is a ToDo List / Time Tracker / Personal Jira Task Manager for Linux, MacOS and Windows aimed at reducing the time you spend with repetitive tasks and to provide you with a place to collect all the information you need to do your job.

Features:

  • Plan, track & summarize. Create time sheets and work summaries in a breeze to easily export them to your company’s time tracking system.
  • Integrate with Jira, GitHub and GitLab. Auto import tasks assigned to you, plan the details locally, automatically create worklogs and get notified right away, when something changes.
  • Organize your project’s data. Create notes, attach files or create bookmarks for links, files and even commands and have it all out of the way, once you’re ready for the weekend.
  • Helps you to establish healthy habits. A break timer reminds to you, when it’s time to step away. You also can collect personal metrics for yourself to see, which of your work routines need adjustments.
  • Stuck and procrastinating? No problem! Super Productivity’s anti procrastination feature helps you to reconsider your options and a pomodoro timer is also always at hand.
  • Super Productivity does NOT collect any data and there are no user accounts or registration. It’s free and open source and always will be.

Also available for Android.

Planner (Linux only)

Task manager with Todoist support designed for GNU/Linux.

How Planner works:

1. Collect your Ideas — The Inbox is your default task list in Planner. When you add a task, it goes straight to your Inbox unless you specify that the task goes into a project.

2. Get Organized — Create a project for each of your goals, then add the steps to reach them. Review these regularly to stay on top of things.

3. Calendar and Events — See your calendar events and plan your time effectively. Planner will remind you on the right day.

4. Be even more organized — Add a duedate to your tasks, create labels, use checklists.

Support for Todoist:

  • Synchronize your Projects, Task and Sections thanks to Todoist.
  • Support for Todoist offline: Work without an internet connection and when everything is reconnected it will be synchronized.

* Planner not created by, affiliated with, or supported by Doist

💎️ Other features:

  • ⏲️ Reminders notifications
  • 🔍️ Quick Find

You can also take a look at Getting Things GNOME! (Linux only).

LyX

LyX is a document processor that encourages an approach to writing based on the structure of your documents (WYSIWYM) and not simply their appearance (WYSIWYG).

LyX combines the power and flexibility of TeX/LaTeX with the ease of use of a graphical interface. This results in world-class support for creation of mathematical content (via a fully integrated equation editor) and structured documents like academic articles, theses, and books. In addition, staples of scientific authoring such as reference list and index creation come standard. But you can also use LyX to create a letter or a novel or a theatre play or film script. A broad array of ready, well-designed document layouts are built in.

LyX is for people who want their writing to look great, right out of the box. No more endless tinkering with formatting details, “finger painting” font attributes or futzing around with page boundaries. You just write. On screen, LyX looks like any word processor; its printed output — or richly cross-referenced PDF, just as readily produced — looks like nothing else.

Skrooge (Linux only)

Skrooge allows you to manage your personal finances, powered by KDE. Thanks to its many features, it is one of the most powerful way to enter, follow, and analyze your expenses. Features:

  • QIF, CSV, SKROOGE, KMYMONEY import/export
  • Microsoft Money, OFX, QFX, MT940, GNUCASH, GRISBI, HOMEBANK and MONEY MANAGER EX import
  • Advanced Graphical Reports
  • Several tabs to help you organize your work
  • Infinite undo/redo (even after the file was closed !)
  • Instant filtering on operations and reports
  • Infinite categories levels
  • Mass update of operations
  • Scheduled operations
  • Track refund of your expenses
  • Automatically process operations based on search conditions
  • Multi currencies
  • Budget
  • Dashboard
  • Advices

Anki

Anki is a program which makes remembering things easy. Because it’s a lot more efficient than traditional study methods, you can either greatly decrease your time spent studying, or greatly increase the amount you learn.

Anyone who needs to remember things in their daily life can benefit from Anki. Since it is content-agnostic and supports images, audio, videos and scientific markup (via LaTeX), the possibilities are endless.
For example:

  • Learning a language
  • Studying for medical and law exams
  • Memorizing people’s names and faces
  • Brushing up on geography
  • Mastering long poems
  • Even practicing guitar chords

There’s also an Android port called AnkiDroid, which is compatible with Anki data.

FotoToon

The FotoToon Activity will allow you to create everything from a simple “comic” strip to a long elaborate illustrated document. You will be able to import many kinds of images into the panes of your project and add text bubbles to help tell the story. You can use photo images taken with the XO or imported from a camera, drawings made with Activities such as Paint, and images of all kinds downloaded from the web. This could include photos, charts and graphs, maps, and the like.

Graphics

GIMP

GIMP is a cross-platform image editor available for GNU/Linux, OS X, Windows and more operating systems.

Whether you are a graphic designer, photographer, illustrator, or scientist, GIMP provides you with sophisticated tools to get your job done. You can further enhance your productivity with GIMP thanks to many customization options and 3rd party plugins.

You should also try PhotoGIMP that is atch for optimizing GIMP 2.10+ for Adobe Photoshop users, including features like:

  • Tool organization to mimic the position of Adobe Photoshop;
  • Hundreds of new fonts by default;
  • New Python filters installed by default, such as «heal selection»;
  • New Splash Screen
  • New default settings to maximize space on the canvas;
  • Shortcuts similar to the ones in Photoshop for Windows, following Adobe’s Documentation;
  • New icon and Name from custom .desktop file.
  • System Language is now used by default, you can still change in settings if you want.

Krita

Krita is a professional free and open source painting program. It is made by artists that want to see affordable art tools for everyone.

  • concept art
  • texture and matte painters
  • illustrations and comics

Inkscape

Whether you are an illustrator, designer, web designer or just someone who needs to create some vector imagery, Inkscape is for you.

  • Flexible drawing tools
  • Broad file format compatibility
  • Powerful text tool
  • Bezier and spiro curves

Pencil2D Animation

An easy, intuitive tool to make 2D hand-drawn animations.

Lightweight and easy to use so you can focus on animating and not what button to hit next.

Seamlessly switch between raster and vector workflows, allowing you to sketch, ink & paint on the go.

Alternatively you can also take a look at OpenToonz and Synfig.

Pencil

Pencil is built for the purpose of providing a free and open-source GUI prototyping tool that people can easily install and use to create mockups in popular desktop platforms.

Blender

Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing and motion tracking, even video editing and game creation. Advanced users employ Blender’s API for Python scripting to customize the application and write specialized tools; often these are included in Blender’s future releases. Blender is well suited to individuals and small studios who benefit from its unified pipeline and responsive development process. Examples from many Blender-based projects are available in the showcase.

Blender is cross-platform and runs equally well on Linux, Windows, and Macintosh computers. Its interface uses OpenGL to provide a consistent experience. To confirm specific compatibility, the list of supported platforms indicates those regularly tested by the development team.

Communication

Element

Element is an open source, free software instant messaging client based on the Matrix protocol. Besides Signal it is the recommended application for communication. It supports E2EE, file transfer, audio and video calls and syncs between devices.

Element is well known for the ability to bridge other communications into the app via Matrix, such as IRC, Slack, Telegram and others.

Built around group chatrooms, Element lets you share messages, images, videos and files — interact with your tools and access all your different communities under one roof. One single identity and place for all your teams: no need to switch accounts, work and chat with people from different organisations in public or private rooms.
Features include:

  • Instantly share messages, images, videos and files of any kind within groups of any size
  • Voice and video 1-1 and conference calling via WebRTC
  • End-to-end encryption using Olm
  • See who’s reading your messages with read receipts
  • Communicate with users anywhere in the Matrix.org ecosystem — not just Element users!
  • Discover and invite users by email address
  • Participate in guest-accessible public rooms
  • Highly scalable — supports hundreds of rooms and thousands of users
  • Fully synchronised message history across multiple devices and browsers
  • Finely configurable notification settings, synchronised over all devices
  • Infinite searchable chat history
  • Permalinks to messages
  • Full message search
  • Excellent support for all Android device sizes and orientations

Signal

Open Source alternative to WhatsApp with a very similar interface. Offers both desktop and mobile apps.

Delta Chat

With Delta Chat, you can write to every existing e-mail address — even if the recipient is not (yet) using the Delta Chat App. This is one of the biggest differences to other messengers: There is no need for the receiver to install the same app as yours.

With Delta Chat you get the ease of well-known messengers with the reach of e-mail. Moreover, you’re independent from other companies or services — as your data are not related to Delta Chat, you won’t even add new dependencies here.

Some features at a glance:

  • Secure with automatic end-to-end-encryption, supporting the new Autocrypt standard
  • Fast by the use of Push-IMAP
  • Largest userbase — receivers not using Delta Chat can be reached as well
  • Compatible — not only to itself
  • Elegant and simple user interface
  • Distributed system
  • No Spam — only messages of known users are shown by default
  • Reliable — safe for professional use
  • Trustworthy — can even be used for business messages
  • Fully OpenSource and Standards based

Jitsi Meet Electron

Desktop application for Jitsi Meet built with Electron.

Features:

  • End-to-End Encryption support (BETA)
  • Works with any Jitsi Meet deployment
  • Builtin auto-updates
  • ~~Remote control~~ (currently disabled)
  • Always-On-Top window
  • Support for deeplinks such as jitsi-meet://myroom (will open myroom on the configured Jitsi instance) or jitsi-meet://jitsi.mycompany.com/myroom (will open myroom on the Jitsi instance running on jitsi.mycompany.com)

Multimedia

VLC

VLC is a free and open source cross-platform multimedia player and framework that plays most multimedia files as well as DVDs, Audio CDs, VCDs, and various streaming protocols.

Simple, fast and powerful:

  • Plays everything — Files, Discs, Webcams, Devices and Streams.
  • Plays most codecs with no codec packs needed — MPEG-2, MPEG-4, H.264, MKV, WebM, WMV, MP3…
  • Runs on all platforms — Windows, Linux, Mac OS X, Unix, iOS, Android …
  • Completely Free — no spyware, no ads and no user tracking.

Some VLC plugins that you may find interesting:

  • VLSub: an extension to download subtitles directly from VLC.
  • Pause Click plugin for VLC: a plugin that allows you to pause/play a video by clicking on the video image.
  • SubSync: Subtitle’s not displaying at the right time? Easy, just «catch» a subtitles line, and «release» it at the correct time. Synchronization is done!
  • Arc Dark VLC skin
  • Breeze VLC skin

Other great video players are mpc-qt for Linux users and MPC-BE for Windows users.

SMPlayer

SMPlayer is a free media player for Windows and Linux with built-in codecs that can play virtually all video and audio formats. It doesn’t need any external codecs. Just install SMPlayer and you’ll be able to play all formats without the hassle to find and install codec packs.

One of the most interesting features of SMPlayer: it remembers the settings of all files you play. So you start to watch a movie but you have to leave… don’t worry, when you open that movie again it will be resumed at the same point you left it, and with the same settings: audio track, subtitles, volume…

SMPlayer is a graphical user interface (GUI) for the award-winning MPlayer, which is capable of playing almost all known video and audio formats. But apart from providing access for the most common and useful options of MPlayer, SMPlayer adds other interesting features like the possibility to play Youtube videos or download subtitles.

QMPlay2

QMPlay2 is a video and audio player. It can play all formats supported by FFmpeg, libmodplug (including J2B and SFX). It also supports Audio CD, raw files, Rayman 2 music and chiptunes. It contains YouTube and MyFreeMP3 browser.

Strawberry Music Player

Strawberry is a music player and music collection organizer. It is aimed at music collectors and audiophiles. With Strawberry you can play and manage your digital music collection, or stream your favorite radios. It also has unofficial streaming support for Tidal and Qobuz. Strawberry is free software released under GPL. The source code is available on GitHub. It’s written in C++ using the Qt toolkit and GStreamer. Strawberry is compatible with both Qt version 5 and 6.

  • Play and organize music
  • Supports WAV, FLAC, WavPack, Ogg Vorbis, Speex, MPC, TrueAudio, AIFF, MP4, MP3, ASF and Monkey’s Audio
  • Audio CD playback [*]
  • Native desktop notifications
  • Playlist management and playlists in multiple formats
  • Smart and dynamic playlists
  • Advanced audio output and device configuration for bit-perfect playback on Linux
  • Edit tags on audio files
  • Automatically retrieve tags from MusicBrainz
  • Album cover art from Last.fm, Musicbrainz, Discogs, Musixmatch, Deezer, Tidal, Qobuz and Spotify
  • Song lyrics from AudD AudD, Genius, Musixmatch, ChartLyrics, lyrics.ovh and lololyrics.com
  • Support for multiple backends
  • Audio analyzer
  • Audio equalizer
  • Transfer music to mass-storage USB players, MTP compatible devices and iPod Nano/Classic [*]
  • Scrobbler with support for Last.fm, Libre.fm and ListenBrainz
  • Streaming support for Subsonic-compatible servers
  • Unofficial streaming support for Tidal and Qobuz [**]

A nice and lightweight (written in C++) alternative to Strawberry is Sayonara Player. Currently available only for Linux and BSD.

Tauon Music Box (Linux only)

Tauon music box is a modern streamlined music player with a minimal interface that’s packed with features! An emphasis on playlists and direct file importing puts you in control of your music collection. Uses GStreamer for playback.

Heres just some of the features:
— Excellent CUE sheet support
— Simple drag and drop file importing
— Import network tracks from koel or Airsonic
— Last.fm and Listenbrainz scrobbling
— Search for tracks, artists, albums and folders using the advanced search
— MPRIS2 support for desktop integration
— Broadcast a background live-stream for remote listening
— Multiple layouts including compact, mini, gallery and large album art!
— Gapless playback excludes MP3
— Context search on sites Genius, Bandcamp and Rate Your Music
— Extract and import your downloaded archives in one click!

Tauon Music Box can even function as a remote Spotify client, some setup required.
— Import your Spotify albums and liked tracks
— Download and upload Spotify playlists to your account
— Control or monitor remote Spotify playback (Requires Spotify premium)
— Import items by search, or by pasting Spotify URL/URIs

There’s also a companion Android remote control app: Tauon Remote.

Mousai (Linux only)

Discover songs you are aching to know with an easy-to-use interface.

Mousai is a simple application that can identify songs similar to Shazam. Just click the listen button, and then wait a few seconds. It will magically return the title and artist of that song!

Note: This uses the API of audd.io, so it is necessary to login to their site to get more trials.

Why you will love Mousai?

🎵 Identify the title and artist of the song within seconds.

🎸 Store the identified song including the album art in history.

🎼 Preview the identified song with the native player.

🌐 Browse the song in the web with the link.

📱 Easy-to-use user interface.

⌨️ User-friendly keyboard shortcuts.

nomacs

nomacs is a free, open source image viewer, which supports multiple platforms. You can use it for viewing all common image formats including RAW and psd images.

nomacs features semi-transparent widgets that display additional information such as thumbnails, metadata or histogram. It is able to browse images in zip or MS Office files which can be extracted to a directory. Metadata stored with the image can be displayed and you can add notes to images.

nomacs includes image manipulation methods for adjusting brightness, contrast, saturation, hue, gamma, exposure. It has a pseudo color function which allows creating false color images. A unique feature of nomacs is the synchronization of multiple instances. With this feature you can easily compare images by zooming and/or panning at the exactly same position or even by overlaying them with different opacity.

qimgv

Qt5 image viewer. Fast, configurable, easy to use. Optional video support.

Key features:

  • Simple UI
  • Fast
  • Easy to use
  • Fully configurable, including shortcuts
  • High quality scaling
  • Basic image editing: Crop, Rotate and Resize
  • Ability to quickly copy / move images to different folders
  • Experimental video playback via libmpv
  • Ability to run shell scripts
  • A nice dark theme, should look identical on every OS / DE

Kodi

It is an entertainment hub that brings all your digital media together into a beautiful and user friendly package. It is 100% free and open source, very customisable and runs on a wide variety of devices. It is supported by a dedicated team of volunteers and a huge community.

It allows users to play and view most videos, music, podcasts, and other digital media files from local and network storage media and the internet.

Be sure to visit Addons4Kodi and Kodi Addons Club to find myriad of useful addons.

Here you can find instructions how to install some of the most popular addons.

gPodder

gPodder is a simple, open source podcast client written in Python using GTK+. In development since 2005 with a proven, mature codebase.

Jellyfin

Jellyfin is the volunteer-built media solution that puts you in control of your media. Stream to any device from your own server, with no strings attached. Your media, your server, your way.

Jellyfin enables you to collect, manage, and stream your media. Run the Jellyfin server on your system and gain access to the leading free-software entertainment system, bells and whistles included.

Harmonoid

Elegant music app to play local music & YouTube music.

Features:
Powerful metadata engine
— Indexes all your music into albums & artists based on embedded tags.
Discord integration
— Show your friends what you listen.
Play local music
— Local music playback. Strong format support.
Play YouTube music
— Play YouTube music directly with a link or search for it. YouTube music must be vailable in your country.
Small size
— < 15 MB standalone installer.
Lyrics retriever
— Gets lyrics for all your music.
Beautiful user interface
— Eye catching user experience, interface & animations.
Ads free forever
— No advertisements.
Playlists
— Create ever-staying playlists for your music.
Freedom
— Open source.
Personalization
— Set your favorite colors & themes.

Nuclear Music Player

nuclear is a free music streaming program that pulls content from free sources all over the internet.

If you know mps-youtube, this is a similar music player but with a GUI. It’s also focusing more on audio. Imagine Spotify which you don’t have to pay for and with a bigger library.

Features:

  • Searching for and playing music from YouTube (including integration with playlists), Jamendo, Audius and SoundCloud
  • Searching for albums (powered by Last.fm and Discogs), album view, automatic song lookup based on artist and track name (in progress, can be dodgy sometimes)
  • Song queue, which can be exported as a playlist
  • Loading saved playlists (stored in json files)
  • Scrobbling to last.fm (along with updating the ‘now playing’ status)
  • Newest releases with reviews — tracks and albums
  • Browsing by genre
  • Radio mode (automatically queue similar tracks)
  • Unlimited downloads (powered by youtube)
  • Realtime lyrics
  • Browsing by popularity
  • List of favorite tracks
  • Listening from local library
  • No accounts
  • No ads
  • No CoC
  • No CLA

muffon

muffon is a desktop music streaming browser.

Features:

  • listening (artists / albums / tracks) (also offline)
  • queue
  • music library (and compatibility with others)
  • music services integration (Last.FM)
  • recommendations (based on your library)
  • search (through all of the sources above)
  • radio (tags / artists / top)
  • scrobbling (Last.FM)
  • videos (YouTube) (with channels)
  • lyrics (Genius)
  • tags (with top artists / albums / tracks)
  • top (artists / albums / tracks / tags) (with country select)
  • new / upcoming releases
  • multitag search
  • playlists
  • favorites (artists / albums / tracks)
  • bookmarks (artists / albums / tracks)
  • listened (artists / albums / tracks)
  • posting
  • following
  • messaging
  • feed (also global)
  • communities
  • sharing (artists / albums / tracks / videos / playlists / communities)
  • theming (dark mode / background change / transparency change)

Olivia (Linux only)

Elegant music player for LINUX.

Features:

  • Olivia helps you discover new music and videos like no other service do.
  • Smart Music recommendation, can get you songs related to any song.
  • Allows organise music and videos at one place.
  • Olivia can save track while you are streaming it, this saves your bandwidth.
  • Olivia never stops playing song for you with its smart playlist feature it automatically starts playing related songs for you once your playlist ends.
  • Watch or Download Video for any song in different audio video formats and quality.
  • Allows search YouTube and add result to library, sort results and all other YouTube features like browse channels.
  • Plays audio only of YouTube streams (saves data bandwidth).
  • Support themes , Dynamic theme based on album art.
  • Intelligent Music Search suggestions engine integrated.
  • Player Mini mode aminimal player widget with always on capability and allows set transparency and make it act like a desktop widget.
  • Switch to Smart mode and sit back, olivia will play songs for you automatically.
  • Internet radio, allows play more than 25k online radio stations, list them sort them according to most played , most voted, language wise, country wise and by tags .
  • Olivia lets you browse new music according to your location.
  • Olivia lets you discover music based on their genres, moods and more.
  • Its easy to discover new music — singles, albums etc easily at one place.
  • Top music chart, allows list top 100 songs country wise.
  • Top albums chart, allows list top 100 albums county wise.
  • Beautiful Client side Decoration.
  • Lyrics of playing songs and separate lyrics search.
  • Powerful audio equalizers and audio filters.
  • MPRIS protocol support.
  • Audio export with meta tags and album art.
  • More features like cloud synchronisation of your Liked Music is coming soon, so you will be able to get your music back no matter where you are.

Leonflix

Leonflix is a modular search tool for content. It crawls video/file hosting websites and can find and return the videos hosted on those sites. You can find more than just movies. Find semester-length video lectures from MIT’s OpenCourseWare, or the complete Khan Academy video lesson series on AP Physics 2, all using the Modules built by the amazing members of our community.

In today’s world of streaming, every time a video changes hands, from the host to the site that shows it, more ads are added. By the time it gets to the viewer, the content has been «stepped on» so many times that it is nearly unwatchable. Leonflix’s novelty is that it extracts only the desired content that streaming sites provide, filtering out all the pop-ups and adware that have been cut into the product.

Freezer

Free music streaming client for Deezer based on the Deezloader/Deemix «bug».

Penguin Subtitle Player

Penguin Subtitle Player is an open-source, cross-platform standalone subtitle player, as an alternative to Greenfish Subtitle Player, SrtViewer (Mac), SRTPlayer, JustSubsPlayer and Free Subtitle Player.

You download the subtitle file (.srt, .ssa, .ass) from any sites you like and load it into the subtitle player. The subtitle player provides a translucent window which always stays on the top so that subtitles can be shown on top of the video without blocking anything.

With Penguin Subtitle Player, just open your favorite online streaming site, load the subtitle file into the player, and enjoy.

Subtitld

Subtitld is probably the best open source software to edit, transcribe and create subtitles.

It is able to read SRT, SSA, TTML, SBV, DFXP, VTT, XML, SCC and SAMI file formats and to write SRT file format by default.

Features:
— Unlimited video duration
— Resizeable window: the interface is adjusted to your screen.
— MPV playback engine: based on a powerful multimedia playback engine.
— ffmpeg internal processes: internal tasks are based on a powerful audio/video manipulation tool.

OpenSubtitlesDownload

OpenSubtitlesDownload.py is a small software written in Python, built to help you quickly find and download subtitles for your favorite videos. It can be used as a nautilus script, or as a regular application working under GNOME or KDE desktop environments. You can also use it in full CLI mode (Command Line Interface) on your NAS, Raspberry Pi or anywhere you want really, as long as you have a working Python interpreter.

The subtitles search is done by precisly identifying your video files by computing unique movie hash sums. This way, you have more chance to find the exact subtitles for your videos, avoiding synchronization problems between the subtitles and the soundtrack. But what if that doesn’t work? Well, a search with the filename will be performed, but be aware: results are a bit more… unpredictable (don’t worry, you will be warned! and you can even disable this feature if you want).

The subtitles search and download service is powered by opensubtitles.org.

Calibre

calibre is a powerful and easy to use e-book manager. Users say it’s outstanding and a must-have. It’ll allow you to do nearly everything and it takes things a step beyond normal e-book software. It’s also completely free and open source and great for both casual users and computer experts.

One of the more interesting plugins for Calibre is the DRM Removal Tools.

See also kepubify.

Kindle Mate (Windows only)

Kindle Mate is a neat tool with rich features designed to sync, organize, import & export Kindle clippings (Kindle highlights and notes) and Kindle Vocabulary Builder words on computer.

This one is freeware and not open source but I could not find anything else like this. If you know about a similar open source project, let me know.

Bookworm (Linux only)

A simple, focused eBook reader.

Read the books you love without having to worry about different format complexities like epub, pdf, mobi, cbr, etc.

As nn alternative, look at Foliate.

K2pdfopt

K2pdfopt optimizes PDF/DJVU files for mobile e-readers (e.g. the Kindle) and smartphones. It works well on multi-column PDF/DJVU files and can re-flow text even on scanned PDF files.

It can also be used as a general PDF copying/cropping/re-sizing/OCR-ing manipulation tool.

It can generate native or bitmapped PDF output, with an optional OCR layer. There are downloads for MS Windows, Mac OSX, and Linux. The MS Windows version has an integrated GUI. K2pdfopt is open source.

ShareX (Windows only)

The best screen capture, file sharing and productivity tool. It has a lot of features that it probably can do everything you would expect from a screen sharing software.

A nice and simple alternative: Captura.

KSnip

Ksnip is a Qt based cross-platform screenshot tool that provides many annotation features for your screenshots.

Latest ksnip version contains following features:

  • Supports Linux (X11, Plasma Wayland, GNOME Wayland and xdg-desktop-portal Wayland), Windows and macOS.
  • Screenshot of a custom rectangular area that can be drawn with mouse cursor.
  • Screenshot of last selected rectangular area without selecting again.
  • Screenshot of the screen/monitor where the mouse cursor is currently located.
  • Screenshot of full-screen, including all screens/monitors.
  • Screenshot of window that currently has focus.
  • Screenshot of window under mouse cursor.
  • Screenshot with or without mouse cursor.
  • Capture mouse cursor as annotation item that can be moved and deleted.
  • Customizable capture delay for all capture options.
  • Upload screenshots directly to imgur.com in anonymous or user mode.
  • Upload screenshots via custom user defined scripts.
  • Command-line support, for capturing screenshots and saving to default location, filename and format.
  • Filename wildcards for Year ($Y), Month ($M), Day ($D), Time ($T) and Counter (multiple # characters for number with zero-leading padding).
  • Print screenshot or save it to PDF/PS.
  • Annotate screenshots with pen, marker, rectangles, ellipses, texts and other tools.
  • Annotate screenshots with stickers and add custom stickers.
  • Obfuscate image regions with blur and pixelate.
  • Add effects to image (Drop Shadow, Grayscale or Border).
  • Add watermarks to captured images.
  • Global hotkeys for capturing screenshots (currently only for Windows and X11).
  • Tabs for screenshots and images.
  • Open existing images via dialog, drag-and-drop or paste from clipboard.
  • Run as single instance application (secondary instances send cli parameter to primary instance).
  • Pin screenshots in frameless windows that stay atop other windows.
  • Many configuration options.

Flameshot

Powerful yet simple to use screenshot software. Features:

  • Customizable appearance.
  • Easy to use.
  • In-app screenshot edition.
  • DBus interface.
  • Upload to Imgur.

vokoscreenNG

vokoscreenNG is an easy to use screencast creator to record educational videos, live recordings of browser, installation, videoconferences, etc.

CDEmu (Linux only)

CDemu is a software suite designed to emulate an optical drive and disc (including CD-ROMs and DVD-ROMs) on the Linux operating system.

WinDCEmu (Windows only)

WinCDEmu is an open-source CD/DVD/BD emulator — a tool that allows you to mount optical disc images by simply clicking on them in Windows Explorer. If you have downloaded an ISO image and want to use it without burning it to a blank disc, WinCDEmu is the easiest way to do it.

puddletag (Linux only)

puddletag is an audio tag editor (primarily created) for GNU/Linux similar to the Windows program, Mp3tag. Unlike most taggers for GNU/Linux, it uses a spreadsheet-like layout so that all the tags you want to edit by hand are visible and easily editable.

The usual tag editor features are supported like extracting tag information from filenames, renaming files based on their tags by using patterns and basic tag editing.

Then there’re Functions, which can do things like replace text, trim it, do case conversions, etc. Actions can automate repetitive tasks. Doing web lookups using Amazon (including cover art), Discogs (does cover art too!), FreeDB and MusicBrainz is also supported. There’s quite a bit more, but I’ve reached my comma quota.

Supported formats: ID3v1, ID3v2 (mp3), MP4 (mp4, m4a, etc.), VorbisComments (ogg, flac), Musepack (mpc), Monkey’s Audio (.ape) and WavPack (wv).

Kid3 — Audio Tagger

With Kid3 you can:

  • Edit ID3v1.1 tags
  • Edit all ID3v2.3 and ID3v2.4 frames
  • Convert between ID3v1.1, ID3v2.3 and ID3v2.4 tags
  • Edit tags in MP3, Ogg/Vorbis, DSF, FLAC, MPC, MP4/AAC, MP2, Opus, Speex, TrueAudio, WavPack, WMA, WAV, AIFF files and tracker modules (MOD, S3M, IT, XM)
  • Edit tags of multiple files, e.g. the artist, album, year and genre of all files of an album typically have the same values and can be set together.
  • Generate tags from filenames
  • Generate tags from the contents of tag fields
  • Generate filenames from tags
  • Rename and create directories from tags
  • Generate playlist files
  • Automatically convert upper and lower case and replace strings
  • Import from gnudb.org, TrackType.org, MusicBrainz, Discogs, Amazon and other sources of album data
  • Export tags as CSV, HTML, playlists, Kover XML and in other formats
  • Edit synchronized lyrics and event timing codes, import and export LRC files
  • Automate tasks using QML/JavaScript, D-Bus or the command-line interface

ANoise (Linux only)

A Minimal & integrated player, allowing you to focus on your productivity!Just open the Ubuntu sound indicator and choose your noise: Coffee Shop | Fire | Forest | Night | Rain | Sea | Storm | Wind.

Kdenlive

Kdenlive is an acronym for KDE Non-Linear Video Editor. It is primarily aimed at the GNU/Linux platform but also works on BSD and MacOS. It is currently being ported to Windows as a GSOC project.

Non-linear video editing is much more powerful than beginners’ (linear) editors, hence it requires a bit more organization before starting. However, it is not reserved to specialists and can be used for small personal projects.

For a less complex and easier to get into alternative you can try Shotcut.

You can also watch the develeopment of Olive.

Avidemux

Avidemux is a free video editor designed for simple cutting, filtering and encoding tasks. It supports many file types, including AVI, DVD compatible MPEG files, MP4 and ASF, using a variety of codecs. Tasks can be automated using projects, job queue and powerful scripting capabilities.

Natron

Natron is a powerful Digital Compositor that can handle of your 2D/2.5D needs. Its robust OIIO file formats and OpenFX architecture is what make Natron the most flexible open source compositor for the visual effects community. Its interface and functionally are the same across all platforms such as MacOS, Linux and Windows. Natron has a powerful keying, roto/rotopaint, 2D tracking tools that are staple for all current film production project that requires visual effects.

Some Feature Insights:
— 32 bits floating point linear color processing pipeline.
— Colorspace management handled by OpenColorIO.
— Dozens of file formats supported: EXR, DPX, TIFF, PSD, SVG, RAW, JPG, PNG … and more.
— Support for OpenFX v1.4

  • Support for many free and open-source OpenFX plugins:

    • OpenFX-IO : to read anything else than standard 8-bits images (bundled with pre-compiled versions of Natron).
    • OpenFX-Misc : A set of basic nodes, such as Transform, chroma keyer, etc… (bundled with the pre-compiled versions of Natron).
    • OpenFX-Arena : A set of extra nodes (bundled with the pre-compiled versions of Natron).
    • OpenFX-OpenCV : A set of plugins based on OpenCV.
    • OpenFX-Yadif deinterlacer : An open-source efficient de-interlacer.
    • OpenFX-Vegas SDK samples
    • OpenFX samples (in the Support and Examples directories)
  • Support for commercial OpenFX plugins:

    • RevisionFX products
    • NeatVideo denoiser
    • Furnace by The Foundry
    • KeyLight by The Foundry
    • GenArts Sapphire
    • Other GenArts products
    • Universe by Red Giant Software
    • Ignite by HitFilm
    • And many more.

HandBrake

HandBrake is an open-source, multithreaded video transcoder- it converts digital media from one format to another, compressing the files in the process. Handbrake can rip encrypted DVDs with libdvdcss (libdvdcss is installed with VLC media player on Mac OS X, or AnyDVD/DVD 43 on Windows).

Handbrake supports:
— Any Blu-ray or DVD-like source: VIDEO_TS folder, DVD image or real DVD, and some .VOB, .m2ts, and .TS files. Without VLC, Handbrake requires media to be unencrypted or already decrypted by third-party programs (i.e. DVD rippers).
— Almost any other multimedia file it can get libavformat to read and libavcodec to decode.

Outputs:
— File format: MP4 and MKV
— Video: MPEG-4, H.264, or Theora
— Audio: AAC, CoreAudio AAC (OS X Only), MP3, or Vorbis. AC-3 pass-through, DTS pass-through (MKV only)

Misc features:
— Support of chapter selections
— Support of subtitles
— Integrated bitrate calculator
— Picture deinterlacing, cropping and scaling
— Live Video Preview

fre:ac

fre:ac is a free audio converter and CD ripper with support for various popular formats and encoders. It currently converts between MP3, MP4/M4A, WMA, Ogg Vorbis, FLAC, AAC, WAV and Bonk formats.

With fre:ac you easily rip your audio CDs to MP3 or WMA files for use with your hardware player or convert files that do not play with other audio software. You can even convert whole music libraries retaining the folder and filename structure.

The integrated CD ripper supports the CDDB/freedb online CD database. It will automatically query song information and write it to ID3v2 or other title information tags.

Features:
— Converter for MP3, MP4/M4A, WMA, Ogg Vorbis, FLAC, AAC, WAV and Bonk formats
— Integrated CD ripper with CDDB/freedb title database support
— Portable application, install on a USB stick and take it with you
— Multi-core optimized encoders to speed up conversions on modern PCs
— Full Unicode support for tags and file names
— Easy to learn and use, still offers expert options when you need them
— Multilingual user interface available in 40 languages
— Completely free and open source without a catch

FFaudioConverter

FFaudioConverter is a GUI for converting music or videos to audio files with FFmpeg.

Features:

  • DnD support
  • Multithreading (use the full power of your cpu)
  • Convert many files or whole directories very fast
  • Audio filters possible (bass boost your music or do fade-ins/outs…)
  • Change of samplerate possible
  • High quality resampling with SoX possible
  • Quick mode for copying files in same format and skip already converted files

Flacon

Flacon extracts individual tracks from one big audio file containing the entire album of music and saves them as separate audio files.

To do this, it uses information from the appropriate CUE file. Besides, Flacon makes it possible to conveniently revise or specify tags both for all tracks at once or for each tag separately.

Features:
— Supported input formats: WAV, FLAC, APE, WavPack, True Audio (TTA).
— Supported out formats: FLAC, WAV, WavPack, AAC, OGG or MP3.
— Replay Gain analysis (album-gain and track-gain modes).
— Multi-threaded conversion process.
— Automatic character set detection for CUE files.
— Generation of the pertrack CUE file in the output dir.

File Converter (Windows only)

File Converter is a very simple tool which allows you to convert and compress one or several file(s) using the context menu in windows explorer.

The interface is designed to be as light as possible to keep the application pleasant to use.

You can heavily customize the application in order to add / remove conversion presets in the files context menus or edit the existing one to change the conversion options.

OBS Studio

Free and open source software for video recording and live streaming.

Tenacity

Tenacity is an easy-to-use multi-track audio editor and recorder for Windows, MacOS, GNU/Linux and other operating systems. It is a fork of the widely popular Audacity and is being developed by a wide, diverse group of volunteers.

  • Recording from audio devices (real or virtual)
  • Export / Import a wide range of audio formats (extensible with FFmpeg)
  • High quality including up to 32-bit float audio support
  • Plug-ins providing support for VST, LV2, and AU plugins
  • Scripting in the built-in scripting language Nyquist, or in Python, Perl and other languages with named pipes
  • Editing arbitrary sampling and multi-track timeline
  • Accessibility including editing via keyboard, screen reader support and narration support
  • Tools useful in the analysis of signals, including audio

ardour

Ardour is a hard disk recorder and digital audio workstation application. It runs on GNU/Linux, Mac OS X, and Windows. Ardour’s intention is to provide digital audio workstation software suitable for professional use.

NOTE:
Ardour source code is freely available but pre-built binaries are commercial free-libre software: users who download from ardour.org are asked to pay at least $1 for downloading pre-built binaries; those users then have the right to obtain minor updates until the next major release. Another option is to subscribe, paying $1, $4 or $10 per month. Subscribers can download prebuilt binaries of all updates during the subscription period.

darktable

darktable is an open source photography workflow application and raw developer. A virtual lighttable and darkroom for photographers. It manages your digital negatives in a database, lets you view them through a zoomable lighttable and enables you to develop raw images and enhance them.

Converseen

Converseen is a free cross-platform batch image processor for Windows and Linux that allows you to convert, resize, rotate and flip an infinite number of images with a mouse click.

Moreover, Converseen is able to transform an entire PDF file into a bunch of images with the characteristics you prefer: you can choose one of the 100+ formats, you can set the size, resolution and the filename.

Converseen, thanks to ImageMagick, the powerful image manipulation library on which the program leans it’s basis, can supports more than 100 image formats including DPX, EXR, GIF, JPEG, JPEG-2000, PhotoCD, PNG, Postscript, SVG, TIFF and many others.

Gaming

Lutris (Linux only)

Lutris is an open gaming platform for Linux. It helps you install and manage your games in a unified interface.

Its goal is to support every game which runs on Linux, from native to Windows games (via Wine) to emulators and browser games. The desktop application and the website are libre software, your contributions are welcome!

GameHub (Linux only)

Unified library for all your games, written in Vala using GTK+3, designed for elementary OS.

GameHub supports non-native games as well as native games for Linux.

It supports multiple compatibility layers for non-native games:

  • Wine / Proton
  • DOSBox
  • RetroArch
  • ScummVM

It also allows to add custom emulators.

GameHub supports multiple game sources and services:

  • Steam
  • GOG
  • Humble Bundle
  • Humble Trove

Locally installed games can also be added to GameHub.

GameHub makes storing and managing your DRM-free game collection easier.

Download installers, DLCs and bonus content and GameHub will save your downloads according to settings.

athenaeum (Linux only)

Athenaeum is a game laucher and manager designed as a libre replacement for Steam.

What works:

  • Installing Games
  • Running Games
  • Uninstalling Games
  • Updates (Only monolithic atm, individual to come)

Goldberg Steam Emulator

This is a steam emulator that emulates steam online features on a LAN. It works on both Linux and Windows.

You replace the steam api .dll or .so with mine (for complete steps see the Release Readme) and then you can put steam in the trash and play your games either in single player on on LAN without steam (Assuming the games have no DRM and use Steam for online).

If you are a game developper and made the mistake of depending too much on the steam api and want to release of version of your game without it and don’t want to rewrite your game, this is for you.

Minigalaxy

A simple GOG client for Linux.

The most important features of Minigalaxy:

  • Log in with your GOG account
  • Download the Linux games you own on GOG
  • Launch them

In addition to that, Minigalaxy also allows you to:

  • Select in which language you’d prefer to download your games
  • Change where games are installed
  • Search your GOG Linux library
  • Show all games or just the ones you’ve installed
  • View the error message if a game fails to launch
  • Enable displaying the FPS in games
  • Use the system’s Scummvm or Dosbox installation
  • Install Windows games using Wine

AntiMicroX (Linux only)

antimicrox is a graphical program used to map keyboard keys and mouse controls to a gamepad. You can use this program to control any desktop application with a gamepad; on Linux, this means that your system has to be running an X environment in order to run this program.

It allows mapping of gamepads/joystick buttons to:

  • keyboard buttons
  • mouse buttons and moves
  • scripts and executables
  • macros consisting of elements mentioned above

This application is continuation of project called AntiMicro, which was later abandoned and revived by juliagoda.

SDC Controller

User-mode driver, mapper and GTK3 based GUI for Steam Controller, DS4 and similar controllers. Features:

  • Allows to setup, configure and use Steam Controller(s) without ever launching Steam
  • Supports profiles switchable in GUI or with controller button
  • Stick, Pads and Gyroscope input
  • Haptic Feedback and in-game Rumble support
  • OSD, Menus, On-Screen Keyboard for desktop and in games.
  • Automatic profile switching based on active window.
  • Macros, button cycling, rapid fire, modeshift, mouse regions…
  • Emulates Xbox360 controller, mouse, trackball and keyboard.

Piper (Linux only)

Piper is a GTK+ application to configure gaming mice. Piper is merely a graphical frontend to the ratbagd DBus daemon, see the libratbag README for instructions on how to run ratbagd.

If you are running piper from git, we recommend using libratbag from git as well to make sure the latest bugfixes are applied.

NVIDIA driver slimming utility (Windows only)

Trimming NVidia drivers out of a redundant crap.

Web

Firefox

The only browser that competes with the Chromium monoculture which more and more resembles the IE dominance in the late 90s. After the significant revamp with the release of Firefox Quantum it is extremely fast, secure and private.

In contrast with other browser that are offered by Google (Chrome), Microsoft (Edge) and Opera (some Chinese corporations) it is developed by the Mozilla foundation which promotes a free, private and secure web. Other browsers collect your data to sell them to third parties or to use to profile you.

Together with the extensive offer of extensions it is simply the best browser out there.

Tor Browser

Browse Privately. Explore Freely. Defend yourself against tracking and surveillance. Circumvent censorship.

RSS Guard

RSS Guard is simple RSS/ATOM feed reader for Windows, Linux, BSD, OS/2 or macOS which can work with RSS/ATOM/JSON feeds and also supports many online feed services:

  • Feedly,
  • Gmail,
  • Google Reader API (Bazqux, FreshRSS, Inoreader, Miniflux, Reedah, The Old Reader and others),
  • Nextcloud News,
  • Tiny Tiny RSS.

To convert some popular proprietary news feeds like YouTube channels or Twitter feeds into a RSS feeds, you can use RSS Box or RSS.app.

You can use this Firefox extension.

QuiteRSS

QuiteRSS is a open-source cross-platform RSS/Atom news feeds reader. It is very slim in its resource usage and still possesses a lot of features.

To convert some popular proprietary news feeds like YouTube channels or Twitter feeds into a RSS feeds, you can use RSS Box or RSS.app.

You can use this Firefox extension.

A worth checking GTK based alternative is NewsFlash.

Thunderbird

Thunderbird is a free email application that’s easy to set up and customize. The gold standard email client, considered to be the best currently available.

Supports extensions and PGP encryption.

Advanced user can add a tray functionality with Birdtray.

For a simpler and more fancy looking e-mail client you can try Kube or Geary (both Linux only).

ElectronMail

Unofficial desktop app for ProtonMail and Tutanota end-to-end encrypted email providers.

Features:

  • Cross platform, Linux/OSX/Windows.
  • Multi email providers support.
  • Multi accounts support per each email provider. Individual entry point domain selection is enabled.
  • Automatic login into the app with remembered master password using keytar module («Keep me signed in» feature).
  • Automatic login into the email accounts, including filling 2FA tokens.
  • Encrypted settings storage with switchable predefined key derivation and encryption presets. Argon2 is used as the default key derivation function.
  • Native notifications for individual accounts clicking on which focuses the app window and selects respective account in the accounts list.
  • System tray icon with a total number of unread messages shown on top of it. Enabling local messages store improves this feature (how to enable), see respective issue.
  • Switchable view layouts (full, tabs and dropdown). See details here and screenshots in images folder.
  • Batch emails export to EML files. Feature released with v2.0.0-beta.4 version, requires local messages store feature to be enabled (how to enable).
  • Full-text search. Enabled with v2.2.0 release.
  • Option to use a built-in/prepackaged web client instead of loading the online page. The built-in web clients are built from source code, see respective official Protonmail and Tutanota repositories. See original issue for details.
  • Start minimized to tray.
  • Close to tray.

HTTrack Website Copier

HTTrack is a free (GPL, libre/free software) and easy-to-use offline browser utility.

It allows you to download a World Wide Web site from the Internet to a local directory, building recursively all directories, getting HTML, images, and other files from the server to your computer. HTTrack arranges the original site’s relative link-structure. Simply open a page of the «mirrored» website in your browser, and you can browse the site from link to link, as if you were viewing it online. HTTrack can also update an existing mirrored site, and resume interrupted downloads. HTTrack is fully configurable, and has an integrated help system.

qBittorrent

The qBittorrent project aims to provide an open-source software alternative to uTorrent.

Currently the best torrent application out there, mainly because of low system resource consumption and the magnificent search function which allows you to search through many public and private sites inside the app itself.

Nicotine+

Nicotine+ is a graphical client for the Soulseek peer-to-peer file sharing network. It is an attempt to keep Nicotine working with the latest libraries, kill bugs, keep current with the Soulseek protocol, and add some new features that users want and/or need.

SMLoadr

SMLoadr is a program for downloading music from streaming music services.

It is intended for educational and private use only, and not as a tool for pirating and distributing music!

Remember that the artists and studios put a lot of work into making music — purchase music to support them.

Features:

  • Download music in excellent quality for free
  • Supports single tracks, albums, artists, playlists and users favourite tracks
  • Music quality selection (MP3 — 128 kbps, MP3 — 320 kbps, FLAC — 1411 kbps)
  • Auto tagging MP3 & FLAC files (with album cover)
  • Saves music to «DOWNLOADS/[artist]/[album]/[track_number] [title].mp3/flac»
  • Download a list of links from «downloadLinks.txt»
  • CLI support

FileZilla

FileZilla is a graphical FTP, FTPS and SFTP client. It is platform independent and supports all major desktop operating systems.

  • Easy to use
  • Supports FTP, FTP over SSL/TLS (FTPS) and SSH File Transfer Protocol (SFTP)
  • Cross-platform. Runs on Windows, Linux, *BSD, OSX and more
  • IPv6 support
  • Available in many languages
  • Supports resume and transfer of large files >4GB
  • Powerful Site Manager and transfer queue
  • Bookmark
  • Drag and drop support
  • Configurable Speed limits
  • Filename filters
  • Directory Comparison
  • Network configuration wizard
  • The ability to use Notepad or any other program to edit a file online
  • HTTP/1.1, SOCKS5 and FTP Proxy support
  • Logging to file
  • Synchronized directory browsing
  • Remote file search

A nice and easy to use alternative for Windows users is WinSCP.

Pure Maps (Linux only)

Pure Maps is an application for Sailfish OS and Linux to display vector and raster maps, places, routes, and provide navigation instructions with a flexible selection of data and service providers.

Marble

Marble is a virtual globe and world atlas — your swiss army knife for maps.

FreeTube

FreeTube is an open source desktop YouTube player built with privacy in mind. Use YouTube without advertisements and prevent Google tracking from you with their cookies and JavaScript. Available for Windows, Mac & Linux thanks to Electron.

Features:

  • Watch videos without ads
  • Use YouTube without Google tracking you using cookies and JavaScript
  • Make API calls through the Tor network
  • Subscribe to channels without an account
  • Local subscriptions, history, and saved videos
  • Export & import subscriptions
  • Open videos from your browser directly into FreeTube (with extension)
  • Mini Player
  • Light / dark theme

tartube

Tartube is a GUI front-end for youtube-dl, yt-dlp and other compatible video downloaders.

It is partly based on youtube-dl-gui and is written in Python 3 / Gtk 3. Tartube runs on MS Windows, Linux, BSD and MacOS.

  • You can fetch a list of videos from your favourite channels and playlists on YouTube, BitChute, and hundreds of other websites (see here for a full list)
  • If buffering is an issue, you can download a temporary copy of a video before automatically opening it in your favourite media player
  • Tartube will organise your videos into convenient folders (if that’s what you want)
  • Tartube can alert you when livestreams and debut videos are starting (YouTube only)
  • If creators upload their videos to more than one website (YouTube and BitChute, for example), Tartube can interact with both sites without creating duplicates
  • Certain websites operate an «only one opinion allowed» policy. If you think that the censors will remove a video, against the wishes of its creators and before you’ve had a chance to watch it, Tartube can make an archive copy
  • Certain websites frequently place restrictions on a video, not because it is unsuitable for some audiences, but for purely political reasons. Tartube can, in some circumstances, see videos that are region-blocked and/or age-restricted
  • Certain websites manipulate search results, repeatedly unsubscribe people from their favourite channels and/or deliberately conceal videos that they don’t like. Tartube won’t do any of those things
  • If you want to listen to your favourite discussion videos, for example while driving a car, Tartube can make an archive copy of just the audio, rather than the full video
  • Tartube is free and open-source software

FluTube (Linux only)

Youtube video client made using flutter.

Features:

  • Beautiful user interface
  • Lightweight and fast
  • No Login Required
  • Keep your liked videos and comments
  • Playlists support
  • Download videos, audios and thumbnails
  • Ads free forever
  • Free libre and open source (FLOSS)

HackUp (Linux only)

Read Hacker News from the desktop.

Giara (Linux only)

Giara is a reddit app, built with Python, GTK and Handy. Created with mobile Linux in mind.

youtube-dl and ffmpeg Windows Explorer Integration (Windows only)

Download videos from YouTube/Twitch/Twitter and more (any platform that is supported by youtube-dl) right in the Windows Explorer, without installing any shady shareware apps.

Extremely handy app to download videos wherever you want.

DownZemAll

DownZemAll! is a mass download manager for Windows, Mac OS X and Linux. It helps you to select, organize, prioritize and run your downloads in parallel.

Based on the Qt5 framework, DownZemAll! is written in C/C++. It’s a free (as in “free speech” and also as in “free beer”) software. Its use is governed by LGPL License.

DownRightNow is an add-on for Chrome/Firefox**. It connects DownZemAll! with your web browser. This extension helps you to download all the links and media you can find on the Web. When you visit a page, click to DownRightNow to see the content of the page. The content are links, references, images, videos… and other media present on the page.

GTK fans can try uGet Download Manager. After installing the uget-integrator and this extension you can use it as the default download manager in Firefox.

Jdownloader

JDownloader is a free, open-source download management tool with a huge community of developers that makes downloading as easy and fast as it should be. Users can start, stop or pause downloads, set bandwith limitations, auto-extract archives and much more. It’s an easy-to-extend framework that can save hours of your valuable time every day.

Offers downloading in multiple parallel streams, CAPTCHA recognition, and automatic file extraction, and Download Youtube Playlist with Quality and Filetype Options

NOTE: Be sure to download with the link provided above, as this is the adware free installer.

You can also check FireDM, a download maanger fully written in Python.

media-downloader

This project is a Qt/C++ based GUI frontend to CLI multiple CLI based tools that deal with downloading online media.

yt-dlp CLI tool is the default supported tool and other tools can be added by downloading their extension and a list of supported extensions is managed here.

Features offered:

  1. The GUI can be used to download any media from any website supported by installed extensions.

  2. The GUI offers a configurable list of preset options that can be used to download media if they are provided in multiple formats.

  3. The GUI offers an ability to do unlimited number of parallel downloads. Be careful with this ability because doing too many parallel downloads may cause the host to ban you.

  4. The GUI offers an ability to do batch downloads by entering individual link in the UI or telling the app to read them from a local file.

  5. The GUI offers an ability to download playlist from websites that supports them like youtube.

  6. The GUI offers ability to manage links to playlist to easily monitor their activities(subscriptions).

  7. The GUI is offered in multiple languages and as of this writing, the supported languages are English, Chinese, Spanish, Polish, Turkish, Russian and Japanese.

ytDownloader

A modern GUI video and audio downloader supporting hundreds of sites.

Features:

✅ Light/Dark mode

✅ Supports hundreds of sites including Youtube, Facebook, Instagram, Tiktok, Twitter and so on.

✅ Advanced options like Range Selection

✅ Available on Windows and Linux

✅ Fast download speeds

✅ And of-course no trackers or ads

Spotube

A lightweight free Spotify crossplatform-client (desktop: Mac, Linux, Windows, mobile: Android) which handles playback manually, streams music using Youtube & no Spotify premium account is needed.

Features:
Open Source
Anonymous/Guest Login
Cross platform
No telemetry, diagnostics or user data collection
Lightweight & resource friendly
Native performance (Thanks to Flutter+Skia)
Playback control is on user’s machine instead of server based
Small size & less data hungry
No spotify or youtube ads since it uses all public & free APIs (But it’s recommended to support the creators by watching/liking/subscribing to the artists youtube channel or add as favourite track in spotify. Mostly buying spotify premium is the best way to support their valuable creations)
Synced Lyrics
* Downloadable track

Spotiflyer

SpotiFlyer is an App(Written in Kotlin), which aims to work as:

  • Downloads: Albums, Tracks and Playlists,etc
  • Save your Data ,by not Streaming your Fav Songs Online again & again(Just Download Them!)
  • No ADS!
  • Works straight out of the box and does not require you to generate or mess with your API keys (already included).

Supported Platforms:

  • Spotify
  • Gaana
  • Youtube
  • Youtube Music
  • Jio-Saavn
  • SoundCloud

Software Development

VSCodium

Free/Libre Open Source Software Binaries of Microsoft’s Visual Studio Code.

Microsoft’s downloads of Visual Studio Code are licensed under this not-FLOSS license and contain telemetry/tracking.

This repo exists so that you don’t have to download+build from source. The build scripts in this repo clone Microsoft’s vscode repo, run the build commands, and upload the resulting binaries to GitHub releases. These binaries are licensed under the MIT license. Telemetry is enabled by a build flag which we do not pass.

VSCode itself is one of the best IDEs currently available, and I think it is the best open source IDE out there. Offering hundreds of extensions, you could transform it a tailor-made solution, fitting perfectly your personal needs.

It is made with the Electron framweork, which is known for being memory heavy, slow and unresponsive, but apparently Microsoft managed to make an electron app that does not suck and is fast and responsive.

Be sure to visit its extensions Marketplace.

You shoould also check the (Open VSX Registry](https://open-vsx.org/), the open version of the extensions marketplace.

Here you can find a recommended list of VSCode extensions.

Notepad++ (Windows only)

Notepad++ is a free (as in «free speech» and also as in «free beer») source code editor and Notepad replacement that supports several languages.

Based on the powerful editing component Scintilla, Notepad++ is written in C++ and uses pure Win32 API and STL which ensures a higher execution speed and smaller program size.

Kate

Kate is a multi-document editor part of KDE since release 2.2. Being a KDE applications, Kate ships with network transparency, as well as integration with the outstanding features of KDE. Choose it for viewing HTML sources from konqueror, editing configuration files, writing new applications or any other text editing task. You still need just one running instance of Kate.

Notepadqq (Linux only)

Notepadqq is the best simple GUI text editor available for Linux. In an essence it strives to be a clone of Notepad++. Designed from developers, for developers. With its more than 100 supported languages, it is the ideal text editor for your daily tasks. Notepadqq gives you a hand with multiple selection, regular expression searches, and real-time highlighting.

Meld

Meld is a visual diff and merge tool targeted at developers. Meld helps you compare files, directories, and version controlled projects.

Meld helps you review code changes and understand patches. It might even help you to figure out what is going on in that merge you keep avoiding.

Features:

  • Two- and three-way comparison of files and directories
  • File comparisons update as you type
  • Auto-merge mode and actions on change blocks help make merges easier
  • Visualisations make it easier to compare your files
  • Supports Git, Bazaar, Mercurial, Subversion, etc.
  • and more

As an alternative you can also look at KDiff3. Here is the Windows installer.

Zeal

Zeal is an offline documentation browser for software developers.

RegEx Tester (Linux only)

A simple GUI regex tester.

RStudio

RStudio is an integrated development environment (IDE) for R. It includes a console, syntax-highlighting editor that supports direct code execution, as well as tools for plotting, history, debugging and workspace management.

Features:

  • Access RStudio locally
  • Syntax highlighting, code completion, and smart indentation
  • Execute R code directly from the source editor
  • Quickly jump to function definitions
  • Easily manage multiple working directories using projects
  • Integrated R help and documentation
  • Interactive debugger to diagnose and fix errors quickly
  • Extensive package development tools

Click here to see more RStudio features.

Alternatively you could also try RKWard.

Command Line Tools

There are plenty of awesome CLI applications out there. If you are a person who uses them, you probably know what’s the best for you.

The ones below are only a handful of the most interesting tools, which are not mainstream (as much as a CLI app can be mainstream) and yet can be extremely useful — also for people who do not spend their time in terminal.

If you would like to explore the world of command line applications further, be sure to visit: Terminals are sexy.

Magic Wormhole

Get things from one computer to another, safely.

This package provides a library and a command-line tool named wormhole, which makes it possible to get arbitrary-sized files and directories (or short pieces of text) from one computer to another. The two endpoints are identified by using identical «wormhole codes»: in general, the sending machine generates and displays the code, which must then be typed into the receiving machine.

The codes are short and human-pronounceable, using a phonetically-distinct wordlist. The receiving side offers tab-completion on the codewords, so usually only a few characters must be typed. Wormhole codes are single-use and do not need to be memorized.

For complete documentation, please see the here.

croc

croc is a tool that allows any two computers to simply and securely transfer files and folders. AFAIK, croc is the only CLI file-transfer tool that does all of the following:

  • allows any two computers to transfer data (using a relay)
  • provides end-to-end encryption (using PAKE)
  • enables easy cross-platform transfers (Windows, Linux, Mac)
  • allows multiple file transfers
  • allows resuming transfers that are interrupted
  • local server or port-forwarding not needed
  • ipv6-first with ipv4 fallback

scrcpy

This application provides display and control of Android devices connected on USB (or over TCP/IP). It does not require any root access. It works on GNU/Linux, Windows and macOS.

It focuses on:

  • lightness (native, displays only the device screen)
  • performance (30~60fps)
  • quality (1920×1080 or above)
  • low latency (35~70ms)
  • low startup time (~1 second to display the first image)
  • non-intrusiveness (nothing is left installed on the device)

There’s also w GUI fork: guiscrcpy, buy it requires the original scrcpy files to be present on the system.

ffsend

Easily and securely share files and directories from the command line through a safe, private and encrypted link using a single simple command. Files are shared using the Firefox Send service and may be up to 2GB. Others are able to download these files with this tool, or through their web browser.

Features:

  • Fully featured and friendly command line tool
  • Upload and download files and directories securely
  • Always encrypted on the client
  • Additional password protection, generation and configurable download limits
  • Supports old and new Firefox Send server versions
  • File and directory archiving and extraction
  • History tracking your files for easy management
  • Ability to use custom Send hosts
  • Inspect or delete shared files
  • Accurate error reporting
  • Streaming encryption and uploading/downloading, very low memory footprint
  • Intended for use in scripts without interaction
  • Upcoming: Firefox Account integration (higher download counts, longer expiry times)

The xonsh shell

Xonsh is a Python-powered, cross-platform, Unix-gazing shell language and command prompt. The language is a superset of Python 3.4+ with additional shell primitives that you are used to from Bash and IPython. It works on all major systems including Linux, Mac OSX, and Windows. Xonsh is meant for the daily use of experts and novices alike.

The Fuck

Magnificent app which corrects your previous console command.

topgrade

Keeping your system up to date usually involves invoking multiple package managers. This results in big, non-portable shell one-liners saved in your shell. To remedy this, topgrade detects which tools you use and runs the appropriate commands to update them.

Needl

Take back your privacy. Lose yourself in the haystack.

Your ISP is most likely tracking your browsing habits and selling them to marketing agencies (albeit anonymised). Or worse, making your browsing history available to law enforcement at the hint of a Subpoena. Needl will generate random Internet traffic in an attempt to conceal your legitimate traffic, essentially making your data the Needle in the haystack and thus harder to find. The goal is to make it harder for your ISP, government, etc to track your browsing history and habits.

Implemented modules:

  • Google: generates a random search string, searches Google and clicks on a random result.
  • Alexa: visits a website from the Alexa Top 1 Million list. (warning: contains a lot of porn websites)
  • Twitter: generates a popular English name and visits their profile; performs random keyword searches
  • DNS: produces random DNS queries from the Alexa Top 1 Million list.
  • Spotify: random searches for Spotify artists

MAT2: Metadata Anonymisation Toolkit

mat2 is a metadata removal tool, supporting a wide range of commonly used file formats, written in python3: at its core, it’s a library, used by an eponymous command-line interface, and a nautilus extension.

Metadata consist of information that characterizes data. Metadata are used to provide documentation for data products. In essence, metadata answer who, what, when, where, why, and how about every facet of the data that are being documented.

Metadata within a file can tell a lot about you. Cameras record data about when a picture was taken and what camera was used. Office documents like PDF or Office automatically adds author and company information to documents and spreadsheets. Maybe you don’t want to disclose those information on the web.

This is precisely the job of MAT2: getting rid, as much as possible, of metadata.

Maza ad blocking (Linux only)

Simple, native and efficient local advertising blocker. Compatible with OSX and Linux.

  • You don’t have to install any browser extensions or applications, you just use the tools of your operating system.
  • You update the list of DNS to be blocked with a single stroke.
  • Opensource.
  • Just bash.

BeGoneAds

BeGoneAds is a script that puts some popular hosts file lists into the systems hosts file as a adblocker measure.

Lux

Lux is a fast and simple video downloader built with Go. Much simpler and user friendly alternative to youtube-dl.

yt-dlp

yt-dlp is a youtube-dl fork based on the now inactive youtube-dlc. The main focus of this project is adding new features and patches while also keeping up to date with the original project

Streamlink

Streamlink is a CLI utility which pipes video streams from various services into a video player, such as VLC.

The main purpose of streamlink is to avoid resource-heavy and unoptimized websites, while still allowing the user to enjoy various streamed content.

Streamlink is a fork of the Livestreamer project.

Please note that by using this application you’re bypassing ads run by sites such as Twitch.tv. Please consider donating or paying for subscription services when they are available for the content you consume and enjoy.

Cmder (Windows only)

Cmder is a software package created out of pure frustration over the absence of nice console emulators on Windows. It isbased on amazing software, and spiced up with the Monokai color scheme and a custom prompt layout, looking sexy from the start.

just-install

just-install is a simple program which automates software installation on Windows. It tries to do one simple thing and do it well: download a setup.exe and install it, silently.

ExifTool

ExifTool is a platform-independent Perl library plus a command-line application for reading, writing and editing meta information in a wide variety of files. ExifTool supports many different metadata formats including EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP and ID3, Lyrics3, as well as the maker notes of many digital cameras by Canon, Casio, DJI, FLIR, FujiFilm, GE, GoPro, HP, JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Motorola, Nikon, Nintendo, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Phase One, Reconyx, Ricoh, Samsung, Sanyo, Sigma/Foveon and Sony.


Similar posts:

Mobile Apps

Firefox Extensions

Thunderbird Extensions

Visual Studio Code Extensions

«Multi-platform» redirects here. For the mode of storytelling in television, see multi-platform television.

In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms.[1] Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.[2]

For example, a cross-platform application may run on Microsoft Windows, Linux, and macOS. Cross-platform software may run on many platforms, or as few as two. Some frameworks for cross-platform development are Codename One, Kivy, Qt, Flutter, NativeScript, Xamarin, Phonegap, Ionic, and React Native.[3]

PlatformsEdit

Platform can refer to the type of processor (CPU) or other hardware on which an operating system (OS) or application runs, the type of OS, or a combination of the two.[4] An example of a common platform is the Microsoft Windows OS running on the x86 architecture. Other well-known desktop platforms are Linux/Unix and macOS — both of which are themselves cross-platform.[4] There are, however, many devices such as smartphones that are also platforms. Applications can be written to depend on the features of a particular platform—either the hardware, OS, or virtual machine (VM) it runs on. For example, the Java platform is a common VM platform which runs on many OSs and hardware types.[5]

Hardware Edit

A hardware platform can refer to an instruction set architecture. For example: x86 architecture and its variants such as IA-32 and x86-64. These machines often run one version of Microsoft Windows,[6] though they can run other OSs including Linux, OpenBSD, NetBSD, macOS and FreeBSD.

The 32-bit ARM architectures (and newer 64-bit version) is common on smartphones and tablet computers, which run Android, iOS and other mobile operating systems.

Software Edit

A software platform can be either an OS or programming environment, though more commonly it is a combination of both. An exception is Java, which uses an OS-independent VM to execute Java bytecode. Examples of software platforms are:

  • BlackBerry 10
  • Android for smartphones and tablet computers (x86, ARM)
  • iOS (ARM)
  • Microsoft Windows (x86, ARM)
    • Microsoft’s Common Language Infrastructure (CLI), also known as .NET Framework
    • Cross-platform variant Mono (previously by Novell and now by Xamarin[7])
  • Java
  • Web browsers – more or less compatible with each other, running JavaScript web-apps
  • Linux (x86, PowerPC, ARM, and other architectures)
  • macOS (x86, PowerPC (on 10.5 and below), and ARM[8] (on Apple silicon or 11.0 and above))
  • Mendix
  • Solaris (SPARC, x86)
  • SymbianOS
  • SPARC
  • PlayStation 4 (x86), PlayStation 3 (PowerPC) and PlayStation Vita (ARM)
  • Unix
  • Xbox
Minor/historical
  • AmigaOS (m68k), AmigaOS 4 (PowerPC), AROS (x86, PowerPC, m68k), MorphOS (PowerPC)
  • Atari TOS, MiNT
  • BSD (many platforms; see NetBSDnet,[clarification needed] for example)
  • DOS-type systems on the x86: MS-DOS, PC DOS, DR-DOS, FreeDOS
  • OS/2, eComStation

Java Edit

The Java language is typically compiled to run on a VM that is part of the Java platform. The Java VM (JVM) is a CPU implemented in software, which runs all Java code. This enables the same code to run on all systems that implement a JVM. Java software can be executed by a hardware-based Java processor. This is used mostly in embedded systems.

Java code running in the JVM has access to OS-related services, like disk I/O and network access, if the appropriate privileges are granted. The JVM makes the system calls on behalf of the Java application. This lets users to decide the appropriate protection level, depending on an ACL. For example, disk and network access is usually enabled for desktop applications, but not for browser-based applets. The Java Native Interface (JNI) can also be used to access OS-specific functions, with a loss of portability.

Currently, Java Standard Edition software can run on Microsoft Windows, macOS, several Unix-like OSs, and several real-time operating systems for embedded devices. For mobile applications, browser plugins are used for Windows and Mac based devices, and Android has built-in support for Java. There are also subsets of Java, such as Java Card or Java Platform, Micro Edition, designed for resource-constrained devices.

Implementation Edit

For software to be considered cross-platform, it must function on more than one computer architecture or OS. Developing such software can be a time-consuming task because different OSs have different application programming interfaces (API). For example, Linux uses a different API from Windows.

Software written for one OS may not automatically work on all architectures that OS supports. One example is OpenOffice.org, which in 2006 did not natively run on AMD64 or Intel 64 processors implementing the x86-64 standards; by 2012 it was «mostly» ported to these systems.[9] Just because software is written in a popular programming language such as C or C++, it does not mean it will run on all OSs that support that language—or even on different versions of the same OS.

Web applicationsEdit

Web applications are typically described as cross-platform because, ideally, they are accessible from any web browser: the browser is the platform. Web applications generally employ a client–server model, but vary widely in complexity and functionality. It can be hard to reconcile the desire for features with the need for compatibility.

Basic web applications perform all or most processing from a stateless server, and pass the result to the client web browser. All user interaction with the application consists of simple exchanges of data requests and server responses. This type of application was the norm in the early phases of World Wide Web application development. Such applications follow a simple transaction model, identical to that of serving static web pages. Today, they are still relatively common, especially where cross-platform compatibility and simplicity are deemed more critical than advanced functionality.

Prominent examples of advanced web applications include the Web interface to Gmail, A9.com, Google Maps website, and the Live Search service (now Bing) from Microsoft. Such applications routinely depend on additional features found only in the more recent versions of popular web browsers. These features include Ajax, JavaScript, Dynamic HTML, SVG, and other components of rich web applications. Older versions often lack these.

Design Edit

Because of the competing interests of compatibility and functionality, numerous design strategies have emerged.

Many software systems use a layered architecture where platform-dependent code is restricted to the upper- and lowermost layers.

Graceful degradationEdit

Graceful degradation attempts to provide the same or similar functionality to all users and platforms, while diminishing that functionality to a least common denominator for more limited client browsers. For example, a user attempting to use a limited-feature browser to access Gmail may notice that Gmail switches to basic mode, with reduced functionality but still of use.

Multiple codebasesEdit

Some software is maintained in distinct codebases for different (hardware and OS) platforms, with equivalent functionality. This requires more effort to maintain the code, but can be worthwhile where the amount of platform-specific code is high.

Single codebaseEdit

This strategy relies on having one codebase that may be compiled to multiple platform-specific formats. One technique is conditional compilation. With this technique, code that is common to all platforms is not repeated. Blocks of code that are only relevant to certain platforms are made conditional, so that they are only interpreted or compiled when needed. Another technique is separation of functionality, which disables functionality not supported by browsers or OSs, while still delivering a complete application to the user. (See also: Separation of concerns.) This technique is used in web development where interpreted code (as in scripting languages) can query the platform it is running on to execute different blocks conditionally.[10]

Third-party librariesEdit

Third-party libraries attempt to simplify cross-platform capability by hiding the complexities of client differentiation behind a single, unified API, at the expense of vendor lock-in.

Responsive web designEdit

Responsive web design (RWD) is a Web design approach aimed at crafting the visual layout of sites to provide an optimal viewing experience—easy reading and navigation with a minimum of resizing, panning, and scrolling—across a wide range of devices, from mobile phones to desktop computer monitors. Little or no platform-specific code is used with this technique.

Testing Edit

Cross-platform applications need much more integration testing. Some web browsers prohibit installation of different versions on the same machine. There are several approaches used to target multiple platforms, but all of them result in software that requires substantial manual effort for testing and maintenance.[11] Techniques such as full virtualization are sometimes used as a workaround for this problem.

Tools such as the Page Object Model allow cross-platform tests to be scripted so that one test case covers multiple versions of an app. If different versions have similar user interfaces, all can be tested with one test case.

Traditional applicationsEdit

Web applications are becoming increasingly popular but many computer users still use traditional application software which does not rely on a client/web-server architecture. The distinction between traditional and web applications is not always clear. Features, installation methods and architectures for web and traditional applications overlap and blur the distinction. Nevertheless, this simplifying distinction is a common and useful generalization.

Binary softwareEdit

Traditional application software has been distributed as binary files, especially executable files. Executables only support platform they were built for—which means that a single cross-platform executable could be very bloated with code that never executes on a particular platform. Instead, generally there is a selection of executables, each built for one platform.

For software that is distributed as a binary executable, such as that written in C or C++, there must be a software build for each platform, using a toolset that translates—transcompiles—a single codebase into multiple binary executables. For example, Firefox, an open-source web browser, is available on Windows, macOS (both PowerPC and x86 through what Apple Inc. calls a Universal binary), Linux, and BSD on multiple computer architectures. The four platforms (in this case, Windows, macOS, Linux, and BSD) are separate executable distributions, although they come largely from the same source code. In rare cases, executable code built for several platforms is combined into a single executable file called a fat binary.

The use of different toolsets may not be enough to build a working executables for different platforms. In this case, programmers must port the source code to the new platform. For example, an application such as Firefox, which already runs on Windows on the x86 family, can be modified and re-built to run on Linux on the x86 (and potentially other architectures) as well. The multiple versions of the code may be stored as separate codebases, or merged into one codebase.

An alternative to porting is cross-platform virtualization, where applications compiled for one platform can run on another without modification of the source code or binaries. As an example, Apple’s Rosetta, which is built into Intel-based Macintosh computers, runs applications compiled for the previous generation of Macs that used PowerPC CPUs. Another example is IBM PowerVM Lx86, which allows Linux/x86 applications to run unmodified on the Linux/Power OS.

Example of cross-platform binary software:

  • The LibreOffice office suite is built for Microsoft Windows, macOS, many Linux distributions, FreeBSD, NetBSD, OpenBSD, Android, iOS, iPadOS, ChromeOS, web-based Collabora Online and many others.[12][13] Many of these are supported on several hardware platforms with processor architectures including IA-32, x86-64, ARM (ARMel, ARMhf, ARM64), MIPS, MIPSel, PowerPC, ppc64el, and S390x[9][14]

Scripts and interpreted languagesEdit

A script can be considered to be cross-platform if its interpreter is available on multiple platforms and the script only uses the facilities built into the language. For example, a script written in Python for a Unix-like system will likely run with little or no modification on Windows, because Python also runs on Windows; indeed there are many implementations (e.g. IronPython for .NET Framework). The same goes for many of the open-source scripting languages.

Unlike binary executable files, the same script can be used on all computers that have software to interpret the script. This is because the script is generally stored in plain text in a text file. There may be some trivial issues, such as the representation of a new line character.

Some popular cross-platform scripting languages are:

  • bash – A Unix shell commonly run on Linux and other modern Unix-like systems, as well as on Windows via the Cygwin POSIX compatibility layer.
  • Perl – First released in 1987. Used for CGI programming, small system administration tasks, and more.
  • PHP – Mostly used for web applications.
  • Python – A language which focuses on rapid application development and ease of writing, instead of run-time efficiency.
  • Ruby – An object-oriented language which aims to be easy to read. Can also be used on the web through Ruby on Rails.
  • Tcl – A dynamic programming language, suitable for a wide range of uses, including web and desktop applications, networking, administration, testing and many more.

Video gamesEdit

Cross-platform or multi-platform is a term that can also apply to video games released on a range of video game consoles. Examples of cross-platform games include: Miner 2049er, Tomb Raider: Legend, FIFA series, NHL series and Minecraft.

Each has been released across a variety of gaming platforms, such as the Wii, PlayStation 3, Xbox 360, personal computers, and mobile devices.

Some platforms are harder to write for than others. To offset this, a video game may be released on a few platforms first, then later on others. Typically, this happens when a new gaming system is released, because video game developers need to acquaint themselves with its hardware and software.

Some games may not be cross-platform because of licensing agreements between developers and video game console manufacturers that limit development to one particular console. As an example, Disney could create a game with the intention of release on the latest Nintendo and Sony game consoles. Should Disney license the game with Sony first, it may be required to release the game solely on Sony’s console for a short time or indefinitely.

Cross-platform playEdit

Several developers have implemented ways to play games online while using different platforms. Psyonix, Epic Games, Microsoft, and Valve all possess technology that allows Xbox 360 and PlayStation 3 gamers to play with PC gamers, leaving the decision of which platform to use to consumers. The first game to allow this level of interactivity between PC and console games was Quake 3.[15]

Games that feature cross-platform online play include Rocket League, Final Fantasy XIV, Street Fighter V, Killer Instinct, Paragon and Fable Fortune, and Minecraft with its Better Together update on Windows 10, VR editions, Pocket Edition and Xbox One.

Programming Edit

Cross-platform programming is the practice of deliberately writing software to work on more than one platform.

Approaches Edit

There are different ways to write a cross-platform application. One approach is to create multiple versions of the same software in different source trees—in other words, the Microsoft Windows version of an application might have one set of source code files and the Macintosh version another, while a FOSS *nix system might have a third. While this is straightforward, compared to developing for only one platform it can cost much more to pay a larger team or release products more slowly. It can also result in more bugs to be tracked and fixed.

Another approach is to use software that hides the differences between the platforms. This abstraction layer insulates the application from the platform. Such applications are platform agnostic. Applications that run on the JVM are built this way.

Some applications mix various methods of cross-platform programming to create the final application. An example is the Firefox web browser, which uses abstraction to build some of the lower-level components, with separate source subtrees for implementing platform-specific features (like the GUI), and the implementation of more than one scripting language to ease software portability. Firefox implements XUL, CSS and JavaScript for extending the browser, in addition to classic Netscape-style browser plugins. Much of the browser itself is written in XUL, CSS, and JavaScript.

Toolkits and environmentsEdit

There are many tools[16][17] available to help the process of cross-platform programming:

  • 8th: a development language which utilizes Juce as its GUI layer. It currently supports Android, iOS, Windows, macOS, Linux and Raspberry Pi.
  • Anant Computing: A mobile application platform that works in all Indian languages, including their keyboards, and also supports AppWallet and native performance in all OSs.
  • AppearIQ: a framework that supports the workflow of app development and deployment in an enterprise environment. Natively developed containers present hardware features of the mobile devices or tablets through an API to HTML5 code thus facilitating the development of mobile apps that run on different platforms.
  • Boden: a UI framework written in C++.
  • Cairo: a free software library used to provide a vector graphics-based, device-independent API. It is designed to provide primitives for 2-dimensional drawing across a number of different backends. Cairo is written in C and has bindings for many programming languages.
  • Cocos2d: an open-source toolkit and game engine for developing 2D and simple 3D cross-platform games and applications.
  • Codename One: an open-source Write Once Run Anywhere (WORA) framework for Java and Kotlin developers.
  • Delphi: an IDE which uses a Pascal-based language for development. It supports Android, iOS, Windows, macOS, Linux.
  • Ecere SDK: a GUI and 2D/3D graphics toolkit and IDE, written in eC and with support for additional languages such as C and Python. It supports Linux, FreeBSD, Windows, Android, macOS and the Web through Emscripten or Binaryen (WebAssembly).
  • Eclipse: an open-source development environment. Implemented in Java with a configurable architecture which supports many tools for software development. Add-ons are available for several languages, including Java and C++.
  • FLTK: an open-source toolkit, but more lightweight because it restricts itself to the GUI.
  • Flutter: A cross-platform UI framework for Android and iOS developed by Google.
  • fpGUI: An open-source widget toolkit that is completely implemented in Object Pascal. It currently supports Linux, Windows and a bit of Windows CE.
  • GeneXus: A Windows rapid software development solution for cross-platform application creation and deployment based on knowledge representation and supporting C#, COBOL, Java including Android and BlackBerry smart devices, Objective-C for Apple mobile devices, RPG, Ruby, Visual Basic, and Visual FoxPro.
  • GLBasic: A BASIC dialect and compiler that generates C++ code. It includes cross compilers for many platforms and supports numerous platform (Windows, Mac, Linux, Android, iOS and some exotic handhelds).
  • Godot: an SDK which uses Godot Engine.
  • GTK+: An open-source widget toolkit for Unix-like systems with X11 and Microsoft Windows.
  • Haxe: An open-source language.
  • Juce: An application framework written in C++, used to write native software on numerous systems (Microsoft Windows, POSIX, macOS), with no change to the code.
  • Kivy: an open-source cross-platform UI framework written in Python. It supports Android, iOS, Linux, OS X, Windows and Raspberry Pi.
  • LEADTOOLS: Cross-platform SDK libraries to integrate recognition, document, medical, imaging, and multimedia technologies into Windows, iOS, macOS, Android, Linux and web applications.[18]
  • LiveCode: a commercial cross-platform rapid application development language inspired by HyperTalk.
  • Lazarus: A programming environment for the FreePascal Compiler. It supports the creation of self-standing graphical and console applications and runs on Linux, MacOSX, iOS, Android, WinCE, Windows and WEB.
  • Max/MSP: A visual programming language that encapsulates platform-independent code with a platform-specific runtime environment into applications for macOS and Windows A cross-platform Android runtime. It allows unmodified Android apps to run natively on iOS and macOS
  • Mendix: a cloud-based low-code application development platform.
  • MonoCross: an open-source model–view–controller design pattern where the model and controller are cross-platform but the view is platform-specific.[19]
  • Mono: An open-source cross-platform version of Microsoft .NET (a framework for applications and programming languages)
  • MoSync: an open-source SDK for mobile platform app development in the C++ family.
  • Mozilla application framework: an open-source platform for building macOS, Windows and Linux applications.
  • A cross-platform JavaScript/TypeScript framework for Android and iOS development.
  • OpenGL: a 3D graphics library.
  • Pixel Game Maker MV: A proprietary 2D game development software for Windows for developing Windows and Nintendo Switch games.
  • PureBasic: a proprietary language and IDE for building macOS, Windows and Linux applications.
  • ReNative: The universal development SDK to build multi-platform projects with React Native. Includes latest iOS, tvOS, Android, Android TV, Web, Tizen TV, Tizen Watch, LG webOS, macOS/OSX, Windows, KaiOS, Firefox OS and Firefox TV platforms.
  • Qt: an application framework and widget toolkit for Unix-like systems with X11, Microsoft Windows, macOS, and other systems—available under both proprietary and open-source licenses.
  • Simple and Fast Multimedia Library: A multimedia C++ API that provides low and high level access to graphics, input, audio, etc.
  • Simple DirectMedia Layer: an open-source multimedia library written in C that creates an abstraction over various platforms’ graphics, sound, and input APIs. It runs on OSs including Linux, Windows and macOS and is aimed at games and multimedia applications.
  • Smartface: a native app development tool to create mobile applications for Android and iOS, using WYSIWYG design editor with JavaScript code editor.
  • Tcl/Tk
  • Titanium Mobile: open source cross-platform framework for Android and iOS development.
  • Ultimate++: a C++ rapid application development framework focused on programmers productivity. It includes a set of libraries (GUI, SQL, etc..), and an integrated development environment. It supports Windows and Unix-like OS-s.
  • Unity: Another cross-platform SDK which uses Unity Engine.
  • Uno Platform: Windows, macOS, iOS, Android, WebAssembly and Linux using C#.
  • Unreal: A cross-platform SDK which uses Unreal Engine.
  • V-Play Engine: V-Play is a cross-platform development SDK based on the popular Qt framework. V-Play apps and games are created within Qt Creator.
  • WaveMaker: A low-code development tool to create responsive web and hybrid mobile (Android & iOS) applications.
  • WinDev: an Integrated Development Environment for Windows, Linux, .Net and Java, and web browers. Optimized for business and industrial applications.
  • wxWidgets: an open-source widget toolkit that is also an application framework.[20] It runs on Unix-like systems with X11, Microsoft Windows and macOS.
  • Xojo: a RAD IDE that uses an object-oriented programming language to create desktop, web and iOS apps. Xojo makes native, compiled desktop apps for macOS, Windows, Linux and Raspberry Pi. It creates compiled web apps that can be run as standalone servers or through CGI. And it recently added the ability to create native iOS apps.

Challenges Edit

There are many challenges when developing cross-platform software.

  • Testing cross-platform applications may be considerably more complicated, since different platforms can exhibit slightly different behaviors or subtle bugs. This problem has led some developers to deride cross-platform development as «write once, debug everywhere», a take on Sun Microsystems’ «write once, run anywhere» marketing slogan.
  • Developers are often restricted to using the lowest common denominator subset of features which are available on all platforms. This may hinder the application’s performance or prohibit developers from using the most advanced features of each platform.
  • Different platforms often have different user interface conventions, which cross-platform applications do not always accommodate. For example, applications developed for macOS and GNOME are supposed to place the most important button on the right-hand side of a window or dialog, whereas Microsoft Windows and KDE have the opposite convention. Though many of these differences are subtle, a cross-platform application which does not conform to these conventions may feel clunky or alien to the user. When working quickly, such opposing conventions may even result in data loss, such as in a dialog box confirming whether to save or discard changes.
  • Scripting languages and VM bytecode must be translated into native executable code each time they are used, imposing a performance penalty. This penalty can be alleviated using techniques like just-in-time compilation; but some computational overhead may be unavoidable.
  • Different platforms require the use of native package formats such as RPM and MSI. Multi-platform installers such as InstallAnywhere address this need.
  • Cross-platform execution environments may suffer cross-platform security flaws, creating a fertile environment for cross-platform malware.[21]

See alsoEdit

  • Cross-platform play
  • Hardware-agnostic
  • Software portability
  • List of video games that support cross-platform play
  • List of widget toolkits
  • Hardware virtualization
  • Java (software platform)
  • Language binding
  • Transcompiler
  • Binary-code compatibility
  • Xamarin
  • Comparison of user features of messaging platforms
  • Mobile development frameworks, many of which are cross-platform.

ReferencesEdit

  1. ^ «Design Guidelines: Glossary». java.sun.com. Retrieved 2011-10-19.
  2. ^ «SDD Technology blog: Definition of cross platform». SDD Technology. Retrieved 2020-10-18.
  3. ^ Lee P Richardson (2016-02-16). «Xamarin vs Ionic: A Mobile, Cross Platform, Shootout».
  4. ^ a b «Platform Definition». The Linux Information Project. Retrieved 2014-03-27.
  5. ^ «Cross Platform Mobile App Development». Groovy Web. Retrieved 2020-03-27.
  6. ^ On the Net Marketshare website, which has around 89% market share as of March 2011
  7. ^ «About Mono». mono-project.com. Retrieved 2015-12-17.
  8. ^ «Apple announces Mac transition to Apple silicon». Apple Newsroom. Retrieved 2020-12-08.
  9. ^ Porting to x86-64 (AMD64, EM64T) – Apache OpenOffice Wiki. Wiki.services.openoffice.org (2012-06-22). Retrieved on 2013-07-17.
  10. ^ Corti, Sascha P. (October 2011). «Browser and Feature Detection». MSDN Magazine. Retrieved 28 January 2014.
  11. ^ Choudhary, S.R. (2014). «Cross-platform testing and maintenance of web and mobile applications». Companion Proceedings of the 36th International Conference on Software Engineering — ICSE Companion 2014: 642–645. doi:10.1145/2591062.2591097. hdl:1853/53588. ISBN 9781450327688. S2CID 1903037.
  12. ^ Mehrotra, Pranob (2020-12-01). «Collabora Office suite gets a new layout for Android tablets and Chromebooks». XDA-Developers. Retrieved 2021-01-15. Collabora Office is a popular open-source alternative to the Microsoft Office suite. It’s based on LibreOffice, and it’s available on a variety of platforms, including Windows, Linux, iOS, and Android. This year in July, a major update for the office suite brought support for Chrome OS devices.{{cite news}}: CS1 maint: url-status (link)
  13. ^ «Collabora Office on iOS and Android Just got Better!». Adfinis. 2020-12-15. Retrieved 2021-01-15. …touch optimized interfaces: one for tablets and one for phone screens. …(iOS, iPadOS, Chromebooks, Android).{{cite news}}: CS1 maint: url-status (link)
  14. ^ «Nextcloud Ubuntu Appliance adds Collabora Online to Raspberry Pi image». MuyLinux. 2021-03-26. Retrieved 2021-03-30. the first viable self-hosted web office solution for the popular Raspberry Pi 4 platform{{cite news}}: CS1 maint: url-status (link)
  15. ^ Cribba. Quake III Arena, Giant Bombcast, February 15, 2013.
  16. ^ The GUI Toolkit, Framework Page
  17. ^ «Platform Independent FAQ». Archived from the original on 2008-08-16. Retrieved 2009-04-25.
  18. ^ «Cross-Platform SDK Libraries for Recognition, Document, Medical, Imaging, and Multimedia». www.leadtools.com. Retrieved 2021-03-03.
  19. ^ «12 benefits of Xamarin Cross-platform app development». HeadWorks. 15 Mar 2019.
  20. ^ WxWidgets Description
  21. ^ Warren, Tom (2020-01-14). «Microsoft bids farewell to Windows 7 and the millions of PCs that still run it». The Verge. Retrieved 2020-02-06.

I frequently use multiple platforms, such as Windows, macOS, Linux, iOS, Android, and web, for various tasks that require each platform. These are the best apps in terms of productivity, efficiency, and fun, for each system that are also relatively unknown:

This article was originally published on satvikpendem.com


Windows

SmoothVideoProject (paid, free trial)

This transforms any video into smooth 60 frames per second, or even higher should your monitor and hardware support it. I use a 240 hz monitor so movies and shows become literally 10 times smoother, as the standard for visual media is usually 24 FPS.

Here are examples with anime and live-action:

TaskbarX (free, open source)

This centers your taskbar icons and also creates a blur or transparent effect:

PowerToys (free, open source)

This is made by a Microsoft team for Windows 10 that has many different types of utilities in it, such as a color picker, bulk renamer, File Explorer addons, and more. Specifically, there is one called FancyZones which is amazing for productivity. You can set up various zones on the screen and place your applications there, and they will stay there across desktops. You can save and reload these configurations as well.

For macOS, there is a similar application called Stay (paid), although I don’t use it myself. I use Divvy instead.

mpc-hc (free, open source)

This is a video player that can handle many video formats. I use it with SVP4. There is also a plugin called madVR which upscales content quite well, making 720p look like 1080p, and 1080p look (almost) like native 4k.

SMPlayer (free, open source)

This is another media player, but it has the special quality of being mpv-based. I watch to a lot of lectures, listen to audiobooks and podcasts at 4x speed, but at this speed there’s a lot of distortion. However, there are some settings in mpv which can counter-act this and make it sound natural, just like in Edge, Chrome, or Firefox (Safari suffers from this issue as well unfortunately). These settings are adding a scaletempo audio filter with the following properties:

scaletempo=stride=30:overlap=.50:search=10


macOS

SmoothVideoProject (paid, free trial)

See above

Divvy (paid, free trial)

This app allows you to lay out your windows on-screen in a simple way.

Divvy is also available for Windows but since I use PowerToys, I don’t need it on Windows.

Macs Fan Control (free, optional paid features)

I have a MacBook Pro and sometimes it thermal throttles, meaning that rather than turn on the fans due to the loud noise they make, it would rather slow down the computer, which can be quite annoying if you’re doing anything intensive. This app allows you to manually change the fan speed and set presets.

There are other alternatives like TG Pro (paid with free trial) that provide more detailed features such as custom fan speed curves.

Rectangle (free, open source)

This divides up windows using keyboard shortcuts, similar to other window managers that you may have used. I only use this for a single shortcut, however, as I use Divvy for everything else. This shortcut is maximize the current window to fit the screen: ⇧⌥↩. macOS has an annoying habit of not maximizing, much as Windows would, when double clicking a window title bar, so I use this shortcut instead.

iGlance (free, open source)

I want to keep track of my computer’s performance and temperature since I work on demanding tasks so that it doesn’t overheat and thermal throttle. This combined with Macs Fan Control is a powerful combination.

gSwitch (free, open source)

My MacBook Pro, like many Macs, has two types of graphics. To save power and extend battery life, it uses an integrated graphical processing unit (GPU) which is slow but long lasting. For demanding tasks, it uses a discrete GPU, which can suck up battery but provides a lot of power. Sometimes, however, macOS doesn’t automatically switch between them, due to whatever reason, so gSwitch forces it to use one or the other. Note that if you plug in an external display, macOS always uses the discrete GPU, so this app isn’t that useful then, but if you’re not using an external monitor, this app is very useful.

Witch (paid, free trial)

When you ⌘ ↹, macOS will switch applications and not windows, unlike Windows, and even all applications at that, not even ones with windows currently open. This can make switching between windows very annoying. There is the option to use ⌘ ↹ and the Up and Down arrow keys to cycle between windows of the selected app, but that can get cumbersome.

Witch instead makes the macOS behavior more like Windows, with ⌥ ↹ acting like Alt-Tab, switching open windows rather than apps. There is actually even more customization, with switching between open browser tabs, switching between windows on other monitors, and so on.

AdGuard (paid, subscription)

AdGuard is a computer-wide adblocker which works not only in web browsers but also in native desktop apps like Spotify. It’s not as good as a network-wide solution like DNS blocking (which AdGuard provides) or Pi-hole, but it gets the job done. AdGuard is also available for Windows, iOS and Android, which I use.

coconutBattery (free, optional paid features)

In macOS Sierra in 2017, Apple removed a way to see battery time remaining in the menubar. This adds that back and also gives some extra information about battery health and capacity left. You can even look at the battery info of other Apple devices in your network, like an iPad in another room.


ItsyCal (free, open source)

On Windows, if you click the date/time, it’ll show a calendar which is very useful. macOS doesn’t do this, so this is an app that shows a calendar. It can also replace the time, not just the date, but I’ve opted not to, personally.

iina (free, open source)

iina is a native macOS video player that can handle a lot of video formats, as well as audio. It is mpv-based so it can do the same voice distortion counter-action as SMPlayer, see that section for more details.

Parallels (paid, subscription)

I usually use all three desktop operating systems, Windows, macOS, and Linux, as well as iOS and Android, due to doing app development via a framework called Flutter, developed by Google. It allows one codebase that can work on the platforms above as well as a website version. To test these, then I’d need access all of the platforms. I do this through an app called Parallels.

Parallels is a virtual machine app meaning it can run multiple OS at the same time, so you can put Windows in one window or monitor and macOS in another. It even has a coherence mode where on the same screen, you can switch between apps of different OS, such as working on a Windows-version Excel spreadsheet while doing research in Safari.

What is particularly special about Parallels is that it has native GPU acceleration for any number of VMs, meaning it passes through a virtual GPU to each VM. In general, if you want to run a GUI on a VM, as in see applications on the screen rather than just a command line, you need a separate GPU for each VM. If I wanted to replicate running Windows, macOS, and Linux simultaneously in three different windows, I’d need a Linux computer with at least three GPUs, one for each OS. This is because Windows doesn’t support GPU passthrough at all in virtual machines, unlike Parallels, and Linux can, but you need a special GPU that has virtual GPU support, and these are usually in the 4 or 5 figure range (USD) in cost because these types of setups are usually used in data centers. However, macOS supports this in a normal consumer computer, which is quite surprising and is the reason I use macOS primarily.


Linux

SmoothVideoProject (paid, free trial)

See above

i3 (free, open source)

Ever wanted to customize your desktop to the max, or like they do in the movies? Check out window managers, such as i3. Now, the picture below is not the default configuration, you’ll have to do a lot of customizing to get it. Check out /r/unixporn for more details.

Onivim 2 (paid, open source after 18 months after release)

This is an alternative to VSCode. Onivim is a powerful text editor (currently still in alpha) that runs on Vim but also provides a nice GUI with integration into VSCode extensions. Best of all, it’s not based on Electron so it loads in less than a second and only takes up double digit megabytes of RAM.

Command line apps (free)

This is a catch-all for the various command line applications that are useful in Linux.

  • exa (Rust) — ls replacement
  • ripgrep (Rust) — grep replacement, one of the fastest
  • fd (Rust) — find replacement
  • fzf (Go) — fuzzy finder, use with fd or ripgrep
  • bat (Rust) — cat replacement, with syntax highlighting, git integration and more.
  • zoxide (Rust) — z replacement, autojump to directories without typing out their full path
  • ytop (Rust) — top replacement, with nice graphs

Android

AdGuard (paid, subscription)

See above

Voice Audiobook Player (free, open source)

This is a great audiobook player that is simple yet powerful enough, with a good UI. Best of all, you can use your own audio files instead of some DRM-laden service.

There is also a forked version that I use that allows the reader to listen at higher than 2.5x speed, which is the limit in the official version, which the creator doesn’t want to increase for some reason.

AntennaPod (free, open source)

This is a full featured podcast player with features such as automatic downloading when new episodes come in,

It is also the only one I’ve found that can go up to 4x speed, most stop at 3x only.

Tachiyomi (free, open source)

This is a comic/manga/webtoon reader that can download them locally when there’s no Internet access. It has a lot of different sources that you can access via plugins.

Google Camera Ports (free)

Did you know you can get the same quality as Pixel phones on your own Android phone? That’s because most of the quality of photos taken from Pixels are all in software, so if you have the same Google Camera app, the quality will be similar.

Follow the directions to make it work on your own phone.

NewPipe (free, open source)

NewPipe is a lightweight YouTube app that has some features that make it very useful for power users. For one, it can go to 3x speed and save that speed for all videos automatically. It can also play videos and audio in the background which the official YouTube app won’t let you do unless you pay for YouTube Premium. There are of course also no ads.

For alternatives, look at YouTube Vanced which sadly only goes up to 2x speed.

Termux (free, open source)

This is a terminal emulator for Android. Basically, it can run Linux applications and packages since Android is based on Linux. I use it primarily to interface with iA Writer. With it, I can commit the Markdown files to a git repository after editing them on my phone.

iA Writer (free, optional paid features)

iA Writer is a Markdown editor that I use for taking notes. Then, with Termux, I can commit the Markdown files to a git repository. iA Writer can also interface with Google Drive, Dropbox and others as well, so it’s a good all-around editor.

iOS

Working Copy (free, optional paid features)

This is a good git client that I use for the same reasons as Termux. While it’s not a full terminal emulator like in Android, it does the job, syncing my notes with iA Writer.

AdGuard (paid, subscription)

See above

Bound (paid)

This audiobook player is unique in that it connects to your cloud service like Google Drive or Dropbox and streams or downloads your books from there. It can be very useful if you don’t have much storage on your phone.

Web

uBlock Origin (free, open source)

This should be the first extension that anyone installs. It’s a very efficient adblocker that not only blocks ads but also other trackers that stalk your browsing online. It is remarkably effective and is not bought out by advertising companies like many adblockers, including Adblock and Adblock Plus.

Note that uBlock is not the same as uBlock Origin, the former is a malicious version.

uMatrix (free, open source)

This is by the same creator as uBlock Origin and this extension enables you to turn off Javascript as well as any trackers. It can break much of the web for the first few days as you get used to overriding your visited websites, but afterwards, it makes the Web so much faster as every site doesn’t load a bunch of heavy files just to read what’s on the page.

Checker Plus for Gmail (free, optional paid features)

This extension adds your inbox in your toolbar so that you never have to open up Gmail again. I set it so that opening the email does not mark it read, as oftentimes I have to think about it before replying or taking some action.

Dark Reader (free, open source)

This adds dark mode to every single website, with manual overrides and customization options.

SponsorBlock (free, open source)

After removing ads from YouTube with uBlock Origin, you can now remove annoying sponsor messages, 5 minute long intros, end cards and more with SponsorBlock. How it works is it crowdsources which times a given sponsor or intro occurs, then in the YouTube player it’ll skip those sections automatically. You can even contribute times to help out the crowdsourcing.

If you want to support your creators, you can whitelist channels, or better yet, donate directly to them via Patreon or similar, and they’ll get a lot more of your money than ads or sponsorship deals.

Hover Zoom+ (free, open source)

This allows you to hover your mouse over an image, video or GIF and it’ll show up and start playing automatically. Now you don’t have to look at links in individual tabs, you can just hover over them.

DF Tube (free)

This lets you watch YouTube without all of the distractions, like the Trending tab, the viral videos, and so on. Use this in conjunction with my advice on getting rid of YouTube recommendations.


This article was originally published on satvikpendem.com

Решил поделиться субъективным опытом в отношении операционных систем.

Итак, проведем сравнение и определим плюсы и минусы операционных систем Windows, Mac OS, Linux.

Windows

Много с ней работаю. Очень хорошая ОС. Десятая версия стала еще стабильнее и надежнее.

Плюсы Windows:

  1. Стабильная и надежная. Подвисающие программы не вешают систему как раньше. Системные приложения обладают высоким приоритетом и поэтому всегда отвечают, даже если что-то пошло не так.
  2. Ее легко настроить, обладает хорошей поддержкой подключаемых устройств в сравнении с другими ОС. Новое устройство подключаете и система быстро обновляет драйвера с сервера Microsoft, устанавливает их без особых вопросов, сложностей. Можете не беспокоиться о совместимости с 80% устройств.
  3. Лучшая не приставочная платформа для игр! Игры часто выходят на PC и гораздо реже на Linux, Mac OS.

Минусы Windows:

  1. Платная.
  2. Много вирусов. Антивирус к покупке обязателен. Ставите Windows — ставите антивирус. Только когда я купил антивирус по настоящему расслабился и почувствовал себя в безопасности. Упала гора с плеч и перестал долго искать ключи на пиратских сайтах. В сравнении с другими системами — в Windows всегда существует угроза заражения.
  3. Захламление диска. Мне под системный диск не хватает SSD на 120 Гб. Остается свободным 2-3 Гб. Постоянно чищу кэши. Софт и игры стараюсь держать на отдельном диске.
  4. Пока еще кривой интерфейс в переходном состоянии от старых окон к окнам в новом дизайне. Не логичный интерфейс. В MS не стремятся к логичности и однообразию интерфейса.
  5. Слежка за пользователем. Система следит за пользователем и отправляет данные в Майкрософт. Это неприятно и это угроза личной безопасности.
  6. Постепенно вводят подписку с оплатой за обновления.

Mac OS

Mac привлекателен в первую очередь с точки зрения аппаратной составляющей. Очень хорошие дисплеи, эргономичное и качественное исполнение. В первую очередь данные устройства ориентированы на дизайнеров и осуществляющих монтаж видео.

Плюсы MacOS:

  1. Стабильная, красивая, лаконичная и продуманная в сравнении с Windows.
  2. Установка программного обеспечения упрощена до максимума — обычно достаточно перенести программу с носителя в список программ.
  3. Мало вирусов, а те, что есть ограничены в возможностях. Если появляется информация об уязвимостях — они быстро перекрываются исправлениями.
  4. Есть встроенное офисное программное обеспечение (это не актуально, т.к. все дополнительное ПО постепенно переходит в веб).
  5. Можно запускать некоторые приложения Windows через Wine.
  6. Оптимизирована под родное железо.

Минусы MacOS:

  1. Ограниченность системы. Т.к. в системе многое упрощено — нет гибкости в настройках.
  2. Проблемы с поддержкой оборудования. Не все оборудование может быть совместимо. Могут быть сложности с установкой драйверов.
  3. Иногда установка программного обеспечения выходит за рамки перенесения значка в список программ. Могут быть sh скрипты с запуском и работой которых могут быть проблемы.
  4. Для записи на диски с NTFS нужно ставить дополнительные драйвера.
  5. Для установки на не родное железо придется потратить много времени. Понадобится переустановка чтобы установить новую версию операционной системы.

Linux

Работа в данной системе сильно упрощается после решения Canonical реализовать SNAP. Есть возможность подключить Flatpak.  Эти решения должны приблизить систему по легкости установки ПО к уровню MacOS. (суть данных решений — хранить в установщике сразу все зависимые библиотеки и файлы, что исключает проблему с разрешением зависимостей, не совпадением версий требуемых версий библиотек и версий библиотек в системе, а также реализует изоляцию ПО от системы).
Linux очень стабилен.
Gnome 3 красивее чем Mac OS!!! Когда я завершил сеанс в Mac OS и загрузился в Ubuntu — я был поражен насколько приятнее и красивее окружение в Ubuntu. В сравнении с GNOME 3 дизайн от Apple выглядит устаревшим.
Иногда систему нужно подстроить под себя 😉

Плюсы Linux:

  1. Бесплатная.
  2. Надежная. Стабильная.
  3. Вирусов почти нет. Антивирус не нужен. Можно поставить бесплатный ClamAV для самоуспокоения и периодического сканирования файловой системы чтобы случайно не перенести Windows вирусы  на другие компьютеры.
  4. Система гибка в настройке, а в сети много информации как, что настраивается.
  5. Занимает 15 Гб на диске и не разрастается до фантастических размеров с течением времени в сравнении с Windows.
  6. Можно запускать некоторые Windows приложения через Wine.
  7. При подключении iPhone к системе можно управлять файлами без установки дополнительного ПО типа iTunes.

Минусы Linux:

  1. Любое изменение системных настроек несет риск сбоя. Нужно четко понимать, что делаете. Настроенное ранее может слетать после обновления ядра. Если настроенное не трогать — будет работать очень стабильно.
  2. Набор программ более ограничен в сравнении с конкурентами. По-умолчанию установка ПО производится преимущественно из репозиториев с ограниченным набором программ.
  3. Есть проблемы с совместимостью оборудования. Иногда бывают проблемы с установкой драйверов, а когда все вроде установлено бывает, что работает не корректно.

Заключение

На текущий момент мой выбор — Linux. Я перехожу на данную систему из-за существенных минусов Windows. Microsoft как и Apple топчутся на месте, делают ошибочные ходы. Linux развивается планомерно и в нем всегда есть выбор. Система простая и гибкая в эксплуатации. Советую рассмотреть данную систему в качестве альтернативного варианта 🙂

Понравилась статья? Поделить с друзьями:
  • Run advertised programs windows 10 где находится
  • Rumblepad 2 driver windows 10 64 скачать
  • Rumble p3200 драйвер для windows 10
  • Rumble gamepad f510 драйвер для windows 10
  • Rule windows firewall generated a warning