Compare commits
3 Commits
d6f688d985
...
fa3faba5a2
Author | SHA1 | Date |
---|---|---|
Lucien Cartier-Tilet | fa3faba5a2 | |
Lucien Cartier-Tilet | 6843dfbdbc | |
Lucien Cartier-Tilet | ab489600c1 |
|
@ -348,8 +348,8 @@
|
||||||
:END:
|
:END:
|
||||||
The following function allows the user to get the list of available
|
The following function allows the user to get the list of available
|
||||||
wallpapers I have in my wallpapers directory. This depends on the variable
|
wallpapers I have in my wallpapers directory. This depends on the variable
|
||||||
described in [[#h-027a8758-fa96-473f-8ad3-44e07a5e7f4b]]. By the way, the assert
|
described in [[#Variable_definitions-Wallpapers_directory-23b54f4f]]. By the
|
||||||
on line 3 allows Lua to wait for ~popen~ to run.
|
way, the assert on line 3 allows Lua to wait for ~popen~ to run.
|
||||||
#+BEGIN_SRC lua -n
|
#+BEGIN_SRC lua -n
|
||||||
local function get_papes()
|
local function get_papes()
|
||||||
local i, papes, popen = 0, {}, io.popen
|
local i, papes, popen = 0, {}, io.popen
|
||||||
|
@ -368,9 +368,7 @@
|
||||||
[[https://github.com/l3ib/nitrogen/][Nitrogen]] and [[https://github.com/dylanaraps/pywal][Pywal]].
|
[[https://github.com/l3ib/nitrogen/][Nitrogen]] and [[https://github.com/dylanaraps/pywal][Pywal]].
|
||||||
#+BEGIN_SRC lua
|
#+BEGIN_SRC lua
|
||||||
local function set_random_pape()
|
local function set_random_pape()
|
||||||
papes = get_papes()
|
awful.spawn.with_shell("pape-update")
|
||||||
pape = papes[math.random(#papes)]
|
|
||||||
awful.spawn.with_shell("nitrogen --set-scaled "..pape.." && wal -o wal-set -i "..pape)
|
|
||||||
naughty.notify({ preset = naughty.config.presets.normal,
|
naughty.notify({ preset = naughty.config.presets.normal,
|
||||||
title = "Wallpaper change",
|
title = "Wallpaper change",
|
||||||
text = "Done!"})
|
text = "Done!"})
|
||||||
|
@ -385,8 +383,7 @@
|
||||||
wallpaper:
|
wallpaper:
|
||||||
#+BEGIN_SRC lua
|
#+BEGIN_SRC lua
|
||||||
local function set_wallpaper(_)
|
local function set_wallpaper(_)
|
||||||
awful.spawn.with_shell("nitrogen --set-scaled (cat $HOME/.cache/wal/wal)")
|
awful.spawn.with_shell("wal -i (cat $HOME/.cache/wal/wal) && pape-restore")
|
||||||
awful.spawn.with_shell("wal -i (cat $HOME/.cache/wal/wal)")
|
|
||||||
awful.spawn.with_shell("xrdb $HOME/.Xresources")
|
awful.spawn.with_shell("xrdb $HOME/.Xresources")
|
||||||
end
|
end
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
@ -396,7 +393,7 @@
|
||||||
:CUSTOM_ID: Custom_functions-Layout_manipulation-6bc7db06
|
:CUSTOM_ID: Custom_functions-Layout_manipulation-6bc7db06
|
||||||
:END:
|
:END:
|
||||||
The following function is used by a shortcut described below in
|
The following function is used by a shortcut described below in
|
||||||
[[#h-521b02ca-0ad3-44e8-8d5b-1e75401490da]].
|
[[#Keybindings-Clients-f9f96d60]].
|
||||||
#+BEGIN_SRC lua
|
#+BEGIN_SRC lua
|
||||||
local function client_go_back()
|
local function client_go_back()
|
||||||
awful.client.focus.history.previous()
|
awful.client.focus.history.previous()
|
||||||
|
@ -822,7 +819,7 @@
|
||||||
When a screen’s geometry changes (e.g. when a different resolution is
|
When a screen’s geometry changes (e.g. when a different resolution is
|
||||||
applied), the signal ~property::geometry~ is sent. When this is the case, the
|
applied), the signal ~property::geometry~ is sent. When this is the case, the
|
||||||
wallpaper should be redisplayed since it won’t necessarily fit the new
|
wallpaper should be redisplayed since it won’t necessarily fit the new
|
||||||
geometry of the screen. And remember, I have a [[#h-39816309-d36d-4fb1-9c76-942a85b7407b][function that does exactly
|
geometry of the screen. And remember, I have a [[#Custom_functions-Wallpaper-related_functions-Restore_previous_wallpaper-8b5bc08c][function that does exactly
|
||||||
that]]! Let’s connect this function to the geometry change signal:
|
that]]! Let’s connect this function to the geometry change signal:
|
||||||
#+BEGIN_SRC lua
|
#+BEGIN_SRC lua
|
||||||
screen.connect_signal("property::geometry", set_wallpaper)
|
screen.connect_signal("property::geometry", set_wallpaper)
|
||||||
|
@ -848,14 +845,14 @@
|
||||||
|
|
||||||
Next, let’s build a list of tags for the screen. *Be aware that each screen
|
Next, let’s build a list of tags for the screen. *Be aware that each screen
|
||||||
has its own tag table!* The default layout will be the first refered to in
|
has its own tag table!* The default layout will be the first refered to in
|
||||||
[[#h-97ec07e5-68de-4c7e-bdf2-84255c09b552][the layouts list described above]].
|
[[#Layouts-be55a7fd][the layouts list described above]].
|
||||||
#+NAME: screen-taglist
|
#+NAME: screen-taglist
|
||||||
#+BEGIN_SRC lua :tangle no
|
#+BEGIN_SRC lua :tangle no
|
||||||
awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" }, s, awful.layout.layouts[1])
|
awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" }, s, awful.layout.layouts[1])
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
Next, let’s create the taglist widget. It will use the ~taglist_buttons~
|
Next, let’s create the taglist widget. It will use the ~taglist_buttons~
|
||||||
[[#h-2113b6d4-9160-4d7f-a00e-fcae82c032f1][declared above]] in order to handle clicks on tags, and due to the filter, all
|
[[#Top_bar-Tag_list-d43dbb62][declared above]] in order to handle clicks on tags, and due to the filter, all
|
||||||
tags will be displayed in the tagbar ([[https://awesomewm.org/apidoc/widgets/awful.widget.taglist.html#List_filters][more about tag filters]]).
|
tags will be displayed in the tagbar ([[https://awesomewm.org/apidoc/widgets/awful.widget.taglist.html#List_filters][more about tag filters]]).
|
||||||
#+NAME: screen-taglist-widget
|
#+NAME: screen-taglist-widget
|
||||||
#+BEGIN_SRC lua :tangle no
|
#+BEGIN_SRC lua :tangle no
|
||||||
|
@ -867,7 +864,7 @@
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
A tasklist widget will also get created thanks with the ~tasklist_button~
|
A tasklist widget will also get created thanks with the ~tasklist_button~
|
||||||
[[#h-2113b6d4-9160-4d7f-a00e-fcae82c032f1][declared above]] that will handle clicks on tasks. Contrarily to the taglist
|
[[#Top_bar-Tag_list-d43dbb62][declared above]] that will handle clicks on tasks. Contrarily to the taglist
|
||||||
widget above, the tasklist will only display the screen’s current tags thanks
|
widget above, the tasklist will only display the screen’s current tags thanks
|
||||||
to its filter.
|
to its filter.
|
||||||
#+NAME: screen-tasklist-widget
|
#+NAME: screen-tasklist-widget
|
||||||
|
@ -1381,17 +1378,17 @@
|
||||||
Here is the list of properties with their value to apply to all clients, and
|
Here is the list of properties with their value to apply to all clients, and
|
||||||
a short explanation as to what they do.
|
a short explanation as to what they do.
|
||||||
#+NAME: rules-universal-properties-table
|
#+NAME: rules-universal-properties-table
|
||||||
| Property | Value | What it does |
|
| Property | Value | What it does |
|
||||||
|---------------+---------------------------------------------------------+---------------------------------------------------------------------|
|
|---------------+---------------------------------------------------------+-------------------------------------------------------------------------|
|
||||||
| border_width | beautiful.border_width | Set the width of the window’s border |
|
| border_width | beautiful.border_width | Set the width of the window’s border |
|
||||||
| border_color | beautiful.border_normal | Set the color of the window’s border |
|
| border_color | beautiful.border_normal | Set the color of the window’s border |
|
||||||
| focus | awful.client.focus.filter | Set focus on the new window, except filtered out windows |
|
| focus | awful.client.focus.filter | Set focus on the new window, except filtered out windows |
|
||||||
| raise | true | Set it as raised window |
|
| raise | true | Set it as raised window |
|
||||||
| keys | clientkeys | Set the client’s shortcuts set in [[#h-521b02ca-0ad3-44e8-8d5b-1e75401490da][Shortcuts/Clients]] |
|
| keys | clientkeys | Set the client’s shortcuts set in [[*Clients][Shortcuts/Clients]] |
|
||||||
| buttons | clientbuttons | Set the client’s mouse shortcuts from [[#h-8932afa5-64fe-4549-ac57-ef698dcb7e6c][Mouse bindings]] |
|
| buttons | clientbuttons | Set the client’s mouse shortcuts from [[#Mouse_bindings-eb4a69a8][Mouse bindings]] |
|
||||||
| screen | awful.screen.preferred | Spawn the client on the main screen |
|
| screen | awful.screen.preferred | Spawn the client on the main screen |
|
||||||
| placement | awful.placement.no_overlap+awful.placement.no_offscreen | Avoid the client to appear off the screen and overlaping another client |
|
| placement | awful.placement.no_overlap+awful.placement.no_offscreen | Avoid the client to appear off the screen and overlaping another client |
|
||||||
| round_corners | true | Enable rounded corners for client |
|
| round_corners | true | Enable rounded corners for client |
|
||||||
|
|
||||||
#+NAME: rules-universal-properties
|
#+NAME: rules-universal-properties
|
||||||
#+BEGIN_SRC emacs-lisp :tangle no :exports none :var properties=rules-universal-properties-table :cache yes
|
#+BEGIN_SRC emacs-lisp :tangle no :exports none :var properties=rules-universal-properties-table :cache yes
|
||||||
|
@ -1548,7 +1545,7 @@
|
||||||
:END:
|
:END:
|
||||||
It is possible for Awesome to send request signals, such as the request to
|
It is possible for Awesome to send request signals, such as the request to
|
||||||
create titlebar (generally for new clients). The following snippet handles
|
create titlebar (generally for new clients). The following snippet handles
|
||||||
this titlebar creation if titlebar creation was set to ~true~ in the [[#h-972e7966-6adf-41bc-9ab3-e58725b93f7c][rules]].
|
this titlebar creation if titlebar creation was set to ~true~ in the [[#Rules-c6142cdf][rules]].
|
||||||
For a detailed explanation of the code, see below.
|
For a detailed explanation of the code, see below.
|
||||||
#+BEGIN_SRC lua
|
#+BEGIN_SRC lua
|
||||||
client.connect_signal("request::titlebars", function(c)
|
client.connect_signal("request::titlebars", function(c)
|
||||||
|
|
|
@ -26,6 +26,8 @@
|
||||||
- [[#emoji-picker][Emoji picker]]
|
- [[#emoji-picker][Emoji picker]]
|
||||||
- [[#lock][Lock]]
|
- [[#lock][Lock]]
|
||||||
- [[#mp42webm][mp42webm]]
|
- [[#mp42webm][mp42webm]]
|
||||||
|
- [[#pape-update][pape-update]]
|
||||||
|
- [[#pape-restore][pape-restore]]
|
||||||
- [[#pinfo][Pinfo]]
|
- [[#pinfo][Pinfo]]
|
||||||
- [[#polybar-launch][Polybar-launch]]
|
- [[#polybar-launch][Polybar-launch]]
|
||||||
- [[#rofi-mount][Rofi-mount]]
|
- [[#rofi-mount][Rofi-mount]]
|
||||||
|
@ -431,6 +433,33 @@
|
||||||
ffmpeg -i $argv[1] -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis $argv[1].webm
|
ffmpeg -i $argv[1] -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis $argv[1].webm
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
* pape-update
|
||||||
|
:PROPERTIES:
|
||||||
|
:HEADER-ARGS: :tangle ~/.local/bin/pape-update
|
||||||
|
:CUSTOM_ID: pape-update-bdecbadf
|
||||||
|
:END:
|
||||||
|
This little tool updates my wallpaper using both pywal and nitrogen (because
|
||||||
|
apparently pywal doesn’t like AwesomeWM). It depends on [[#pape-restore-981c39c2][~pape-restore~]].
|
||||||
|
#+BEGIN_SRC fish
|
||||||
|
#!/usr/bin/fish
|
||||||
|
wal -i ~/Pictures/Wallpapers
|
||||||
|
pape-restore
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
* pape-restore
|
||||||
|
:PROPERTIES:
|
||||||
|
:HEADER-ARGS: :tangle ~/.local/bin/pape-restore
|
||||||
|
:CUSTOM_ID: pape-restore-981c39c2
|
||||||
|
:END:
|
||||||
|
Similarly to ~pape-update~, this tool restores my wallpaper back to the same
|
||||||
|
state as I left it last time.
|
||||||
|
#+BEGIN_SRC fish
|
||||||
|
#!/usr/bin/fish
|
||||||
|
for i in (seq (xrandr --current | grep ' connected' | wc -l))
|
||||||
|
nitrogen --set-zoom-fill (cat ~/.cache/wal/wal) --head=(math "$i - 1")
|
||||||
|
end
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
* Pinfo
|
* Pinfo
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:HEADER-ARGS: :tangle ~/.local/bin/pinfo
|
:HEADER-ARGS: :tangle ~/.local/bin/pinfo
|
||||||
|
@ -631,7 +660,7 @@
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
Now, let’s select the mount point of our partition. We’ll call the function
|
Now, let’s select the mount point of our partition. We’ll call the function
|
||||||
=getmount= described in [[#h-a17825bd-96e2-4c90-99ef-b0f2895cffb6][Get the mount point]] to select it.
|
=getmount= described in [[#Rofi-mount-Get_the_mount_point-6c4bac06][Get the mount point]] to select it.
|
||||||
#+BEGIN_SRC fish
|
#+BEGIN_SRC fish
|
||||||
getmount
|
getmount
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
@ -819,7 +848,7 @@
|
||||||
:CUSTOM_ID: Rofi-mount-Launch_the_mounting_functions-218ad001
|
:CUSTOM_ID: Rofi-mount-Launch_the_mounting_functions-218ad001
|
||||||
:END:
|
:END:
|
||||||
Now that we have declared our functions and set our variables, we’ll read the
|
Now that we have declared our functions and set our variables, we’ll read the
|
||||||
temporary file described in [[#h-2307005f-385e-4149-b885-55e699c822bb][Get the mountable elements]]. The amount of lines
|
temporary file described in [[#Rofi-mount-Get_the_mountable_elements-24db7834][Get the mountable elements]]. The amount of lines
|
||||||
is passed in a switch statement.
|
is passed in a switch statement.
|
||||||
#+BEGIN_SRC fish
|
#+BEGIN_SRC fish
|
||||||
switch (wc -l < $TMPDRIVES)
|
switch (wc -l < $TMPDRIVES)
|
||||||
|
@ -1111,7 +1140,7 @@
|
||||||
:END:
|
:END:
|
||||||
If several types of unmountable drives are available, let’s ask the user
|
If several types of unmountable drives are available, let’s ask the user
|
||||||
which type to unmount based on the content of the temporary file declared in
|
which type to unmount based on the content of the temporary file declared in
|
||||||
[[#h-dab41471-4f69-4be8-8d77-58ccc604e4e2][Get the unmountable drives]]. First, let’s declare the function.
|
[[#Rofi-umount-Get_the_unmountable_drives-89c71040][Get the unmountable drives]]. First, let’s declare the function.
|
||||||
#+BEGIN_SRC fish
|
#+BEGIN_SRC fish
|
||||||
function asktype
|
function asktype
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
|
@ -645,7 +645,7 @@
|
||||||
remember the syntax of =tar=. So, I made the following abbreviations, and
|
remember the syntax of =tar=. So, I made the following abbreviations, and
|
||||||
one day hopefully, after seeing the abbreviations’ expansion over and over
|
one day hopefully, after seeing the abbreviations’ expansion over and over
|
||||||
I’ll remember the command like I did for the abbreviation of =remove= (see
|
I’ll remember the command like I did for the abbreviation of =remove= (see
|
||||||
[[#h-281a59aa-4ea0-47ab-a4cc-33fff8d38165][Package management]]).
|
[[#Abbreviations-System_management_(packages_and_services)-Package_management-efbcdf0f][Package management]]).
|
||||||
#+NAME: tar-abbr
|
#+NAME: tar-abbr
|
||||||
| abbreviation | command |
|
| abbreviation | command |
|
||||||
|--------------+-----------|
|
|--------------+-----------|
|
||||||
|
|
|
@ -644,7 +644,7 @@
|
||||||
| $mod+space | focus mode_toggle | Toggles the focus between tiled and floating windows |
|
| $mod+space | focus mode_toggle | Toggles the focus between tiled and floating windows |
|
||||||
| $mod+Ctrl+c | move position center | Centers the focused floating window |
|
| $mod+Ctrl+c | move position center | Centers the focused floating window |
|
||||||
If you want to move around your floating window, you can do it with your
|
If you want to move around your floating window, you can do it with your
|
||||||
mouse while holding down the floating modifier declared [[#h-944b65df-c5c6-4f9a-9824-08e063ba20dd][here]].
|
mouse while holding down the floating modifier declared [[#Variables_declaration-Floating_windows-897d0c3b][here]].
|
||||||
|
|
||||||
Here is the configuration:
|
Here is the configuration:
|
||||||
#+BEGIN_SRC conf
|
#+BEGIN_SRC conf
|
||||||
|
|
|
@ -150,7 +150,7 @@
|
||||||
:CUSTOM_ID: Rounded_corners-33bfcd20
|
:CUSTOM_ID: Rounded_corners-33bfcd20
|
||||||
:END:
|
:END:
|
||||||
A great feature added by ibhagwan’s fork of compton is the addition of rounded
|
A great feature added by ibhagwan’s fork of compton is the addition of rounded
|
||||||
corners from sdhand’s fork, and the Kawase blur (described [[#h-e40a644d-b594-41f0-9aca-307f77c456ba][here]]) from
|
corners from sdhand’s fork, and the Kawase blur (described [[#Background_blurring-55835066][here]]) from
|
||||||
tryone144’s fork. Here we can see the declaration of the corners’ radius:
|
tryone144’s fork. Here we can see the declaration of the corners’ radius:
|
||||||
#+BEGIN_SRC conf
|
#+BEGIN_SRC conf
|
||||||
corner-radius = 9.0;
|
corner-radius = 9.0;
|
||||||
|
|
|
@ -394,7 +394,7 @@
|
||||||
:CUSTOM_ID: Declaration_of_the_bars-Bottom_bar_declaration-Colors_and_display-854aae82
|
:CUSTOM_ID: Declaration_of_the_bars-Bottom_bar_declaration-Colors_and_display-854aae82
|
||||||
:END:
|
:END:
|
||||||
Nothing changes from the top bar, all the variables stay with the same
|
Nothing changes from the top bar, all the variables stay with the same
|
||||||
values. See [[#h-9f83a6fd-652a-45ca-894b-0a0e0d3f0084][Colors and display]] of the top bar for more information.
|
values. See [[#Declaration_of_the_bars-Bottom_bar_declaration-Colors_and_display-854aae82][Colors and display]] of the top bar for more information.
|
||||||
#+BEGIN_SRC conf-windows
|
#+BEGIN_SRC conf-windows
|
||||||
<<bar-colors>>
|
<<bar-colors>>
|
||||||
<<line-border-color>>
|
<<line-border-color>>
|
||||||
|
@ -406,7 +406,7 @@
|
||||||
:CUSTOM_ID: Declaration_of_the_bars-Bottom_bar_declaration-Fonts_and_locale-67459d62
|
:CUSTOM_ID: Declaration_of_the_bars-Bottom_bar_declaration-Fonts_and_locale-67459d62
|
||||||
:END:
|
:END:
|
||||||
Again, nothing changes from the top bar, so for more info on what’s going
|
Again, nothing changes from the top bar, so for more info on what’s going
|
||||||
on, see [[#h-c5660945-4785-40f7-b89e-f9f31b85a062][Fonts and locale]] of the top bar.
|
on, see [[#Declaration_of_the_bars-Top_bar_declaration-Fonts_and_locale-70a25466][Fonts and locale]] of the top bar.
|
||||||
#+BEGIN_SRC conf-windows
|
#+BEGIN_SRC conf-windows
|
||||||
<<locale-bar>>
|
<<locale-bar>>
|
||||||
<<font-config()>>
|
<<font-config()>>
|
||||||
|
@ -566,7 +566,7 @@
|
||||||
:CUSTOM_ID: Modules-Hardware-Xbacklight-2901c504
|
:CUSTOM_ID: Modules-Hardware-Xbacklight-2901c504
|
||||||
:END:
|
:END:
|
||||||
This module is used in order to display the level of brightness of a screen.
|
This module is used in order to display the level of brightness of a screen.
|
||||||
It is not used by itself, but rather by other modules, such as [[#h-9adad94d-961c-44a7-aed1-91a8f22b4eef][ACPI
|
It is not used by itself, but rather by other modules, such as [[#Modules-Hardware-ACPI_backlight-9eaeaa79][ACPI
|
||||||
backlight]]. First of all, this module is an internal module for xbacklight.
|
backlight]]. First of all, this module is an internal module for xbacklight.
|
||||||
It will also display the brightness percentage, prefixed by a sun emoji.
|
It will also display the brightness percentage, prefixed by a sun emoji.
|
||||||
Lastly, it will be underlined by a green line.
|
Lastly, it will be underlined by a green line.
|
||||||
|
@ -585,7 +585,7 @@
|
||||||
:END:
|
:END:
|
||||||
This module indicates the backlight level of a screen thanks to the ACPI
|
This module indicates the backlight level of a screen thanks to the ACPI
|
||||||
Linux module. There isn’t much to tell about the module itself other than it
|
Linux module. There isn’t much to tell about the module itself other than it
|
||||||
inherits the module described above, [[#h-8c6dd375-381c-47c4-861d-fda6e7283e9e][xbacklight]]. It also sets which driver
|
inherits the module described above, [[#Modules-Hardware-Xbacklight-2901c504][xbacklight]]. It also sets which driver
|
||||||
should be used, in this case the ~intel_backlight~ driver.
|
should be used, in this case the ~intel_backlight~ driver.
|
||||||
#+BEGIN_SRC conf-windows
|
#+BEGIN_SRC conf-windows
|
||||||
[module/backlight-acpi]
|
[module/backlight-acpi]
|
||||||
|
|
|
@ -3280,7 +3280,7 @@ haskell
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
~oss~ allows me to insert an org structure template defined in
|
~oss~ allows me to insert an org structure template defined in
|
||||||
~org-structure-template-alist~ (see [[#h-81bcc367-4b2a-4a10-b42c-7b3cb7fd2d60][User Configuration/Org-mode/Org
|
~org-structure-template-alist~ (see [[#User_Configuration-Org-mode-Org_variables-Org_behavior-0319db38][User Configuration/Org-mode/Org
|
||||||
Variables/Org behavior]]), while ~ooT~ displays the outline of the current org
|
Variables/Org behavior]]), while ~ooT~ displays the outline of the current org
|
||||||
file.
|
file.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue