Deploying a "Native" TweetDeck App in Linux

I've recently left macOS as my main machine. As I trend into the all-too-configurable world of linux, the experience is a little like trying to find the perfect pair of shoes. Most will get the job done, but when you find that one pair, oh man! 

I've been very impressed on the hardware compatibility side of things, with my Asus Zenbook Flip having most hardware components supported out of the box with Fedora and Gnome3 (with exception to the fingerprint reader). The next transition is within the application space. 

Most (or all) of the apps we require include a web version, which makes the initial transition easy to keep working. If, however, you're like me and like to have separate applications to command+tab through (rather than tab through in chrome/opera/firefox), then there are tools to help. 

This example uses Tweetdeck as the example, which is very nice twitter client that has chrome plugins, but no native Linux application. In this case we will leverage nativefier to help. 

Nativefier (https://github.com/jiahaog/nativefier), at a quick glance, appears to be a wrapper around electron that is a command line tool for building your native app - just point (or type) and go. This has been a useful tool for other great web based applications that we use like www.notion.so, www.avaza.com, www.trello.com, and.. and... you get the picture. 

sudo dnf install npm
npm install nativefier -g
  • Run nativefier to build the tweetdeck application
nativefier https://tweetdeck.twitter.com --name=tweetdeck
  • Create the desktop file for quick/easy search; you can customize the application directory as well as the icons
cat ~/.local/share/applications/tweetdeck.desktop 
[Desktop Entry]
Name=Tweetdeck
Exec=/home/<USERNAME>/Applications/tweetdeck/tweetdeck — %u
Icon=/home/<USERNAME>/Applications/tweetdeck/white_twitter.png
Terminal=false
Type=Application
  • Update the name (if desired) that nativefier created
cat /home/<USERNAME>/Applications/tweetdeck/resources/app/package.json 
{"name":"tweetdeck","version":"1.0.0","description":"Placeholder for the nativefier cli to override with a target url","main":"lib/main.js","dependencies":{"electron-dl":"^1.1.0","electron-window-state":"^4.1.0","source-map-support":"^0.4.0","wurl":"^2.1.0"},"devDependencies":{},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["desktop","electron"],"author":"Jia Hao","license":"MIT"}
  • Launch the app :) 

 

TweetDeck showing up in the Gnome3 search bar

 

TweetDeck running as a desktop app