
Ask HN: What linux desktop tools/apps boosted your productivity? - anikdas
I have switched to Ubuntu 16.04 from MacOS two years ago. Compiz is one of the things helped me manage my workspace and windows which really boosted my productivity. I wonder what other tools I might be missing out.<p>Thank you.
======
e19293001
Emacs org-mode[0]

From the website's description:

Org mode is for keeping notes, maintaining TODO lists, planning projects, and
authoring documents with a fast and effective plain-text system.

I just copied some of the set-up from here[1]

[0] - [https://orgmode.org/](https://orgmode.org/)

[1] - [http://doc.norang.ca/org-mode.html](http://doc.norang.ca/org-mode.html)

~~~
a-saleh
Second emacs org-mode.

I use almost nothing out of it. I have the default spacemacs configuration. I
literaly just write bullet lists and cycle TODO and DONE states on them. Still
the best todo-manager :)

~~~
stuntkite
I've done a ton of writing and system description. I've got kit in
Illustrator, I've bought tools on the mac like Scrivener[0] and Scrapple for
writing fiction and technical documentation. I can really move with
Omnigraffle. I've bridged that gap with writing my own tools in Python with JS
web display layers. I am a competent developer in a few languages and I have
known about emacs and org-mode for going on a decade.

I take big stabs at it becoming my goto. I feel like I've done a lifetime of
development to just dance around figuring out this tool.

Do you have any suggestions for making it stick? I'm making 2019 my year to
really get emacs and put some time into fun Lisp. Any tips relating
specifically to org-mode and not just "how to not quit using emacs" would be
greatly appreciated.

[0]
[https://www.literatureandlatte.com/store](https://www.literatureandlatte.com/store)

~~~
mickael-kerjean
> "how to not quit using emacs" would be greatly appreciated.

Emacs kinda feel like a weird animal when getting started but that's just
muscle memory. The best way to have it stick is to get a better understanding
of its power. I wrote a 5 episode tutorial series that should get you on the
right path: [https://mickael.kerjean.me/2017/03/18/emacs-tutorial-
series-...](https://mickael.kerjean.me/2017/03/18/emacs-tutorial-series-
episode-0/)

~~~
stuntkite
Very cool! I just skimmed the series and sat with Ep1 a bit. I will work
through it this coming week and see how it lands.

I like the format. Thanks!

------
nwah1
KeePassXC has been great for password management.

Redshift for blue light filtering, although KDE now has that built-in.

zsh and the oh-my-zsh suite has been really helpful

A bunch of cli tools are nice. Ripgrep is a super fast grep tool that comes in
handy for searching inside of files... can basically search your whole
filesystem at lightspeed.

------
cik
In addition to the usual suspects of tmux, random window managers + friends,
here are the applications I have to install to function

rofi - Fast, phenomenally good launcher

terminator - Terminal that allows splitting, tabbing, and more importantly
bonding

redshift - Literally, shift my red light levels by time of day

retext - I write a lot of markdown. Seeing it real-time previewed makes life
significantly better for me.

steam - A distraction now and then certainly helps

~~~
remilouf
I’ve struggled for a long time with paper scraps to keep track of what I’ve
been doing and read about the following alias to add in your .bashrc

`alias did="vim +'normal Go' +'r!date' ~/did.txt"`

Then type `did` in your terminal and write what you just did.

More generally, you can get a great boost of productivity by mastering your
text editor. I have a preference for Vim, but have nothing against emacs.

------
lgunsch
\- i3 window manager - I just couldn't go back now. Over the course of the
last 5 years I have saved time and made window management much less painful.

\- Parcelite clipboard history - very useful for various reasons. It's such a
basic tool for me now I don't know how people live without one.

Not a tool, but for any shell work learning the readline key bindings is a
good time saver: Ctrl+a/e/n/p/b/f. It's just so much more clunky using other
keys

~~~
tushartyagi
+1 for i3. I have a 13" laptop as my primary driver and using i3 is so much
faster & convenient on such a small screen. Though I have made 2 changes to my
workflow to get better out of it:

\- I use i3 inside XFCE. This allows me to use the xfce launcher, status bar,
tray icons and other goodies, e.g. adding external monitor pops open the
display properties, volume bar is available anytime. All this saves me from
binding buttons & doing other changes in my i3 config.

\- Since Win+{1,2,...0} (buttons which change workspaces in i3) are now
hardwired in my brain, I have arranged the icons on the taskbar of my
Windows-10 machine to what I have in i3.

Win+1 is assigned to Emacs on i3, so that's the first icon on my windows
taskbar.

Win+2 -> shell/git bash

Win+3 -> Thunar/Windows Explorer

Win+4 -> Firefox/Firefox

Win+7 -> Anki/Anki

This saves a lot of brain cycles, as my Windows workflow is also a bit like
what I usually use on Debian.

Last week I try using EXWM but wasn't able to make it work as per my
expectations, so switched back to i3, but EXWM is definitely a TODO on my
list.

~~~
eric24234
4 / 5 window arrangements i use the same except Thunar. I dont remember why i
choose that particular arrangement. Did you copy from some where ?

------
craftyguy
Tmux, vim + handful of plugins, i3wm, mutt, qutebrowser. Without the ability
to completely control my systems from the keyboard, I would suffer a bit hit
to productivity and these applications allow me to do that.

~~~
jac08h
also ranger for file management and saka key firefox/chrome extension

~~~
craftyguy
I prefer using no specialized application for file management. ls, cd,
(rip)grep, find, less, tail, and others work perfectly fine.

------
frnkshin
The one app is i3wm. People say tiling wm do not help boost productivity, but
it certainly did for me -- or at least I think that it did.

From hardware aspect (although it was never asked), I use a hhkb type-s with
the hasu controller. You may think it's a small change, but the fact that you
can remap the arrow keys to {h,j,k,l} also helps because you no longer need to
stretch your arm to your arrow keys. It did cost a bit of money, but I'm happy
that I have it. And aside from the arrow key remap, I also remapped other keys
to help with basic functionalities.

------
zumu
Rofi is pretty great.

I'm also shamelessly addicted to guake (drop down terminal). I know there are
more robust alternatives, but having grown up with Quake/CS, it just feels
right.

~~~
dnlsrl
I wanted to use Yakuake but it's for KDE and didn't want to install a complete
DE just to use its dropdown terminal. Guake is a fairly good alternative, but
I'm having an issue with it that it somehow makes title bars and top menus
unclickable, which forces me to terminate it every now and then start it
again.

~~~
zumu
I have not had those issues, and I'm actually using guake with KDE atm. You
might be able to get yakuake working on non-kde. What DE are you using?

~~~
dnlsrl
I have XFCE, but when trying to install, it included the whole KDE DE as
dependency, which I don't really need.

~~~
sidcom
You can launch xfce-terminal in drop-down mode..

------
ayoisaiah
Off the top of my head, I'd suggest the following:

\- Flameshot for screenshots and annotation [1] \- Albert Launcher [2] \-
Jumpapp for quickly launching or switching between windows [3]

They are all desktop agnostic.

[1]:
[https://github.com/lupoDharkael/flameshot](https://github.com/lupoDharkael/flameshot)
[2]: [https://albertlauncher.github.io](https://albertlauncher.github.io) [3]:
[https://github.com/mkropat/jumpapp](https://github.com/mkropat/jumpapp)

------
dhruvkar
Switched around the same time as well from MacOS. I really missed Spotlight. A
suitable alternative I use on my Lubuntu 16.04 machine:

[https://cerebroapp.com](https://cerebroapp.com)

~~~
russdpale
This is a nice app. Thanks for sharing!

~~~
dhruvkar
sure! :)

------
Symbiote
I mostly use the command line, so Zsh and its extensive support for tab
completion is the most important thing.

rsyn^I e.o^I:/va^Iw^I/ ./ -av --prog^I

autocompletes to

rsync example.org:/var/www/ ./ -av --progress

with alternatives listed if I press tab sooner (e.g. --protocol, --protect-
args are shown with the purpose of those flags).

On a local filesystem,

ls /v/w/h/i^I

autocompletes to

ls /var/www/html/index.html

The non-default shell tool I use most often is "jq", a JSON processor. I can
interact with a REST API, and answer a lot of one-off queries _just in the
shell_.

I should probably write a tab-completion module for our REST API...

------
stevenaleach
*nix specific: tmux, clipit cross platform: jupyter-lab, vim.

------
johncoltrane
Switching back to Mac OS X is what really boosted my productivity as it
allowed me to forget all about constant fiddling, broken drivers, breaking
updates, inconsistent UX/UI, amateurish applications, etc.

My Ubuntu box (an Ubuntu-approved Dell tower IIRC) required constant attention
and ultimately died after two years while my mid-2011 Mac Mini went through 4
major Mac OSX/MacOS versions and countless security patches without a single
issue and all the company-provided MacBooks I've had since 2010 have been
zero-maintenance.

~~~
wasted_intel
Counter-anecdote: I've been running an Arch install for 2+ years with zero
problems. Picking hardware that has direct kernel support will save you a
bunch of headaches.

Also, a rolling release distro, which you'd think would be less stable,
provides better hardware support as the kernel and firmware packages are
_much_ more recent (not to mention libraries/build dependencies). Personally,
I'd never go back to a fixed-release distro.

~~~
badpun
> Picking hardware that has direct kernel support will save you a bunch of
> headaches.

Yep, that seems key. I've just spend full 5 days (I'm in between contracts, so
I have the time) trying to install Arch on my Early 2013 15" MacbookPro. I
turned out that, due to buggy/nonstandard hardware, a fully functional dual
boot with Windows is not possible (if your disk is GPT, you won't have sound
on Windows and if it's MBR, the DisplayPort monitor won't come back from
suspend on Arch). Just coming to that conclusion took around 4 days of
experiments. I've spend one more day trying to set up wireless, and have just
given up. There are more interesting things to do with computers than finding
workarounds for a minefield of hardware/firmware/drivers bugs.

~~~
wasted_intel
I had a late 2013 MBP and went with the XPS 13 for that reason. The process to
dual boot (or even wholesale replace) a MBP on Linux looked _really_ scrappy.
I get it, Apple's UEFI firmware is essentially a black box with zero
configurability. If that's how the process starts, I can't imagine how painful
the rest of it is.

------
JoshCalbet
iptables. I actually block some websites by setting some rules in
/etc/rc.local like:

iptables -A OUTPUT -p udp --dport 53 -m string --hex-string
"|08|facebook|03|com" \--algo bm -j DROP

Not joking

------
gitgud
_Shutter_ is a great little gui tool I use everyday, it let's you easily take
screenshots or partial screenshots and mark them up before copying/saving
them.

~~~
russdpale
Yeh shutter is a great application! Very easy to use and most importantly,
light weight.

------
zzo38computer
I mostly use the command line. I use Heirloom-mailx for email, i3 for window
management (although I wrote my own program for the status bar), vim for text
editing, just the shell commands for file management, xterm for terminal
emulation, xclip for clipboard management, SQLite for database management, and
I wrote my own programs for screen capture and many other things. I do not
have a launcher menu; I just start all programs from xterm.

------
fffrantz
Alpine is absolutely amazing for managing the hundreds of emails I get
everyday. Also, workrave helped with concentration by forcing me to do regular
pauses.

------
jasonhansel
I suggest:

\- AutoKey (key shortcuts)

\- Conky (desktop widgets)

\- lsyncd (syncing files)

~~~
anikdas
lsync looks really good. Currently I was using rsync with a custom gulp script
to mimic similar functionality.

~~~
ElCapitanMarkla
I've been using unison lately. Nice and quick over 1000s of files between OSX
and Linux. A little slower when paired with Windows though

------
ChrisGranger
I'd suggest a clipboard manager. I use Glipper, but there are a lot of others.

~~~
russdpale
copyq is very good as well.

~~~
ElijahLynn
CopyQ is the best clipboard manager, IMO! I used to use Glipper, CopyQ crushes
it!

------
anikdas
To add another one of my favorite: gotop[1] (drop in replacement of htop) is
really good.

[1][https://github.com/cjbassi/gotop](https://github.com/cjbassi/gotop)

------
leeman2016
\- Zim - very light note taking application

\- Clipit - clipboard management

\- i3 Desktop window manager - gave me a superb boost of productivity

\- Indicator Netspeed unity - live network consumption/speed indicator applet

------
ArtWomb
Mkusb for making USB thumb drive bootable ISOs. If you want to try a lot of
"flavors" it can definitely save a lot of time configuring ;)

------
h1d
Listed app seems to be only the obvious ones that has good alternatives on
other OS but aren't there any that is better on Linux desktop?

------
ElijahLynn
* Fish shell: Specifically, its abbreviation feature. `abbr --add word phrase`. e.g. `abbr --add g git`, then I don't have to deal with autocomplete support for non-native command names as it literally expands to git after I type it followed by a space or return.

It also allows for faster throw-away function editing and saving if you want
to keep it. `function`, `funced`, `funcsave`, `functions`

* Tmux: Use pane splitting so much, always frustrates me to see others moving so slowly through terminal windows and tabs. bonus: I also have pane splitting to re-attach to existing SSH connection if it was split from a SSH session.

I used to use tmuxinator and probably will again, more valuable if multiple
projects simultaneously.

* Guake/Gnome Drop Down Terminal: Terminal dropdown is just such a huge time saver.

* z: jump to recent directories, [https://github.com/jethrokuan/z](https://github.com/jethrokuan/z)

* fzf: get ctrl + r history search functionality back that bash provides, also provides ctrl + o to open files in $EDITOR [https://github.com/jethrokuan/fzf](https://github.com/jethrokuan/fzf)

* copyq: Best clipboard manager evah! You NEED a clipboard manager, can't believe I went years without it, I trigger mine with ctrl + alt + c

* pipe to clipboard: `<command with output> | xsel --clipboard`, wrap xsel in a `cb` abbreviation in fish for autoexpansion. `abbr -a cb xsel --clipboard` may need to install `xsel` first.

* workspace tiling: I map 9 workspaces to the same grid on the keyboard with these keys + an <alt> modifier. I also assign certain applications to always auto-assign to specific workspaces:

w e r

s d f

x c v

* clock: set it to show seconds, you can easily perform loose timing way. Use `time <command>` if you are on the terminal.

* timezone: if you work with a team who is in one timezone, just set it to use their timezone during working day. I made a script to toggle this back and forth easily

I also display my timezone in my tray if I am toggling timezones.

* Arch Linux: On previous distros I would have to futz with package sources way too much. With Arch it is the easiest and most productive ever by using the `yay` package manager/wrapper. I can type `yay -S <package name>` and 99% of the time it will be available and even automates building it from source if there isn't a binary. It just works, I will never go back. Arch has some of the best packaging out there, I will use Arch for this reason alone, it saves many hours of time.

* ethernet cable: I use ethernet cabling whenever possible. Lower latency times and in video conferences you can say "not me" when the stream breaks down. Results in you not having to troubleshoot wifi. Using wires is amazing!

* Jabra 410 WIRED speakerphone: one reason, hardware mute button. Don't have to fiddle through windows to see if you are on mute. Big red ring around the speakerphone shows if you are muted or not.

* Screen annotations + touchscreens: The reason to use a touchscreen with linux is screen annotations. Arch + Gnome 3 works well enough with `yay -S gromit-mpx` as an alternative to Compiz Annotate. This saves time because during presentations you can communicate much more efficiently by drawing a red circle around something. You don't need a touchscreen and can use a mouse pointer, but that does slow things down, still better than no annotations though.

* noise cancelling headphones: this is the best investment I have ever made. Do this.

* Focus music: "hey google, play focus music" and also I purchased lifetime subscriptions for brain.fm and focus@will. I toggle between the 3. Combined with noise cancelling headphones you can get into some killer focus zones with these!

* rubber ducking: similar to other posts here for marking @todos etc, which I may look into their suggestions for a CLI method. But for now I use a running Google Doc where I write it out for getting stuck and making progress. Here is an article I wrote expanding on this blurb. [https://medium.com/@ElijahLynn/write-it-out-f9c74082e6ca](https://medium.com/@ElijahLynn/write-it-out-f9c74082e6ca)

* 2-5 minute runs: Sometimes just gotta get up and run. I run around the block, it doesn't have to be long. A goal of once around the block is super good for brain health, more is better but 2 minutes is really a good start. My long-term goal is to do a 2 minute run every hour during the day.

=======================================================

Here is my most recent Arch setup with most of these tools listed, it is
pretty messy and I didn't document everything in there but maybe it is useful
to someone, there is also a video recording of how to install Arch + Gnome 3
at the top of the document that my friend and colleague Cameron Eagans walked
me through with some great discussion around UEFI & BIOS.
[https://docs.google.com/document/d/1QtQyveacu8dgTeoy8939Ti42...](https://docs.google.com/document/d/1QtQyveacu8dgTeoy8939Ti426eifC_GqJKaVhNu0bN4/edit)

Gosh that was way longer than it was intended to be, original intent was just
to write about `fish abbr --add` which you should switch to fish for that
reason alone!!

~~~
anikdas
Really appreciate for taking the time to answer my question.

I use zsh myself. Have not tried fish yet but only heard good things about it.

Also, regarding the pipe to clipboard, I liked the 'pbcopy' command on Mac.
So, right now I have added an alias pbcopy='xclip -selection clipboard'. It's
really handy.

------
PeOe
I use Zenkit (project management tool) to organize all my tasks and keep track
of the progress. It's also available as Snap.

------
facorreia
gitg is pretty helpful for visually checking changes before committing. I
prefer it to text-more diff and use it for projects that don't require
IntelliJ.

------
russdpale
KDE Connector

Shutter for screen shots

parsec for streaming a local windows box

------
livingpunchbag
alias s='cd ..'

------
Zelmor
Compiz? Are you joking? In what way could Compiz boost your productivity?

~~~
anikdas
All the bindings, hot-corners, expo to name a few.

------
InGodsName
Figma for UI design.

