Set yourself unavailable with this open source PowerShell based Pomodoro timer

MVP Jan Egil Ring and I have created a GitHub PowerShell project called PsProductivityTools. There you will find a function called Start-Pomodoro with the following features

  • Count down for 25 minutes by default or a period specified by you
    • Start-Pomodoro -Minutes 10
  • The function will set your computer in presentation mode which will suppress all notifications and popups on your windows machine
  • Set your Skype for Business client in Do Not Disturb using a custom presence state called Pomodoro Sprint and set your personal note to when you will be available
  • You can mute and unmute your phone during the Pomodoro Sprint using IFTTT triggers
    • You need to have created the mute and unmute triggers, generated a webhook key and installed IFTTT on your mobile
    • Will write a tutorial in a later blogpost
  • It will make you available again after 25 minutes or your specified time, turning on notifications, making you available again in Skype for Business and unmute your phone. Awesome stuff :)

This is an open source project on GitHub so please feel free to add your own suggestions to the project.

How to get started

  1. Open PowerShell and run the following cmdlet
    • Install-Module -Name PSProductivityTools
    • if you need to update it later run Update-Module -Name PSProductivityTools and restart all PowerShell instances
    • You need to run PowerShell as administrator in order to install the module
  2. Now you can run Start-Pomdoro at any time from PowerShell
    • Start-Pomodoro
      • This will set your computer in presentation mode
    • Start-Pomodoro -Minutes 15 -EndPersonalNote “It’s a good day today”

What is the Pomodoro Technique?

The goal of the technique is to reduce the impact of internal and external interruptions on focus and flow. A pomodoro is indivisible. When interrupted during a pomodoro, either the other activity must be recorded and postponed (inform – negotiate – schedule – call back) or the pomodoro must be abandoned. The technique uses a timer to break down work into intervals, traditionally 25 minutes in length, separated by short breaks. These intervals are named pomodoros. Read more about the Pomodoro Technique here

Why the Pomodoro Technique?

If I can get one Pomodoro done in between meetings, workshops and calls, then I am happy. That Pomodoro is priceless and it helps me answer that long email, get started on that document or wrap my head around a problem. 25 minutes is long enough so that I can reach my flow state and short enough that I feel that I actually can do it. It may take between 5-10 minutes to reach the flow state. If I manage to interrupt myself with social media, coffee break or decide to do something else, then I may spend longer time in total on that email instead of just get it done during a Pomodoro. If you want to succeed with Pomodoro, you need to make yourself unavailable, but equally important, you need to make yourself available again when those 25 minutes have passed. That is why we created the Pomodoro PowerShell tool

What is flow?

Flow is the peak performance state where you feel your best and you perform your best. The good news is, it’s hackable. One of the hacks is inducing flow using the Pomodoro Technique. Read more about flow over at the Flow Genome Project

An important part of succeeding with the Pomodoro Technique is lists with your most important tasks that you can prioritize. I use OneNote for that. Check out how I do it in my OneNote LifeHacks YouTube series 

How to set custom presence states in Skype for Business on your Windows machine

This works on Windows 10, Windows 8, Windows 7, Lync and Skype for Business desktop clients. Requires administrative rights to your computer

Wouldn’t it be cool if you could change your presence state in Skype for Business to match you current task such as busy in a Workshop, Do Not Disturb in a Pomodoro Sprint or Away Getting Coffee?

Turns out, you can by creating an XML file and adding a setting in your local registry. How? The easy way is to download my script, change the custom presences that is predefined in the script and run it.

  1. Download the script from TechNet Gallery
  2. The default custom presence states are shown below
  3. To change the names you need to open the script and write your own presence states
    • Away does not work as a custom presence state, if you put that in no custom states will show up in the client
    • The presence states that works are: Online, Busy, and Do-Not-Disturb
  4. To run the script, just type the following in PowerShell in elevated mode from the location you saved it
    • .\Set-CsCustomPresence.ps1
    • It works for Lync and Skype for Business
    • It works for 64-bit and 32-bit office
    • It works for MSI installed Office and Click-to-Run Office
    • The xml file will get stored under c:\_CustomPresence\CustomPresence.xml if that is your systemdrive
  5. You need to sign out of the client and back in for the changes to take effect
  6. The presence states works in the following scenarios
    • On English Skype for Business clients for you and your colleagues
    • On Skype for Business clients in your local location retrieved using (Get-Culture).LCID
    • For everyone in your Colleagues relationship level as long as they are running a client language version specified above
    • If you want external contacts to see your custom presence state you need to elevate them as colleagues in the relationship pane
      • Understand that they will also see you as in a meeting, in a call, your note and your location as well
    • If you are in an environment with more than two languages for you Office deployment, make sure you add an LCID per language in the script

