Thank you.
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/
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 :)
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.
My WM of choice is StumpWM (with XMonad-like shortcuts on Super) and my terminal of choice is simply xterm running Bash.
This setup is incredibly minimal and efficient in all respects.
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.
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
`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.
- 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
- 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.
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.
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.
- 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 [2]: https://albertlauncher.github.io [3]: https://github.com/mkropat/jumpapp
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...
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.
However, linux has improved over time for desktop use, and more things have moved to the web. So really I feel like I rarely leave the browser. And if I do, it is just to a text editor or IDE.
Having a lightweight setup eliminates a lot of problems. I try to install almost nothing, honestly.
The less you have installed, the less attack surface you have, the less updates you need, and the less chance for breakage.
Usually if something breaks in desktop linux for me, it is because I know I was doing something non-standard. Trying to use unstable packages, custom settings, etc.
Apple solves that problem by barely letting you do anything at all, thus removing the PEBKAC.
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.
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.
that's headache for me
Osx breaks my dev environment at every update. there's just news on this site saying it dropped support for some nvidia card.
In the meantime, I've had the same debian install for 5 years, and zero trouble.
Let's discuss the question instead.
iptables -A OUTPUT -p udp --dport 53 -m string --hex-string "|08|facebook|03|com" --algo bm -j DROP
Not joking
- AutoKey (key shortcuts)
- Conky (desktop widgets)
- lsyncd (syncing files)
I was using Conky for a todo list on my second monitor, then I added another more specific todo list called "weekdo", one for notes(like how to spell certain words that consistently stymie me). After growing to four lists, each a Conky instance, I wrote a more specific purpose displayer. That was worse on resources, but a rewrite incorporating all the lists into one process was an improvement, even on Conky.
But this is about Conky. Conky pretties up your desktop, displays useful information, and inspires you to take more control of your desktop. Long live Conky.
- Clipit - clipboard management
- i3 Desktop window manager - gave me a superb boost of productivity
- Indicator Netspeed unity - live network consumption/speed indicator applet
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
* 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
* 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
* 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...
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!!
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.
Shutter for screen shots
parsec for streaming a local windows box