Simple way to toggle between 2G and 3G connection TL;DR
Usually, I have my device locked to &quot;2G only&quot; for multiple reasons:

saving battery-life
no need for &quot;high-speed&quot; to simply be informed about new mail or doing the little contacts/calendar syncs (not much changes, either)

But from time to time, I could use 3G:

some area that has bad 2G coverage (data-wise)
the occasional &quot;internet use&quot; e.g. with a navigation app, looking up &quot;a little more&quot; on the web, or installing something from google-play-store

For those occasions, I find it impractical to navigate to the settings page and change that manually -- even when done via some &quot;shortcut&quot; placed on a homescreen. Preferably, I want to be able to automate this via tasker, to e.g. automatically switch when entering/leaving the &quot;bad coverage area&quot; or when one of those apps is in foreground (both conditions are covered by tasker, just the &quot;action&quot; is missing). I checked thoroughly on our site here, on the google-play-store, and even did an extensive Google search -- but all that turned up was either a shortcut or a kernel patch for specific ROMs, both no-gos for me.
Hence my...
Question:
Is there any easy way to switch between 2G/3G mode? As said, shortcuts to the settings page do not count (so Can anyone reccomend a 2g / 3g switching widget? is no option). Wanted criteria include:

not requiring more than one tap (preferably no tap to trigger the action, see below)
a big plus (and favorite wish): ability to be triggered via tasker
not depending on specific ROMs (should work with stock-rom)
preferably not involving root -- but options requiring root would still be fine with me
command-line hacks are fine with me as well :)
With Xposed module and Gravity Box installed, the pull down status bar can be customised even on stock ROM (of course it has to be rooted).

I have a Nexus 5 running stock 4.4.4 and following is how it looks:


With these installed, one can swipe down with two fingers from top and just tap the last tile shown as "3G" in the image. Though this nearly misses the first requirement of using no more than one tap, technically it still does as you have swipe down and use one tap. 

That tile toggles between 3G, 2G, 2G3G states.  There is a minor lag to see the signal strength tile to reflect the status as "H+" or "E".

By installing the Gravity Box, I was also able to bring in the additional tiles like "Torch On/Off", "Auto Rotate Lock" etc which were not available in the stock ROM.

Update:
Thanks to jsen who was kind enough to share an intent to switch between 2G and 3G using Tasker and Gravity Box (that implies Xposed framework and rooting).

To avoid a dead link in future, the content of that Tasker hack is as below:

Send Intent [
Action: gravitybox.intent.action.CHANGE_NETWORK_TYPE
Cat: None
Mime Type:
Data:
Extra: networkType:1
Extra:
Package:
Class:
Target: Broadcast Receiver]

networkType enum values are: 
0: WCDMA Preferred 
1: GSM only &lt;-- This would be "2G" on GSM networks
2: WCDMA only &lt;--WCDMA is "3G" on GSM networks. You may know it as HSPA
3: GSM auto (PRL)
4: CDMA auto (PRL)
5: CDMA only &lt;-- This would be "2G" on CDMA networks
6: EvDo only &lt;-- EvDo is "3G" on CDMA networks
7: GSM/CDMA auto (PRL)
8: LTE/CDMA auto (PRL)
9: LTE/GSM auto (PRL)
10: LTE/GSM/CDMA auto (PRL)
11: LTE only
12: "unknown"


In my office, I have very bad 2G signal which drops my call very frequently. Hence I used to switch to 3G when I reach office. I created an entry task named "Enable 3G" and an exit task named "Enable 2G" which just sends intent as above. With Tasker's "Cell Near" state I can ask Tasker to enable 3G when I am near office and switch back to 2G while leaving.