Download the script here and use PowerShell to control your presence using the Lync 2013 Client SDK described here

You can now control you custom presence states using PowerShell, if you have installed the SDK, using the Publish-SfBContactInformation.ps1 found on GitHub here with this syntax

Publish-SfBContactInformation -CustomActivityId 1 -PersonalNote "Getting Stuff Done" -Location "@HomeOffice"

You are now ready to use this in a Pomodoro context, read how to get started with the open source PowerShell based Pomodoro timer here: https://msunified.net/2013/11/25/lock-down-your-lync-status-and-pc-notifications-using-powershell/

Office Communicator Custom Presence States

Any Post starting with this disclaimer means that this post was not written by me however I liked it and added to my blog. I will also include the link to the original or similar post to provide credit to the original author

http://technet.microsoft.com/en-us/library/bb963925.aspx
http://blogs.technet.com/toml/archive/2007/11/30/oc-custom-presence-states.aspx 
http://blog.tiensivu.com/aaron/archives/1341-Little-known-Office-Communicator-2007-feature-Custom-Presence-States.html
http://blogs.technet.com/brettjo/archive/2008/08/19/communicator-and-ocs-tech-tip-8-custom-presence.aspx

Office Communicator 2007 offers a few user defined areas, the Note, your location and Custom Presence

Please note something important – there is no defined custom presence that includes the Yellow (away) status. The reason is that it is not supported as it was deemed to be a value that you wouldn’t set yourself but would be set based on your activity. I would agree with that for Away but Be Right Back I can set but it is what it is. What happens if you set one of the states to the Yellow (away) states – none of the custom presence items show.

Another item to note that can be a bit annoying – you can’t sign in with the custom presence, you have to sign in with a standard state and then change. My approach is to pick the state that matches what I will eventually select with my custom text.

Universal limitations

  • You can only define up to 4 custom entries.
  • Maximum length of the custom presence description is 64 characters.
  • XML customState availability can be set to “online”, “busy” and “do-not-disturb”.
  • If you want the custom states set for everyone on the computer system instead of the current user, you need to change the .REG file from HKCU to HKLM. (Mostly only useful for TS servers)

Here is syntax for presence.xml used for what you see and a reg file syntax is also included. Please note that you can put the xml anywhere just update the reg file syntax for the correct path.

NOTE: The LCID=”1033″ specify the language of the clients you want the custom presence to be displayed . 1033 is english, if your contacts have clients with different languages you need to find the corresponding language code. See list of locale ID (LCID): http://msdn.microsoft.com/en-gb/goglobal/bb964664.aspx You can have multiple languages for the same state so that it works for different clients. If you use the program that you can download at the bottom of this post you need to manually change the LCID in the generated xml

<customStates>
    <customState ID=”1″ availability=”online”>
        <activity LCID=”1033″>Out and about – use mobile</activity>
        <activity LCID=”1044″>Out and about – use mobile</activity>
    </customState>
    <customState ID=”2″ availability=”Busy”>
        <activity LCID=”1033″>Down in the lab – use mobile</activity>
        <activity LCID=”1044″>Down in the lab – use mobile</activity>

    </customState>
    <customState ID=”3″ availability=”busy”>
        <activity LCID=”1033″>Reviewing program documents</activity>
        <activity LCID=”1044″>Reviewing program documents</activity>

    </customState>
    <customState ID=”4″ availability=”do-not-disturb”>
        <activity LCID=”1033″>Executive Briefing with Customer</activity>
        <activity LCID=”1044″>Executive Briefing with Customer</activity>

    </customState>
</customStates>

and here is the syntax of the reg file

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Communicator]
@=””
CustomStateURL”=file:///C:/Users/toml/Documents/presence.xml

image_4 

 

A program has been written to automate this process

Setting the Pre-Req’s on Vista and MOC R2

Amending the registry:

1) Start –> RegEdit.exe

2) Navigate (by double clicking) to the following key: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Communicator

3) Change the EnableSIPHighSecurityMode key name to be 0

4) Right click EnableSIPHighSecurityMode –> Modify –> change it to 0 –> OK

It should look like this:

image

5) Close the registry editor.

Go here to download the tool: http://www.confusedamused.com/notebook/communicator-2007-custom-presence-tool/