aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dot_config/i3/config')
-rw-r--r--dot_config/i3/config631
1 files changed, 631 insertions, 0 deletions
diff --git a/dot_config/i3/config b/dot_config/i3/config
new file mode 100644
index 0000000..bb07f08
--- /dev/null
+++ b/dot_config/i3/config
@@ -0,0 +1,631 @@
1# This file is a modified version based on default i3-config-wizard config
2# source is available here:
3# https://raw.githubusercontent.com/endeavouros-team/endeavouros-i3wm-setup/master/.config/i3/config
4# Maintainer: joekamprad [[email protected]]
5# https://endeavouros.com
6#
7# iconic font icon search: https://fontawesome.com/v4.7/cheatsheet/
8#
9# --> to update this run the following command (will backup existing setup file)
10# wget --backups=1 https://raw.githubusercontent.com/endeavouros-team/endeavouros-i3wm-setup/main/.config/i3/config -P ~/.config/i3/
11#
12# Endeavouros-i3 config file
13# Source for complete framework of our i3 config and theming here: https://github.com/endeavouros-team/endeavouros-i3wm-setup
14# EndeavourOS wiki holds some Information also: https://discovery.endeavouros.com/window-tiling-managers/i3-wm/
15# Please see http://i3wm.org/docs/userguide.html for the official i3 reference!
16
17#######################
18# config starts here: #
19#######################
20
21# Font for window titles. Will also be used by the bar unless a different font
22# is used in the bar {} block below.
23# This font is widely installed, provides lots of unicode glyphs, right-to-left
24# text rendering and scalability on retina/hidpi displays (thanks to pango).
25font pango: Noto Sans Regular 11
26
27# set the mod key to the winkey:
28set $mod Mod4
29
30#####################
31# workspace layout: #
32#####################
33
34# default i3 tiling mode:
35workspace_layout default
36
37# i3 stacking layout:
38# Each window will be fullscreen and tabbed top to bottom.
39workspace_layout tabbed
40#workspace_layout stacking
41
42# i3 tabbed layout:
43# Each new window will open fullscreen as a tab (left to right)
44#workspace_layout tabbed
45
46##############################
47# extra options for windows: #
48##############################
49
50#border indicator on windows:
51#new_window pixel 1
52
53# thin borders
54# hide_edge_borders both
55
56# Set inner/outer gaps
57#gaps inner 0
58#gaps outer 0
59
60# show window title bars (not officially supported with i3gaps)
61#default_border normal
62
63# window title alignment
64#title_align center
65
66# Use Mouse+$mod to drag floating windows to their wanted position
67floating_modifier $mod
68
69# switch/iterate between workspaces
70bindsym $mod+Tab workspace next
71bindsym $mod+Shift+Tab workspace prev
72
73# switch to workspace
74bindsym $mod+1 workspace $ws1
75bindsym $mod+2 workspace $ws2
76bindsym $mod+3 workspace $ws3
77bindsym $mod+4 workspace $ws4
78bindsym $mod+5 workspace $ws5
79bindsym $mod+6 workspace $ws6
80bindsym $mod+7 workspace $ws7
81bindsym $mod+8 workspace $ws8
82bindsym $mod+9 workspace $ws9
83bindsym $mod+0 workspace $ws10
84
85# switch to workspace with numpad keys
86bindcode $mod+87 workspace 1
87bindcode $mod+88 workspace 2
88bindcode $mod+89 workspace 3
89bindcode $mod+83 workspace 4
90bindcode $mod+84 workspace 5
91bindcode $mod+85 workspace 6
92bindcode $mod+79 workspace 7
93bindcode $mod+80 workspace 8
94bindcode $mod+81 workspace 9
95bindcode $mod+90 workspace 10
96
97# switch to workspace with numlock numpad keys
98bindcode $mod+Mod2+87 workspace $ws1
99bindcode $mod+Mod2+88 workspace $ws2
100bindcode $mod+Mod2+89 workspace $ws3
101bindcode $mod+Mod2+83 workspace $ws4
102bindcode $mod+Mod2+84 workspace $ws5
103bindcode $mod+Mod2+85 workspace $ws6
104bindcode $mod+Mod2+79 workspace $ws7
105bindcode $mod+Mod2+80 workspace $ws8
106bindcode $mod+Mod2+81 workspace $ws9
107bindcode $mod+Mod2+90 workspace $ws10
108
109# move focused container to workspace
110bindsym $mod+Shift+1 move container to workspace $ws1
111bindsym $mod+Shift+2 move container to workspace $ws2
112bindsym $mod+Shift+3 move container to workspace $ws3
113bindsym $mod+Shift+4 move container to workspace $ws4
114bindsym $mod+Shift+5 move container to workspace $ws5
115bindsym $mod+Shift+6 move container to workspace $ws6
116bindsym $mod+Shift+7 move container to workspace $ws7
117bindsym $mod+Shift+8 move container to workspace $ws8
118bindsym $mod+Shift+9 move container to workspace $ws9
119bindsym $mod+Shift+0 move container to workspace $ws10
120
121# move focused container to workspace with numpad keys
122bindcode $mod+Shift+Mod2+87 move container to workspace $ws1
123bindcode $mod+Shift+Mod2+88 move container to workspace $ws2
124bindcode $mod+Shift+Mod2+89 move container to workspace $ws3
125bindcode $mod+Shift+Mod2+83 move container to workspace $ws4
126bindcode $mod+Shift+Mod2+84 move container to workspace $ws5
127bindcode $mod+Shift+Mod2+85 move container to workspace $ws6
128bindcode $mod+Shift+Mod2+79 move container to workspace $ws7
129bindcode $mod+Shift+Mod2+80 move container to workspace $ws8
130bindcode $mod+Shift+Mod2+81 move container to workspace $ws9
131bindcode $mod+Shift+Mod2+90 move container to workspace $ws10
132
133# move focused container to workspace with numpad keys
134bindcode $mod+Shift+87 move container to workspace $ws1
135bindcode $mod+Shift+88 move container to workspace $ws2
136bindcode $mod+Shift+89 move container to workspace $ws3
137bindcode $mod+Shift+83 move container to workspace $ws4
138bindcode $mod+Shift+84 move container to workspace $ws5
139bindcode $mod+Shift+85 move container to workspace $ws6
140bindcode $mod+Shift+79 move container to workspace $ws7
141bindcode $mod+Shift+80 move container to workspace $ws8
142bindcode $mod+Shift+81 move container to workspace $ws9
143bindcode $mod+Shift+90 move container to workspace $ws10
144
145# resize window (you can also use the mouse for that):
146mode "resize" {
147 bindsym h resize shrink width 10 px or 10 ppt
148 bindsym k resize grow height 10 px or 10 ppt
149 bindsym j resize shrink height 10 px or 10 ppt
150 bindsym l resize grow width 10 px or 10 ppt
151
152 # same bindings, but for the arrow keys
153 bindsym Left resize shrink width 10 px or 10 ppt
154 bindsym Up resize grow height 10 px or 10 ppt
155 bindsym Down resize shrink height 10 px or 10 ppt
156 bindsym Right resize grow width 10 px or 10 ppt
157
158 # back to normal: Enter or Escape
159 # bindsym Return mode "default"
160 bindsym Escape mode "default"
161}
162
163bindsym $mod+r mode "resize"
164bindsym $mod+space [floating] resize set 1280 800
165
166######################################
167# keybindings for different actions: #
168######################################
169
170# start a terminal
171bindsym $mod+Return exec xfce4-terminal
172
173# kill focused window
174bindsym $mod+q kill
175
176# exit-menu
177bindsym $mod+Shift+e exec ~/.config/i3/scripts/powermenu
178
179# Lock the system
180# lock with a picture:
181#bindsym $mod+l exec i3lock -i ~/.config/i3/i3-lock-screen.png -p default|win -t
182# lock by blurring the screen:
183bindsym $mod+l exec ~/.config/i3/scripts/blur-lock
184
185# reload the configuration file
186bindsym $mod+Shift+c reload
187
188# restart i3 inplace (preserves your layout/session, can be used to update i3)
189bindsym $mod+Shift+r restart
190
191# keybinding in fancy rofi (automated):
192bindsym F1 exec ~/.config/i3/scripts/keyhint-2
193# alternative
194# keybinding list in editor:
195# bindsym $mod+F1 exec xed ~/.config/i3/keybindings
196
197# Backlight control
198bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight +5 && notify-send "Brightness - $(xbacklight -get | cut -d '.' -f 1)%"
199bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -5 && notify-send "Brightness - $(xbacklight -get | cut -d '.' -f 1)%"
200
201# change focus
202bindsym $mod+j focus left
203bindsym $mod+k focus down
204bindsym $mod+b focus up
205bindsym $mod+o focus right
206
207# alternatively, you can use the cursor keys:
208bindsym $mod+Left focus left
209bindsym $mod+Down focus down
210bindsym $mod+Up focus up
211bindsym $mod+Right focus right
212
213# move focused window
214bindsym $mod+Shift+j move left
215bindsym $mod+Shift+k move down
216bindsym $mod+Shift+b move up
217bindsym $mod+Shift+o move right
218
219# alternatively, you can use the cursor keys:
220bindsym $mod+Shift+Left move left
221bindsym $mod+Shift+Down move down
222bindsym $mod+Shift+Up move up
223bindsym $mod+Shift+Right move right
224
225# split in horizontal orientation
226bindsym $mod+h split h
227
228# split in vertical orientation
229bindsym $mod+v split v
230
231# enter fullscreen mode for the focused container
232bindsym $mod+f fullscreen toggle
233
234# change container layout (stacked, tabbed, toggle split)
235bindsym $mod+s layout stacking
236bindsym $mod+g layout tabbed
237bindsym $mod+e layout toggle split
238
239# toggle tiling / floating
240bindsym $mod+Shift+space floating toggle
241
242# change focus between tiling / floating windows
243#bindsym $mod+space focus mode_toggle
244
245# focus the parent container
246bindsym $mod+a focus parent
247
248# open new empty workspace
249bindsym $mod+Shift+n exec --no-startup-id ~/.config/i3/scripts/empty_workspace
250
251# Multimedia Keys
252
253# volume
254bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -D pulse sset Master 5%+ && pkill -RTMIN+1 i3blocks
255bindsym XF86AudioLowerVolume exec --no-startup-id amixer -D pulse sset Master 5%- && pkill -RTMIN+1 i3blocks
256
257# gradular volume control
258bindsym $mod+XF86AudioRaiseVolume exec --no-startup-id amixer -D pulse sset Master 1%+ && pkill -RTMIN+1 i3blocks
259bindsym $mod+XF86AudioLowerVolume exec --no-startup-id amixer -D pulse sset Master 1%- && pkill -RTMIN+1 i3blocks
260
261# mute
262bindsym XF86AudioMute exec --no-startup-id amixer sset Master toggle && killall -USR1 i3blocks
263
264# audio control
265bindsym XF86AudioPlay exec --no-startup-id playerctl play
266bindsym XF86AudioPause exec --no-startup-id playerctl pause
267bindsym XF86AudioNext exec --no-startup-id playerctl next
268bindsym XF86AudioPrev exec --no-startup-id playerctl previous
269
270# Redirect sound to headphones
271#bindsym $mod+p exec /usr/local/bin/switch-audio-port
272
273## App shortcuts
274bindsym $mod+w exec /usr/bin/firefox
275bindsym $mod+n exec /usr/bin/thunar
276bindsym Print exec --no-startup-id mkdir -p ~/Pictures/Screenshot/`date +"%Y/%m"` && scrot ~/Pictures/Screenshot/%Y/%m/%Y-%m-%d-%T-screenshot.png && notify-send "Screenshot saved"
277
278# Power Profiles menu switcher (rofi)
279bindsym $mod+Shift+p exec --no-startup-id ~/.config/i3/scripts/power-profiles
280
281##########################################
282# configuration for workspace behaviour: #
283##########################################
284
285# Define names for default workspaces for which we configure key bindings later on.
286# We use variables to avoid repeating the names in multiple places.
287set $ws1 "1:"
288set $ws2 "2:"
289set $ws3 "3:"
290set $ws4 "4:"
291set $ws5 "5:"
292set $ws6 "6"
293set $ws7 "7"
294set $ws8 "8"
295set $ws9 "9"
296set $ws10 "10"
297
298# use workspaces on different displays:
299# where you have to replace VGA-0/HDMI-0 with the names for your displays
300# you can get from xrandr command
301#workspace $ws1 output VGA-0
302#workspace $ws2 output VGA-0
303#workspace $ws3 output HDMI-0
304#workspace $ws4 output HDMI-0
305#workspace $ws5 output HDMI-0
306
307# bind program to workspace and focus to them on startup:
308#assign [class="Xfce4-terminal"] $ws1
309assign [class="jetbrains-clion"] $ws1
310assign [class="Thunar"] $ws3
311assign [class="thunderbird"] $ws4
312assign [class="TelegramDesktop"] $ws5
313assign [class="discord"] $ws5
314assign [class="Microsoft Teams - Preview"] $ws5
315
316# automatic set focus new window if it opens on another workspace then the current:
317for_window [class=Xfce4-terminal] focus
318for_window [class=(?i)firefox] focus
319for_window [class=Thunar] focus
320for_window [class=thunderbird] focus
321for_window [class=TelegramDesktop] focus
322for_window [class="Microsoft Teams - Preview"] focus
323
324##############
325# compositor #
326##############
327
328# transparency
329# uncomment one of them to be used (picom package is installed per default)
330# options could need changes, related to used GPU and drivers.
331# to find the right setting consult the archwiki or ask at the forum.
332#
333# xcompmgr: https://wiki.archlinux.org/title/Xcompmgr
334# manpage: https://man.archlinux.org/man/xcompmgr.1.en
335#exec --no-startup-id xcompmgr -C -n &
336# or an more specialized config like this:
337#exec --no-startup-id xcompmgr -c -C -t-5 -l-5 -r4.2 -o.55 &
338#
339# or:
340#
341# picom: https://wiki.archlinux.org/title/Picom
342# manpage: https://man.archlinux.org/man/picom.1.en
343# The default configuration is available in /etc/xdg/picom.conf
344# For modifications, it can be copied to ~/.config/picom/picom.conf or ~/.config/picom.conf
345#
346# using default config
347#exec_always --no-startup-id picom --backed glx --vsync
348#exec_always --no-startup-id picom -b
349#
350# for custom config:
351exec_always --no-startup-id picom --config ~/.config/picom.conf
352
353#############################################
354# autostart applications/services on login: #
355#############################################
356
357#get auth work with polkit-gnome
358exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
359
360#ibus daemon
361exec --no-startup-id env GDK_SCALE=1 ibus-daemon -drxR
362
363#fcitx5 daemon
364#exec --no-startup-id fcitx5 -d
365
366# dex execute .desktop files + apps using /etc/xdg/autostart.
367# when second to i3 a DE is installed or mixed usage of i3 + xfce4 or GNOME
368# in this cases better disable dex and use manual starting apps using xdg/autostart
369# if enabled you should comment welcome app.
370# https://github.com/jceb/dex
371#exec --no-startup-id dex -a -s /etc/xdg/autostart/:~/.config/autostart/
372exec --no-startup-id dex --autostart --environment i3
373
374# start welcome app
375#exec --no-startup-id sh /usr/share/endeavouros/scripts/welcome --startdelay=3
376
377# num lock activated
378#exec --no-startup-id numlockx on
379
380# configure multiple keyboard layouts and hotkey to switch (Alt+CAPSLOCK in this example)
381#exec --no-startup-id setxkbmap -layout 'us,sk' -variant altgr-intl,qwerty -option 'grp:alt_caps_toggle'
382
383# start conky:
384#exec_always --no-startup-id conky
385
386# start a script to setup displays
387# uncomment the next line, use arandr to setup displays and save the file as monitor:
388exec --no-startup-id ~/.screenlayout/monitor.sh
389
390# set wallpaper
391exec --no-startup-id sleep 2 && nitrogen --restore
392#exec --no-startup-id feh --bg-fill /usr/share/endeavouros/backgrounds/endeavouros_i3.png
393
394# set powersavings for display:
395#exec --no-startup-id xset s 0 dpms 600 600 600
396
397# disable power saving (for example if using xscreensaver)
398exec --no-startup-id xset -dpms
399
400# use xautolock to use autosuspend rules for mobile devices
401# https://wiki.archlinux.org/title/Session_lock#xautolock
402#exec --no-startup-id xautolock -time 60 -locker "systemctl suspend"
403
404
405# xscreensaver
406# https://www.jwz.org/xscreensaver
407#exec --no-startup-id xscreensaver --no-splash
408
409# Desktop notifications
410exec --no-startup-id dunst --config ~/.config/dunst/dunstrc
411# alternative if you installed aside with XFCE4:
412#exec --no-startup-id env GDK_SCALE=2 /usr/lib/xfce4/notifyd/xfce4-notifyd &
413
414# autotiling script
415# https://github.com/nwg-piotr/autotiling
416# `yay -S autotiling ;) (it is in AUR)
417#exec_always --no-startup-id autotiling
418
419# Autostart apps as you like
420#exec --no-startup-id sleep 2 && xfce4-terminal
421#exec --no-startup-id sleep 7 && firefox https://github.com/endeavouros-team/endeavouros-i3wm-setup/blob/main/force-knowledge.md
422#exec --no-startup-id sleep 3 && thunar
423exec --no-startup-id sleep 1 && thunderbird
424
425###############
426# system tray #
427###############
428# if you do not use dex: exec --no-startup-id dex --autostart --environment i3
429# you need to have tray apps started manually one by one:
430
431# start blueberry app for managing bluetooth devices from tray:
432#exec --no-startup-id blueberry-tray
433
434# networkmanager-applet
435#exec --no-startup-id nm-applet
436
437# clipman-applet
438#exec --no-startup-id xfce4-clipman
439
440##################
441# floating rules #
442##################
443
444# set floating (nontiling) for apps needing it
445for_window [class="Yad" instance="yad"] floating enable
446for_window [class="Galculator" instance="galculator"] floating enable
447for_window [class="Blueberry.py" instance="blueberry.py"] floating enable
448
449# set floating (nontiling) for special apps
450for_window [class="Xsane" instance="xsane"] floating enable
451for_window [class="Pavucontrol" instance="pavucontrol"] floating enable
452for_window [class="qt5ct" instance="qt5ct"] floating enable
453for_window [class="Blueberry.py" instance="blueberry.py"] floating enable
454for_window [class="Bluetooth-sendto" instance="bluetooth-sendto"] floating enable
455for_window [class="Pamac-manager"] floating enable
456for_window [window_role="About"] floating enable
457for_window [class="copyq"] floating enable
458for_window [class="Nm-connection-editor"] floating enable
459for_window [class="flameshot"] floating enable
460for_window [class="TelegramDesktop"] floating enable resize set 1300 1200
461for_window [class="eudic"] floating enable resize set 800 800
462
463# Make the currently focused window a scratchpad
464bindsym $mod+Shift+m move scratchpad
465
466# Show the first scratchpad window
467bindsym $mod+m scratchpad show
468
469# set border of floating window
470for_window [class="urxvt"] border pixel 1
471
472# set size of floating window
473#for_window [window_role="(?i)GtkFileChooserDialog"] resize set 640 480 #to set size of file choose dialog
474#for_window [class=".*"] resize set 1280 680 #to change size of all floating windows
475
476# set position of floating window
477for_window [class=".*"] move position center
478
479######################################
480# color settings for bar and windows #
481######################################
482
483# Define colors variables:
484set $darkbluetrans #08052be6
485set $darkblue #08052b
486set $lightblue #5294e2
487set $urgentred #e53935
488set $white #ffffff
489set $black #000000
490set $purple #e345ff
491set $darkgrey #383c4a
492set $grey #b0b5bd
493set $mediumgrey #8b8b8b
494set $yellowbrown #e1b700
495
496# define colors for windows:
497#class border bground text indicator child_border
498client.focused $lightblue $darkblue $white $mediumgrey $mediumgrey
499client.unfocused $darkblue $darkblue $grey $darkgrey $darkgrey
500client.focused_inactive $darkblue $darkblue $grey $black $black
501client.urgent $urgentred $urgentred $white $yellowbrown $yellowbrown
502
503############################################
504# bar settings (input comes from i3blocks) #
505############################################
506
507# Start i3bar to display a workspace bar
508# (plus the system information i3status finds out, if available)
509bar {
510 font pango: Noto Sans Regular 16
511 status_command i3blocks -c ~/.config/i3/i3blocks.conf
512 position bottom
513 output eDP-1
514 i3bar_command i3bar
515 #i3bar_command i3bar --transparency
516 #tray_output none
517 tray_output primary
518 tray_padding 0
519 strip_workspace_numbers no
520
521 colors {
522 separator $purple
523 background $darkgrey
524 statusline $white
525 focused_workspace $mediumgrey $grey $darkgrey $purple
526 active_workspace $lightblue $mediumgrey $darkgrey $purple
527 inactive_workspace $darkgrey $darkgrey $grey $purple
528 urgent_workspace $urgentred $urgentred $white $purple
529 }
530}
531
532
533bar {
534 font pango: Noto Sans Regular 11
535 status_command i3blocks -c ~/.config/i3/i3blocks.conf
536 position bottom
537 i3bar_command i3bar
538 output DP-3
539 tray_output primary
540 tray_padding 0
541 strip_workspace_numbers no
542
543 colors {
544 separator $purple
545 background $darkgrey
546 statusline $white
547 focused_workspace $mediumgrey $grey $darkgrey $purple
548 active_workspace $lightblue $mediumgrey $darkgrey $purple
549 inactive_workspace $darkgrey $darkgrey $grey $purple
550 urgent_workspace $urgentred $urgentred $white $purple
551 }
552}
553
554
555bar {
556 font pango: Noto Sans Regular 11
557 status_command i3blocks -c ~/.config/i3/i3blocks.conf
558 position bottom
559 i3bar_command i3bar
560 output DP-4
561 tray_output primary
562 tray_padding 0
563 strip_workspace_numbers no
564
565 colors {
566 separator $purple
567 background $darkgrey
568 statusline $white
569 focused_workspace $mediumgrey $grey $darkgrey $purple
570 active_workspace $lightblue $mediumgrey $darkgrey $purple
571 inactive_workspace $darkgrey $darkgrey $grey $purple
572 urgent_workspace $urgentred $urgentred $white $purple
573 }
574}
575
576# you can add different bars for multidisplay setups on each display:
577# set output HDMI-0 to the display you want the bar, --transparency can be set.
578# Transparency needs rgba color codes to be used where the last two letters are the transparency factor see here:
579# https://gist.github.com/lopspower/03fb1cc0ac9f32ef38f4
580# #08052be6 --> e6=90%
581
582# bar {
583# font pango: Noto Sans Regular 10
584# status_command i3blocks -c ~/.config/i3/i3blocks-2.conf
585# i3bar_command i3bar --transparency
586# output HDMI-0
587# position bottom
588#
589# When strip_workspace_numbers is set to yes,
590# any workspace that has a name of the form
591# “[n][:][NAME]” will display only the name.
592#strip_workspace_numbers yes
593##strip_workspace_name no
594#
595# colors {
596# separator $purple
597# background $darkbluetrans
598# statusline $white
599# border bg txt indicator
600# focused_workspace $lighterblue $lighterblue $darkblue $purple
601# active_workspace $lightdblue $lightdblue $darkblue $purple
602# inactive_workspace $darkblue $darkblue $lightdblue $purple
603# urgent_workspace $urgentred $urgentred $white $purple
604# }
605#}
606
607#####################################
608# Application menu handled by rofi: #
609#####################################
610
611## rofi bindings fancy application menu ($mod+d /F9 optional disabled)
612
613bindsym $mod+d exec rofi -modi drun -show drun \
614 -config ~/.config/rofi/rofidmenu.rasi
615
616#bindsym F9 exec rofi -modi drun -show drun \
617# -config ~/.config/rofi/rofidmenu.rasi
618
619## rofi bindings for window menu ($mod+t /F10 optional disabled)
620
621bindsym $mod+t exec rofi -show window \
622 -config ~/.config/rofi/rofidmenu.rasi
623
624#bindsym F10 exec rofi -show window \
625# -config ~/.config/rofi/rofidmenu.rasi
626
627## rofi bindings to manage clipboard (install rofi-greenclip from the AUR)
628
629#exec --no-startup-id greenclip daemon>/dev/null
630#bindsym $mod+c exec --no-startup-id rofi -modi "clipboard:greenclip print" -show clipboard \
631# -config ~/.config/rofi/rofidmenu.rasi
Powered by cgit v1.2.3 (git 2.41.0)