detached c9abb5e

fix(plymouth): remove lock icon, scale entry to 60%, fix bullet positions

commit
c9abb5ef0d184fd5a7e2c332d4d69009b96834d8
author
brice · · 2026-02-28 06:28 UTC
parent
e68bcf8
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
1 file · +13 -22
M assets/plymouth/archup.script +13 -22
@@ -101,13 +101,11 @@ fun hide_progress_bar()
101101
102102 fun show_password_dialog()
103103 {
104- lock.sprite.SetOpacity(1);
105104 entry.sprite.SetOpacity(1);
106105 }
107106
108107 fun hide_password_dialog()
109108 {
110- lock.sprite.SetOpacity(0);
111109 entry.sprite.SetOpacity(0);
112110 for (index = 0; bullet.sprites[index]; index++)
113111 bullet.sprites[index].SetOpacity(0);
@@ -133,39 +131,32 @@ fun stop_fake_progress()
133131
134132 #----------------------------------------- Dialogue --------------------------------
135133
136-lock.image = Image("lock.png");
137134 entry.image = Image("entry.png");
138135 bullet.image = Image("bullet.png");
139136
137+# Scale entry to 60% of its original size
138+entry.scaled_image = entry.image.Scale(
139+ Math.Int(entry.image.GetWidth() * 0.6),
140+ Math.Int(entry.image.GetHeight() * 0.6)
141+);
142+
140143 # Gap between logo bottom and entry top when password dialog is shown
141144 dialog_gap = 40;
142145
143146 # Total height of logo + gap + entry when grouped for password dialog
144-dialog_group_height = logo.image.GetHeight() + dialog_gap + entry.image.GetHeight();
147+dialog_group_height = logo.image.GetHeight() + dialog_gap + entry.scaled_image.GetHeight();
145148
146149 # Vertical start so the group is centered on screen
147150 dialog_group_y = Window.GetHeight() / 2 - dialog_group_height / 2;
148151
149152 # Entry sits below the logo in password mode
150153 entry.dialog_y = dialog_group_y + logo.image.GetHeight() + dialog_gap;
151-entry.x = Window.GetWidth() / 2 - entry.image.GetWidth() / 2;
154+entry.x = Window.GetWidth() / 2 - entry.scaled_image.GetWidth() / 2;
152155
153-entry.sprite = Sprite(entry.image);
156+entry.sprite = Sprite(entry.scaled_image);
154157 entry.sprite.SetPosition(entry.x, entry.dialog_y, 10001);
155158 entry.sprite.SetOpacity(0);
156159
157-# Scale lock icon to match entry field height
158-lock_height = entry.image.GetHeight() * 0.8;
159-lock_scale = lock_height / 96;
160-lock_width = 84 * lock_scale;
161-
162-scaled_lock = lock.image.Scale(lock_width, lock_height);
163-lock.sprite = Sprite(scaled_lock);
164-lock.x = entry.x - lock_width - 15;
165-lock.y = entry.dialog_y + entry.image.GetHeight() / 2 - lock_height / 2;
166-lock.sprite.SetPosition(lock.x, lock.y, 10001);
167-lock.sprite.SetOpacity(0);
168-
169160 # Bullet array
170161 bullet.sprites = [];
171162
@@ -217,11 +208,11 @@ fun display_password_callback (prompt, bullets)
217208 {
218209 if (!bullet.sprites[index])
219210 {
220- # Scale bullet image to 7x7 pixels
221- scaled_bullet = bullet.image.Scale(7, 7);
211+ # Scale bullet image to 6x6 pixels
212+ scaled_bullet = bullet.image.Scale(6, 6);
222213 bullet.sprites[index] = Sprite(scaled_bullet);
223- bullet.x = entry.x + 20 + index * (7 + 5);
224- bullet.y = entry.dialog_y + entry.image.GetHeight() / 2 - 3.5;
214+ bullet.x = entry.x + 12 + index * (6 + 4);
215+ bullet.y = entry.dialog_y + entry.scaled_image.GetHeight() / 2 - 3;
225216 bullet.sprites[index].SetPosition(bullet.x, bullet.y, 10002);
226217 }
227218 bullet.sprites[index].SetOpacity(1);
@@ -101,13 +101,11 @@ fun hide_progress_bar()
101 101
102 fun show_password_dialog()102 fun show_password_dialog()
103 {103 {
104- lock.sprite.SetOpacity(1);
105 entry.sprite.SetOpacity(1);104 entry.sprite.SetOpacity(1);
106 }105 }
107 106
108 fun hide_password_dialog()107 fun hide_password_dialog()
109 {108 {
110- lock.sprite.SetOpacity(0);
111 entry.sprite.SetOpacity(0);109 entry.sprite.SetOpacity(0);
112 for (index = 0; bullet.sprites[index]; index++)110 for (index = 0; bullet.sprites[index]; index++)
113 bullet.sprites[index].SetOpacity(0);111 bullet.sprites[index].SetOpacity(0);
@@ -133,39 +131,32 @@ fun stop_fake_progress()
133 131
134 #----------------------------------------- Dialogue --------------------------------132 #----------------------------------------- Dialogue --------------------------------
135 133
136-lock.image = Image("lock.png");
137 entry.image = Image("entry.png");134 entry.image = Image("entry.png");
138 bullet.image = Image("bullet.png");135 bullet.image = Image("bullet.png");
139 136
137+# Scale entry to 60% of its original size
138+entry.scaled_image = entry.image.Scale(
139+ Math.Int(entry.image.GetWidth() * 0.6),
140+ Math.Int(entry.image.GetHeight() * 0.6)
141+);
142+
140 # Gap between logo bottom and entry top when password dialog is shown143 # Gap between logo bottom and entry top when password dialog is shown
141 dialog_gap = 40;144 dialog_gap = 40;
142 145
143 # Total height of logo + gap + entry when grouped for password dialog146 # Total height of logo + gap + entry when grouped for password dialog
144-dialog_group_height = logo.image.GetHeight() + dialog_gap + entry.image.GetHeight();147+dialog_group_height = logo.image.GetHeight() + dialog_gap + entry.scaled_image.GetHeight();
145 148
146 # Vertical start so the group is centered on screen149 # Vertical start so the group is centered on screen
147 dialog_group_y = Window.GetHeight() / 2 - dialog_group_height / 2;150 dialog_group_y = Window.GetHeight() / 2 - dialog_group_height / 2;
148 151
149 # Entry sits below the logo in password mode152 # Entry sits below the logo in password mode
150 entry.dialog_y = dialog_group_y + logo.image.GetHeight() + dialog_gap;153 entry.dialog_y = dialog_group_y + logo.image.GetHeight() + dialog_gap;
151-entry.x = Window.GetWidth() / 2 - entry.image.GetWidth() / 2;154+entry.x = Window.GetWidth() / 2 - entry.scaled_image.GetWidth() / 2;
152 155
153-entry.sprite = Sprite(entry.image);156+entry.sprite = Sprite(entry.scaled_image);
154 entry.sprite.SetPosition(entry.x, entry.dialog_y, 10001);157 entry.sprite.SetPosition(entry.x, entry.dialog_y, 10001);
155 entry.sprite.SetOpacity(0);158 entry.sprite.SetOpacity(0);
156 159
157-# Scale lock icon to match entry field height
158-lock_height = entry.image.GetHeight() * 0.8;
159-lock_scale = lock_height / 96;
160-lock_width = 84 * lock_scale;
161-
162-scaled_lock = lock.image.Scale(lock_width, lock_height);
163-lock.sprite = Sprite(scaled_lock);
164-lock.x = entry.x - lock_width - 15;
165-lock.y = entry.dialog_y + entry.image.GetHeight() / 2 - lock_height / 2;
166-lock.sprite.SetPosition(lock.x, lock.y, 10001);
167-lock.sprite.SetOpacity(0);
168-
169 # Bullet array160 # Bullet array
170 bullet.sprites = [];161 bullet.sprites = [];
171 162
@@ -217,11 +208,11 @@ fun display_password_callback (prompt, bullets)
217 {208 {
218 if (!bullet.sprites[index])209 if (!bullet.sprites[index])
219 {210 {
220- # Scale bullet image to 7x7 pixels211+ # Scale bullet image to 6x6 pixels
221- scaled_bullet = bullet.image.Scale(7, 7);212+ scaled_bullet = bullet.image.Scale(6, 6);
222 bullet.sprites[index] = Sprite(scaled_bullet);213 bullet.sprites[index] = Sprite(scaled_bullet);
223- bullet.x = entry.x + 20 + index * (7 + 5);214+ bullet.x = entry.x + 12 + index * (6 + 4);
224- bullet.y = entry.dialog_y + entry.image.GetHeight() / 2 - 3.5;215+ bullet.y = entry.dialog_y + entry.scaled_image.GetHeight() / 2 - 3;
225 bullet.sprites[index].SetPosition(bullet.x, bullet.y, 10002);216 bullet.sprites[index].SetPosition(bullet.x, bullet.y, 10002);
226 }217 }
227 bullet.sprites[index].SetOpacity(1);218 bullet.sprites[index].SetOpacity(1);

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 0

    ↑↓ moveenter openesc close