Is there a way to disable copy (ctrl-c) when selection is empty ?
In Sublime Text, I can do that by setting the copy_with_empty_selection option to false.
I’d love this because I often hit ctrl-c instead of ctrl-v and it override my current clipboard.

I’m not aware of a package or config too change that and I don’t think atom core will change it because copy on empty, copy all the current line. But maybe this package could help you https://atom.io/packages/clipboard-history

# prevent core:copy if and only if there's one selection in
# the active editor (mini or not) and its length equals 0
atom.commands.add 'atom-text-editor', 'core:copy', (e) ->
editor = e.currentTarget.getModel()
# do nothing if there's more than 1 selection
return if editor.getSelectedBufferRanges().length > 1
# get the starting and ending points of the selection
{start, end} = editor.getSelectedBufferRange()
# stop the command from immediate propagation (i.e.
# executing the same command on the same element or
# an element higher up the DOM tree). This works
# because atom executes commands in the reverse order
# they were registered with atom.commands.add, and this
# one's added after the core commands are already
# registered.
if start.column is end.column and start.row is end.row
e.stopImmediatePropagation()

@olmokramer’s example shows everything you need to answer the questions you have. The Flight Manual should have the basic information on Atom commands that fill in some of the blanks and then the Atom API documentation will have the methods to achieve the specific actions you’re mentioning.