What's the best solution to let Members choose their own url-segment to display its profile?

I'm already using Solspaces «User» and «Zoo Visitor» as well as custom builded templates for profiles (like: domain.com/profile/1 … therefore no ee-templates like /member or /forum/member).

I would like to provide a text-field, where the members can define a url-segment like «macsteve» instead of the User-ID -> domain.com/profile/macsteve instead of domain.com/profile/6547

**EDIT:** If I use the native user\_name-field as the url-segment for the profile-page I can edit mod.channel.php to update the {profile\_path}-tag to display the username instead of the member\_id … but I'm struggling with profile\_path in the forum-module… does someone already did these edits and may share where to edit the forum-files/-paths to get the username instead of author\_id into the profile-paths?

**EDIT 2:** Found it: mod.forum\_core.php line ~4090 change:

```
'path:member_profile' => $this->profile_path($row['author_id']),

```

… to:

```
'path:member_profile' => $this->profile_path($this->EE->db->query("SELECT username FROM exp_members WHERE member_id = ".$row['author_id'])->row('username')),

```

… you may need to change some other profile-path-variables in mod.forum\_core.php — since we've wrote a KISS-and-table-less forum template we need to change only this one declaration.