diff --git a/android/gradle.properties b/android/gradle.properties
index 7d3ad5fb1ba80989d0c88e55ec415fdc9f5d25f7..2c9d43c520a06b38808242c86e55863c0653df88 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,5 +1,5 @@
 org.gradle.jvmargs=-Xmx1536M
 android.useAndroidX=true
 android.enableJetifier=true
-app.versionName=0.0.46
-app.versionCode=46
+app.versionName=0.0.47
+app.versionCode=47
diff --git a/assets/translations/en.json b/assets/translations/en.json
index 39f43601fb669841ab7db6ae1e9445dedd33d60b..4ff99c8b7a7d1ca5abdb3ee305a0a56c684e7676 100644
--- a/assets/translations/en.json
+++ b/assets/translations/en.json
@@ -26,6 +26,7 @@
   "top_artists_title": "Top artists ({daysCount} days)",
 
   "settings_title": "Settings",
+  "settings_title_global": "Global:",
   "settings_label_username": "Username: ",
   "settings_label_security_token": "Security token: ",
   "settings_title_days_count": "Days counts: ",
diff --git a/assets/translations/fr.json b/assets/translations/fr.json
index a6958bd9756fabc8972be9d3899b09d901b17b42..bbf6d69cc6b098c4a4c61dd8de0aaab7adc8eb92 100644
--- a/assets/translations/fr.json
+++ b/assets/translations/fr.json
@@ -26,6 +26,7 @@
   "top_artists_title": "Top artistes ({daysCount} jours)",
 
   "settings_title": "Paramètres",
+  "settings_title_global": "Généraux :",
   "settings_label_username": "Utilisateur : ",
   "settings_label_security_token": "Jeton de sécurité : ",
   "settings_title_days_count": "Nombre de jours : ",
diff --git a/fastlane/metadata/android/en-US/changelogs/47.txt b/fastlane/metadata/android/en-US/changelogs/47.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6c2d8288bd4f827ed9f2faa27ffa899ae9a2873c
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/47.txt
@@ -0,0 +1 @@
+Add "username" parameter.
diff --git a/fastlane/metadata/android/fr-FR/changelogs/47.txt b/fastlane/metadata/android/fr-FR/changelogs/47.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8c8e28bccb60b88f10ad6c945c51e7340e3ec15e
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/47.txt
@@ -0,0 +1 @@
+Ajout du paramètre "nom d'utilisateur".
diff --git a/lib/ui/screens/settings.dart b/lib/ui/screens/settings.dart
index f9eb4d62a48c4f589ddd6072e6f86978798489aa..79851e7b98a3b6e1fe7669eedbd516779a5a2a6e 100644
--- a/lib/ui/screens/settings.dart
+++ b/lib/ui/screens/settings.dart
@@ -9,17 +9,17 @@ class ScreenSettings extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
-    return Column(
-      mainAxisAlignment: MainAxisAlignment.start,
-      crossAxisAlignment: CrossAxisAlignment.start,
-      mainAxisSize: MainAxisSize.max,
-      children: <Widget>[
-        SizedBox(height: 8),
-        AppTitle1(text: tr('settings_title')),
-        SizedBox(height: 8),
-        AppTitle2(text: tr('settings_title_days_count')),
-        SettingsForm(),
-      ],
+    return Material(
+      color: Theme.of(context).colorScheme.background,
+      child: ListView(
+        padding: const EdgeInsets.symmetric(horizontal: 4),
+        physics: const BouncingScrollPhysics(),
+        children: <Widget>[
+          SizedBox(height: 8),
+          AppTitle1(text: tr('settings_title')),
+          SettingsForm(),
+        ],
+      ),
     );
   }
 }
diff --git a/lib/ui/widgets/settings_form.dart b/lib/ui/widgets/settings_form.dart
index 4c981f2a865ced49e465e2227bb5572e7aae3575..aad22f578a877733d717d2ece111b6ca1fe94b0b 100644
--- a/lib/ui/widgets/settings_form.dart
+++ b/lib/ui/widgets/settings_form.dart
@@ -1,9 +1,11 @@
 import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_bloc/flutter_bloc.dart';
+import 'package:unicons/unicons.dart';
 
 import 'package:scrobbles/config/default_settings.dart';
 import 'package:scrobbles/cubit/settings_cubit.dart';
+import 'package:scrobbles/ui/widgets/app_titles.dart';
 
 class SettingsForm extends StatefulWidget {
   const SettingsForm({super.key});
@@ -81,25 +83,31 @@ class _SettingsFormState extends State<SettingsForm> {
       crossAxisAlignment: CrossAxisAlignment.start,
       mainAxisSize: MainAxisSize.max,
       children: <Widget>[
+        SizedBox(height: 8),
+        AppTitle2(text: tr('settings_title_global')),
+
         // Username
-        // Text('settings_label_username').tr(),
-        // TextFormField(
-        //   controller: usernameController,
-        //   decoration: InputDecoration(
-        //     border: UnderlineInputBorder(),
-        //   ),
-        // ),
-        // SizedBox(height: 16),
-
-        // Security token
-        // Text('settings_label_security_token').tr(),
-        // TextFormField(
-        //   controller: securityTokenController,
-        //   decoration: InputDecoration(
-        //     border: UnderlineInputBorder(),
-        //   ),
-        // ),
-        // SizedBox(height: 20),
+        Text('settings_label_username').tr(),
+        TextFormField(
+          controller: usernameController,
+          decoration: InputDecoration(
+            border: UnderlineInputBorder(),
+            suffixIcon: ElevatedButton(
+              style: ElevatedButton.styleFrom(
+                shape: new RoundedRectangleBorder(
+                  borderRadius: new BorderRadius.circular(6.0),
+                ),
+              ),
+              child: Icon(UniconsLine.save),
+              onPressed: () {
+                saveSettings();
+              },
+            ),
+          ),
+        ),
+
+        SizedBox(height: 8),
+        AppTitle2(text: tr('settings_title_days_count')),
 
         // Statistics (recent)
         Row(
diff --git a/pubspec.yaml b/pubspec.yaml
index 52dd8059a04abbbe1d820cc4c745106bb79c0740..6235665f34fd0d66e96ccc8d56c6b9b88d03e48d 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,7 +3,7 @@ description: Display scrobbles data and charts
 
 publish_to: 'none'
 
-version: 0.0.46+46
+version: 0.0.47+47
 
 environment:
   sdk: '^3.0.0'