Plan and structure more of your day. Put better things to do on your calendar, things you like such as hobbies or social events as well as "productive" tasks. Give yourself a generous amount of time to do things in, more than you expect to use. If it doesn't become a habit and you just waste all the time, figure out why. You aren't a robot and you have to make a life that works well with your natural feelings, so don't expect to become someone else just because you constructed a schedule that says so.
Edit: and don't make decisions "when you feel like it", then you fall off schedule. Plan a lot in advance and then try to stick to how you planned the day.