В Linux Dansguardian может сделать это, если я правильно помню.
На любой платформе лучшее решение [самодисциплины и силы воли - они действительно не должны;)], вероятно, состоит в том, чтобы создать учетную запись имени пользователя и работы. В Linux вы можете использовать PAM для контроля времени входа в систему, поэтому рабочая учетная запись - единственная доступная 9-5, а другая - единственная доступная по вечерам / выходным.
Если у вас есть это, то есть выбор. Выберите один из:
специально разрешите этой учетной записи запускать связанные с работой программы или запретите запускать неработающие программы. Вы можете сделать это с помощью групп и прав доступа к файлам, например Linux или SELinux. Или, в Windows, вы можете сделать это с помощью активного каталога и групповой политики.
Просто удалите значки и т.д. Для программ, учетная запись которых не должна работать как "мягкое" ограничение или разочарование, а не для обеспечения полной безопасности.
Сочетание обоих из них.