From 42a888c311e4ca0037d737ce56152202502fa45b Mon Sep 17 00:00:00 2001 From: Rene Kievits Date: Thu, 8 Dec 2022 16:06:16 +0100 Subject: [PATCH] clean up --- .gitmodules | 9 +- alacritty/alacritty.yml | 109 ---- awesome/src/assets/icons/network/delete.svg | 1 + awesome/src/assets/icons/network/edit.svg | 1 + .../src/assets/icons/network/link copy.svg | 5 + awesome/src/assets/icons/network/link-off.svg | 5 + awesome/src/lib/dbus_proxy | 1 - awesome/src/lib/lgi-async-extra | 1 - awesome/src/lib/lua-dbus_proxy | 1 + .../lua_libpulse_glib/lua_libpulse_glib.so | Bin 202808 -> 0 bytes .../src/lua_libpulse_glib/callback.o | Bin 10064 -> 0 bytes .../src/lua_libpulse_glib/context.o | Bin 33104 -> 0 bytes .../src/lua_libpulse_glib/convert.o | Bin 59792 -> 0 bytes .../src/lua_libpulse_glib/init.o | Bin 1360 -> 0 bytes .../src/lua_libpulse_glib/introspection.o | Bin 109288 -> 0 bytes .../src/lua_libpulse_glib/proplist.o | Bin 26304 -> 0 bytes .../src/lua_libpulse_glib/pulseaudio.o | Bin 39920 -> 0 bytes .../src/lua_libpulse_glib/volume.o | Bin 29776 -> 0 bytes awesome/src/lib/nice | 1 + awesome/src/modules/bluetooth/device.lua | 2 +- awesome/src/modules/bluetooth/init.lua | 318 +++++----- awesome/src/modules/crylia_bar/init.lua | 2 +- awesome/src/modules/desktop/desktop.lua | 86 ++- awesome/src/modules/desktop/element.lua | 4 +- awesome/src/modules/init.lua | 45 +- .../network_controller/access_point.lua | 256 +++++++- .../modules/network_controller/ap_form.lua | 114 ++-- .../src/modules/network_controller/init.lua | 151 +---- awesome/src/modules/titlebar/titlebar.lua | 447 -------------- awesome/src/scripts/backlight.sh | 10 - awesome/src/scripts/wifi.sh | 0 awesome/src/theme/theme_config.lua | 13 + awesome/src/theme/user_config.lua | 10 +- awesome/src/tools/color_helper.lua | 87 +++ awesome/src/tools/dbus/bluetooth_dbus.lua | 2 +- awesome/src/widgets/bluetooth.lua | 65 ++- awesome/todo.md | 46 ++ i3/config | 142 ----- polybar/config.ini | 63 -- polybar/modules/battery.ini | 6 - polybar/modules/bluetooth.ini | 9 - polybar/modules/cpu.ini | 10 - polybar/modules/date.ini | 11 - polybar/modules/gpu.ini | 11 - polybar/modules/i3.ini | 24 - polybar/modules/memory.ini | 8 - polybar/modules/modules.ini | 15 - polybar/modules/network.ini | 35 -- polybar/modules/player-mpris-tail.ini | 6 - polybar/modules/powermenu.ini | 4 - polybar/modules/screen.ini | 6 - polybar/modules/separators.ini | 35 -- polybar/modules/sound.ini | 21 - polybar/modules/xwindow.ini | 4 - polybar/scripts/battery.sh | 98 ---- polybar/scripts/bluetooth.sh | 23 - polybar/scripts/bluetooth_toogle.sh | 10 - polybar/scripts/check_screen.sh | 8 - polybar/scripts/gpu-intel.sh | 5 - polybar/scripts/gpu-nvidia.sh | 3 - polybar/scripts/launch.sh | 11 - polybar/scripts/network_speed.sh | 9 - polybar/scripts/player-mpris-tail.py | 548 ------------------ polybar/scripts/test.html | 0 polybar/scripts/toggle_screen.sh | 15 - polybar/scripts/wifi.sh | 17 - polybar/scripts/wifi_toggle.sh | 11 - polybar/scripts/wifistrength.sh | 10 - 68 files changed, 732 insertions(+), 2238 deletions(-) delete mode 100644 alacritty/alacritty.yml create mode 100644 awesome/src/assets/icons/network/delete.svg create mode 100644 awesome/src/assets/icons/network/edit.svg create mode 100644 awesome/src/assets/icons/network/link copy.svg create mode 100644 awesome/src/assets/icons/network/link-off.svg delete mode 160000 awesome/src/lib/dbus_proxy delete mode 160000 awesome/src/lib/lgi-async-extra create mode 160000 awesome/src/lib/lua-dbus_proxy delete mode 100755 awesome/src/lib/lua_libpulse_glib/lua_libpulse_glib.so delete mode 100644 awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/callback.o delete mode 100644 awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/context.o delete mode 100644 awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/convert.o delete mode 100644 awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/init.o delete mode 100644 awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/introspection.o delete mode 100644 awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/proplist.o delete mode 100644 awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/pulseaudio.o delete mode 100644 awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/volume.o create mode 160000 awesome/src/lib/nice delete mode 100644 awesome/src/modules/titlebar/titlebar.lua delete mode 100755 awesome/src/scripts/backlight.sh delete mode 100755 awesome/src/scripts/wifi.sh create mode 100644 awesome/src/tools/color_helper.lua delete mode 100644 i3/config delete mode 100644 polybar/config.ini delete mode 100644 polybar/modules/battery.ini delete mode 100644 polybar/modules/bluetooth.ini delete mode 100644 polybar/modules/cpu.ini delete mode 100644 polybar/modules/date.ini delete mode 100644 polybar/modules/gpu.ini delete mode 100644 polybar/modules/i3.ini delete mode 100644 polybar/modules/memory.ini delete mode 100644 polybar/modules/modules.ini delete mode 100644 polybar/modules/network.ini delete mode 100644 polybar/modules/player-mpris-tail.ini delete mode 100644 polybar/modules/powermenu.ini delete mode 100644 polybar/modules/screen.ini delete mode 100644 polybar/modules/separators.ini delete mode 100644 polybar/modules/sound.ini delete mode 100644 polybar/modules/xwindow.ini delete mode 100755 polybar/scripts/battery.sh delete mode 100755 polybar/scripts/bluetooth.sh delete mode 100755 polybar/scripts/bluetooth_toogle.sh delete mode 100755 polybar/scripts/check_screen.sh delete mode 100755 polybar/scripts/gpu-intel.sh delete mode 100755 polybar/scripts/gpu-nvidia.sh delete mode 100755 polybar/scripts/launch.sh delete mode 100755 polybar/scripts/network_speed.sh delete mode 100755 polybar/scripts/player-mpris-tail.py delete mode 100644 polybar/scripts/test.html delete mode 100755 polybar/scripts/toggle_screen.sh delete mode 100755 polybar/scripts/wifi.sh delete mode 100755 polybar/scripts/wifi_toggle.sh delete mode 100755 polybar/scripts/wifistrength.sh diff --git a/.gitmodules b/.gitmodules index 8a4eed4..99fda9b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,6 +7,9 @@ [submodule "awesome/src/lib/color"] path = awesome/src/lib/color url = https://github.com/andOrlando/color -[submodule "awesome/src/lib/dbus_proxy"] - path = awesome/src/lib/dbus_proxy - url = https://github.com/stefano-m/lua-dbus_proxy +[submodule "awesome/src/lib/nice"] + path = awesome/src/lib/nice + url = https://github.com/Crylia/awesome-wm-nice +[submodule "awesome/src/lib/lua-dbus_proxy"] + path = awesome/src/lib/lua-dbus_proxy + url = https://github.com/Crylia/lua-dbus_proxy diff --git a/alacritty/alacritty.yml b/alacritty/alacritty.yml deleted file mode 100644 index 6d70e17..0000000 --- a/alacritty/alacritty.yml +++ /dev/null @@ -1,109 +0,0 @@ -################################################ -# ██████╗██████╗ ██╗ ██╗██╗ ██╗ █████╗ # -# ██╔════╝██╔══██╗╚██╗ ██╔╝██║ ██║██╔══██╗ # -# ██║ ██████╔╝ ╚████╔╝ ██║ ██║███████║ # -# ██║ ██╔══██╗ ╚██╔╝ ██║ ██║██╔══██║ # -# ╚██████╗██║ ██║ ██║ ███████╗██║██║ ██║ # -# ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═╝╚═╝ ╚═╝ # -################################################ - -# Set the window Width and Height in console columns. -# The window size will change if the font size changes. -window: - padding: - x: 24 - y: 24 - dimensions: - columns: 110 - lines: 30 - decorations: full - startup_mode: Windowed - title: "Alacritty Terminal" - dynamic_title: true -# Scrolling history and multiplier -scrolling: - history: 10000 - multiplier: 3 -# Font family and style -font: - normal: - family: "JetBrains Mono Nerd Font" - style: Regular - bold: - family: "JetBrains Mono Nerd Font" - style: Bold - italic: - family: "JetBrains Mono Nerd Font" - style: italic - bold_italic: - family: "JetBrains Mono Nerd Font" - style: Bold Italic - size: 14.0 - offset: - y: 0 - glyph_offset: - y: 0 -# Background opacity from 0.0 transparent, 1.0 Opaque -window: - opacity: 0.4 -# Terminal colors -colors: - primary: - background: '0x131621' - foreground: '0xa6accd' - cursor: - text: CellBackground - cursor: CellForeground - search: - matches: - foreground: '0x1b1e28' - background: '0xadd7ff' - focus_match: - foreground: '0x1b1e28' - background: '0xadd7ff' - selection: - text: CellForeground - background: '0x303340' - normal: - black: '0x1b1e28' - red: '0xd0679d' - green: '0x5de4c7' - yellow: '0xfffac2' - blue: '#435c89' - magenta: '0xfcc5e9' - cyan: '0xadd7ff' - white: '0xffffff' - bright: - black: '0xa6accd' - red: '0xd0679d' - green: '0x5de4c7' - yellow: '0xfffac2' - blue: '0xadd7ff' - magenta: '0xfae4fc' - cyan: '0x89ddff' - white: '0xffffff' -# Cursor styling -cursor: - style: Beam - thickness: 0.2 - unfocused_hollow: false - blink_interval: 750 - -################################################################################ -# ███████╗██╗ ██╗ ██████╗ ██████╗ ████████╗ ██████╗██╗ ██╗████████╗███████╗ # -# ██╔════╝██║ ██║██╔═══██╗██╔══██╗╚══██╔══╝██╔════╝██║ ██║╚══██╔══╝██╔════╝ # -# ███████╗███████║██║ ██║██████╔╝ ██║ ██║ ██║ ██║ ██║ ███████╗ # -# ╚════██║██╔══██║██║ ██║██╔══██╗ ██║ ██║ ██║ ██║ ██║ ╚════██║ # -# ███████║██║ ██║╚██████╔╝██║ ██║ ██║ ╚██████╗╚██████╔╝ ██║ ███████║ # -# ╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝ # -################################################################################ - -# Mouse -mouse_bindings: - - { mouse: Right, action: Paste } - -# Keyboard -key_bindings: - - { key: C, mods: Control|Shift, action: Copy } - - { key: V, mods: Control|Shift, action: Paste } - - { key: C, mods: Control, mode: Vi, action: ClearSelection } diff --git a/awesome/src/assets/icons/network/delete.svg b/awesome/src/assets/icons/network/delete.svg new file mode 100644 index 0000000..0f0c936 --- /dev/null +++ b/awesome/src/assets/icons/network/delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/awesome/src/assets/icons/network/edit.svg b/awesome/src/assets/icons/network/edit.svg new file mode 100644 index 0000000..2e90a4f --- /dev/null +++ b/awesome/src/assets/icons/network/edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/awesome/src/assets/icons/network/link copy.svg b/awesome/src/assets/icons/network/link copy.svg new file mode 100644 index 0000000..1121413 --- /dev/null +++ b/awesome/src/assets/icons/network/link copy.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/awesome/src/assets/icons/network/link-off.svg b/awesome/src/assets/icons/network/link-off.svg new file mode 100644 index 0000000..6a83a3e --- /dev/null +++ b/awesome/src/assets/icons/network/link-off.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/awesome/src/lib/dbus_proxy b/awesome/src/lib/dbus_proxy deleted file mode 160000 index c9253bd..0000000 --- a/awesome/src/lib/dbus_proxy +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c9253bde3fa5a64261953d1b196c57fabf9f8561 diff --git a/awesome/src/lib/lgi-async-extra b/awesome/src/lib/lgi-async-extra deleted file mode 160000 index 45281ce..0000000 --- a/awesome/src/lib/lgi-async-extra +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 45281ceaf42140f131861ca6d1717912f94f0bfd diff --git a/awesome/src/lib/lua-dbus_proxy b/awesome/src/lib/lua-dbus_proxy new file mode 160000 index 0000000..011306f --- /dev/null +++ b/awesome/src/lib/lua-dbus_proxy @@ -0,0 +1 @@ +Subproject commit 011306f859457865d3d289c49b640ac848d8fb1a diff --git a/awesome/src/lib/lua_libpulse_glib/lua_libpulse_glib.so b/awesome/src/lib/lua_libpulse_glib/lua_libpulse_glib.so deleted file mode 100755 index 1704cde737697e6c2c35a1550d1bde7d6f640e8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202808 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 J{(qal{|06^YO??U diff --git a/awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/context.o b/awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/context.o deleted file mode 100644 index 9f46e33240fe038341add201d53a715e6111786a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33104 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 diff --git a/awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/convert.o b/awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/convert.o deleted file mode 100644 index 0bf6dff56873ed312ce14d4f6f1ebc47555c7d35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59792 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 JaL+pY{{sT_=!^gW diff --git a/awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/init.o b/awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/init.o deleted file mode 100644 index 603064e618ded916c6250c1ee3d88818dc23dbf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1360 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 XjY0BT`_HSdv)_6-Xs*x@Qtkf%P*`}4 diff --git a/awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/proplist.o b/awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/proplist.o deleted file mode 100644 index eecf23d9c4c3308ed0a465132b38cf4466fdcfe5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26304 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 diff --git a/awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/volume.o b/awesome/src/lib/lua_libpulse_glib/src/lua_libpulse_glib/volume.o deleted file mode 100644 index 2521be65852a2e7648feb4c97cff7f937cdc6c0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29776 zcmeHP3wTx4l|J_-C%H+0B!ou*fg9c^Nq8uN3Iri~c@Cq{308Xv$<0HP8@Ra_q60_` zR$@d!$5(Ymr&aq&iOti`w=9D_CB3-|U zbRH>+bZzd9bfu0ye&WQ5tM{NnIQe}q_Uu8U&|Tdd zDcoIsG}2{(A3SrcaMXKLL>P)V80oG)xEJkXl}H!l>0SlD>VuK4pD~=yc`;Zw39`Nn z*1Z5)FYn#v&wen{x%mYrH3emn9fOS_hUjsOvSEGdu)=Yx*R7lT)^i)XCf^-$6 zBap6wbOh2XAYB9L6_Boh^cqMvL3$0On;^Xo(jAaq2kDOPo410|T|4pmxba^1WxZ(^ zfro&0^K)IPech|}K^>k;JF>IaO%CYn%`M!P3mFfMgNxKj`)GUh{;iw$hc{$@zj}Yz z`1oJ2q=Wm9qc^aTs(T9`TeW|C(X-VDK;RtuB3!zw4|MhfB6TldsiOU48QcWV?FGkr zp6#lBwY&P&uIe|Qtu_kJRv*Ex*IoU_xz$GsZ|^C5tS549Pilk#4i?@_K+=VdaySI& z;jHfJBiMDimmP@I{h({%_1S2|UfFz|)dvEFk5%uVU45YNh80*k)Z*~G?q$YH)LXiq z_gcFP`fhji(ZeG%X&8U`JP!?SyEU=((Yw)cPT^zdql3anrX@cT7aDhv%L#(}h2hXZ zW)vM2C3HQF8Pc8MqnC)yesC`pmF_HE)$ep}e#hAo>V`;f*@oen47;{xC#dXLVH_W+ zd$D`r&TMOyF!N-yVAQ~XPY-DA)PpEvvuyveP51KNEbW%g%}1RrxiCo_E!%>2@+9HQ z4t8Sgw&H}h$)_dxKnn>9Uhum1Da*q;N2 z0p=18!^PLkIFb3=xzFKb+qu_t z)T3z&KAGXvyBBKcHTfsU8TbgCpY-_ZFykxy$&4@dyB%HL zGRzd8a7|1dU|1gQYnJFd@-cd_twAr$XT8prBB;nw^Kj|$X08wE(NJ%AT>f=a@W(I> zR|#mA@nNs+4Ig4nubDrO!cY%5>1XiC&HO)U39Pa{q{E%c5}ZZ7+3c@)%>8fY`=lpW zT=0zqA9AO$YXs9H%(IN1D1ATD`03?;pqjDntzdYm@ZWd{{9m>4qfe%ty;<~XaSc4s z4!wd;wLX?*%Ga5eUpRDd$SlLP9W0Z*VaN{Wj3;%9zc(G^a1smWPM{XYIPt;nqjQh8 z+@+bgeO>YYU1%0IxMCAy_S7zfTwbW%(CE}P)yCtomiB0DeX6!4nrw6GV|7k_^M>a7 zn9~?bI?eGqr@1}ano7p%F%oY}wBmh3ZA){#(^}i%v^K|`)>KQfd0oqu5J|?IM64Zh zw%66R#2k!8qb;#GT$63>$wYI!5u&m6aEZq@HplB@9S%gC%2a!z5=v`H)yFE=rCQo! zl^w0MEiG+z6-`b&d|r6b@|DqL^J^-v;0jz&+uRbX4=3BgMy)m(3vXy^NwvnpsrFc+ zzBXCww4`dIEzN5UU9=Hm6;{KEb*zikL6ySE+O;jQa9bjshg=diriI&5$#7dkcx_uM zUf=EzKU6*y3pclej`aiKeq|=AgSbtC( z?c^WwRNokdxKbSlG=??kKFoqW=4~@>d1uj-~ zx>fD=tD-kZVYpRz$gg0yEJN5T{K&5$7@ z`)KaxAy*xWFcLTmFUB7w5OY=;=O#hi&l!Zk!J_LunzUV^J55dRM-gTg9t}*)t%rP1 zpa{vGQFzI(?tcIgw8UPF^U{XpR+y4MK&7-NgnWJp(w+vj&~jtvJw?-fBI~5wnZx!& zu4R3Qa^4<*^=a~p4A*NzwsM)p-tpm_EY{|Pt=$tb>nQ{COEG=w%6GkB{ zfIJuicRvogLzjYh6nZUuMz+iMra95Kvz)0Y7 zDMgGzMWDoztbr*7Cq`q4o57IzFfD^2ZXhfT$;oWUXvkp7$v>4LCBhKsSB~?p>9u65 zb00+lci#wp`^8*uL-tk%vi(H%)(9Wj@BC!H_mjPr zfou|VC$#J}KiRMSWUu?le&HiqfyP4!+}%KAzwndoC$c7Z;6ZpPL+<-1_e=iVKlSJS zVTRnlrrbaD=l+pD_cOlS*P}TQ0(V#DSvNd$n$M^E{BHQ3-wk^*kZmHeJ^t2y!cX?3 zpKP~}>@I5HSjq%Ho6wE4)M_sDK1vNpdd2{y(0ESZmb!Cj58 z?lp)RH;q2d+dR(0#MxMe24?NrzS*)g8Pcp>cWf?hcbfB!+OB&yI|aCi{s1zKo(~aN zIU4p$ee6$r>^1#t^)EH-FppdE%gAE#@eiA&L`|)>j7zd)3w>luEfd#qW#Q6}dqXbTL1yFUX@F*IfDB-=iZUtNlVv6Wb@tXk3+}42WJTob8rxENKCW}9+`!!ji7U_F?D@syCZ`Nl19J!0Qx?2MDIU0c z7QA9*#X(+y3mkB3))kPLWfN;m^&+5>e(!M#9sote%sW!ClaCZmz;zZuiv`bgvId+} zaBjiuf<+}ks8*KiWQ8PL zu-h?mZ~zOzvPXFyH0^O+V3;*;w5d0&n8Q*5s|1VM3aGekRc-4SbnT*&Glya8J5%6i zy0cw~L&^rZwZa(QT`125-8P5^0)h7j^v4?x9QZ*5SE`vqFfck;2-P&&RInLz@G?lV zrx}+}2)zv&+l)$%d#;mbO$A}roPg^dbAs7{oX~l0zntKt5;qVk$qu@svLY33=`puo zXbB*d?%Zi^DMUl?%S*XMp?h36G$@pEOG1O(e!-gqkZ-j+Gb^vb?GM^+XrMbGG}SE* z)wuoUxI-GDMXRLkZV6N2Lh!aXa5*X$a&1Z&*U za0}&}=k~|@&)tc5d*2;_!o_aU3+`#nV9djA9^O)J;M4ACF!Y!^9xyiv)|a7Oqo%n- zj=4htI~#tJ7rX9a5Z!~KGNWFM>Y+|x4dgVyHT#;-PIpF5nLDMybsqv-}2rLTC0kTdMj167l zmi`fW-1%Vn>ByEe^$UPU7D6&>u{$4cA#{bCvly;9NjD#Ep`04%L2%!I7cg!X+yf0Z zH`ESO*T5yqWXeVxAqPBKvU764D!i|Dr*Lh+2AHI+@i}AMv!Kf8o?XUDR6^$<@&qDd zPC_OcqSHWYm~jk}1#(Vy3~&=Gvi9}n%X>V#vB#oKv%~!>uX=~wpjq)cQ zFoDX4)3Fs7Rj*vRI(osXN#Tq#?9#2x6gTE8bh09lk7fd@lJZ)OV^optB^44T39-Gq` zgJx^4gJf-@u4zukteNFA&kUD0hRYjPELs59+V(5sbxn!3I9OkvisLzCxv`-ggzd@N zx+}`pCEAj3M%b1phf_=JY%Hj2scmm!adTT71a%D}ZM$ZDTZ*bA+RXMUZn1_GG`{J_ z=0erQE}wRZsef&v(e@&fs%whXU6C^9o76gZ4C_%?%sS4fB5yRBg4-vN$E3vVxf5yiJ)IMG{;)%W$Du&Z%r_YmHUbC9Z5~u0_3a)+@&Y|5J(kB=6&61PcLSWn*1kB}^#MnP);t@l;27 zV?0$kZ5n^O;Lm%K;@ak9yI%!NKC5De4sWoD-h3YAt-AkfJHHeA?`kNl%+h2)-*|z&8gx z5XP4Wn0E2CrUxAM*O1)oQ+oNkJo#3Vn>|!dzQmK?dkT3E$<6+*m;Wg*|Ena=R6lypb<9S#m;Yuj zf0$k_ulLpOv!1-_6!JABH-`@%|Ak)ut*4ORdkT3E$?x;ocbCWi>M7(r5HjTt(?Br? zW^8}fIi`Pxq0Fiek)uhO0yayw^Y)3pOtrx5F_H20r+CoA?JRo=<}g>Mx+JA3h_wg7DiFeih-bn_V9GNCeUteog#Ot9rde zctYVz$^O5XlhL&OIDXNdJE#dTjREI1#0MyRIPqLUJnWxuu|KJapEfLx^F`vB3HdOX z`5NxK;fMTq@{WOzLwX>N_%)<&=5N6MjqvVlh(KWe0}w}j-UH^XRjbCiW1UJ`2(!PxY(8p#5?_u>VMHZ3CzwOnR44;z|@d5#+ z4_NoXdm%<3%(OQT=k-RF!oNi62;K3qKMsB$;GfJwSS|4J0^cO?2?D=G;Ak83JRxvg z(=z@O!rA^ODgBzzpDgs>68Px?KTbIF{EE`~@La=y^*RH7TgPZ9V5ftL&1CBGt1 zg}^Tsc%{JW1wK{aDS=ND_%8%LUEn7O#~ZdU*NczV(ViJXA3w*%!1}#5>6}40>YoWe z_QNuz&-|ANeaXL3;Ih7VX5e{1=u4h&Wzc^*gZ?W5$IlGd{zC%CKF@doRulsJf$LRD zxc1w0fzN_`%(Gnam=9q={%N5v{kc`((m!8NJZ#Typ)dWjPvEkjypjR`lj3JP;Y$h= zP%Q1l?{_h*t_ z_er*&?KzEb)R*HOKgq>__#F6gxyuDUSKu22F300`fzK2A4+vcL!{-RscK*B2mwx-L zz-7DJzYIyY*M-zx#k79a?K?@}Rl?3$0+)7PLb$fGQRquMHwj$w-ym?w|FsPKPY8X< z|AN3J|EmI*{6Tsj*7g??j{cGS;{-1KJUavaDaC&&`M*x+%ki~I>2rH^Wzc^>;OC3> zdQS0hKmT{3FYEPNfy;Vj(Y^`#LE>S;*>5~=lnZ@XuM3nu*X!a8`qwLcw*PjaFYSLw z;L^^YDIT`-b)hfq%%c4itgoDh@ylKeTwk_ly3m*QTqtm9Prc&d{;*!?OM7+*T(<9S z#l!YIDfFd1KM}aJ=XZ*S?Rj75OM8aWz7_gM+B2JQ?Vk&TzO?640$%`JJg+tiT>8H& z1OIJ8U-Ca7@P&f^+X9#TuVmnVQ|L?nKMA~A@aNKgqV7MF3D^FaDfA`(5`oM1iYXo* zM+u=X+pA097YIA=R6HFtFMUPmUnul{r1ZJJ{X*zV`+qNRX@4H=OR^u>{vm{;-=zKJ z0*?rL<|v+<$^K9hS?gub-@7J*CqA67hU{~n<)?f;3u7YX}cQ#=om{cj6> zY5!pO7!?EijqM*pIQmW6f40EOLB`|j(*l?EN-2J>*EK?4*6W`HzF6>oP4PTK_1Y`+ zWxZZh`dqJH34K|w_XNH~l$&1&2?*>TE_XQL=pR{bh0^~e*?F$em-Vet`fO)R=u11V z61epLKM7p=|8d37{{NoPm-f6S@TE{UZr`^R5B|j|h5&5_YCjAnoc+f28YA>&z2*pf z8Srws%M=fndzsLe{$H>3+5cOFzO1jQ1l9w7^y+3HTDBORs%~(i@$|9Y81OS;49LSe zm=5Cw0`m{CNoNw>5ih1V-lkHV^@md$-vKcoKG4MMrHbOLUq)%1(=Z@jVq*5Pg5s<{ zp3*e}A4GAyt)V#UPo{K}zz0(tZ|ek({=|0`3?24n>|q}uv{m4!&*wPX1r8s9dts-* zQGWrY?+|z?#qoA8#o2!BD;U0PZ^j<@6x<7s2psuwF2L}(y%~LO6NGvMj`}Mp{hYu@ zP#kYB2psi!KkH?IpGI-Ky-IPmKT7F?0>`sj4o4}%`Y}rP3f%nREv3V#2!ZvRZPJ+} z@X>_fZK}Z0{x*`$5_p&}yj2Mt^{*lso_}G$TbYU3%L;*`{?#O_5%?IPzg6I9-af$>*t(pgA%#>14pNZ|*maPE(+{{-P{ zl>Tc}F83GKPY}LN>6g<)xl!RGh@bawnP)liT(9(hOzE2x{zu~fg2Go5{*c0_xEA1X z&E-B%ZT~zK|g)buhl?vZa_~i=kPxw}ae~0{eufi`Q z{U;U9`Cn2vf8umZ;eVp~51@K*eea`kCoBASlz*YZ-y!{ag;$Y&O5r7x=I>Fs+*^p} z0j2*O;oQ!we;4`Tmr5Vc*D)Md_+Y|EQaN$^6y8Pomn(c4+0(4>FA@LM3diqP zFzi(L5#r~4b+!k;=fLo+(tn=P|Ech6Dg76PpGoQAwExWfYst>D6y8Jn^9V;Xu#50_ zTXjl*3)!Dg`nw9zdicM6l>S$U|8}K6pvdZfS?Tk0bg#nsoP+n_*-rjG>xj~4JKtC3 zE~mvsQLZhY{lj*K31|L)BmHSgpY1$f;lCpPELA-G{nt9BKb!lH!r7ji6kbH*_fEyn z-`_o@^qK#M3TOTU3V+qQ#d%Zl^LKgqw6J5pG5;`yGyi0TkEi<1Ae{Zo-{t+C(r5lg zh1>t?%5l~!9{!H+R;AB8_bYr68USIp;^FTfUsC$a^SZ)cqIQ2v@$h$o#d)?I?Kj@H zXPnmwQ6fKmJwWRpg(a zD*i{wU%g77`E$`R5ZFJ=KSbf&-zF&haw>N!;p{j5UTme(=W^>5&VEZMoXfpN;qTMD zcLU*EE`P83h|=eBdlb(50RO6Z_%){%IGw5Yf`{x{mbN^hVaQ543h4Xtt9pPLqf4_O1(r5c`Q#hA{c4 z;kS|><`B;Q{3G%3x`uh!&Zy$yeU@g$b0_idQ2JwO+})*c=6_J(SCF5-rTBUO?G>f} zRpLLSaMpiE@sOF$cv^3AeNT{}l5jKwyKMyH!aql8p4XXwH{o(W3i)3oocG&U|4qUd(w*^RlwPFp4=BA{ z;W^Y^7c0Dw@EV1e63+GJa(N$Mt5+oy1zSKm-L&-2+-Z?==4JL442&$WdL z=jUv_!uk2WP2s$LxKH7{KG~;mUN60&a9+PeT8sYycXaK;*YuBz##5VZE zwTaqzV+_gCS>W$;W1Iyn;3&dTldfxPZH>XV-xYEATmK69qgMD^fB4&fO2Z%aR>1!P zunzvz`AXuAHANc|_*d1RKnMc|b|s#dnX-x^`o9RGZpUg4o(*NgugXJgWX*hge}pD> zJU_s^^qS$FH{v{wI5i{0Y}m&S1P17?%bx-`a(>+WcpibA)Eyya!wXdYbS2Pc;q$03 z`@?i-`G_(&O#FPC4UxY5S9Fop2%``J`VZSk`)>tcst7>foQ@7bm(z3DfN;^eO91Pu z{HdR^Id;-Q1b@`V9ra3X^sBw6Ovnb_1t=k4V8pC{NVaI?l)!w|T*1a4gec9jB zWV3L7v>#tJwEdlcX->=;qw@1;9f%kPt-A%VzREvJ<@5e2mXAwMUH(nP$#z20g!mcu zo{x<#0+-MC&w~u(I)4Wpv|YlA#KB3ve>Fq?7inQMk@E44^YQ%~l%M5%f0y!en(v&C z)6YNzx42X{u^;UK9)_O`>_5i#Lj*Z>{_qT|u|`b{I{(i=t*`cb96J_-bwrHqheL|< zm!c3tUu7e{btYcn?{;bb4$ow9DC+#U-J(nc1ja9ZR1IN=5^DbygN{-$`6jiRoAVoc J^R7Doe*vZs>d^oI diff --git a/awesome/src/lib/nice b/awesome/src/lib/nice new file mode 160000 index 0000000..8ee083f --- /dev/null +++ b/awesome/src/lib/nice @@ -0,0 +1 @@ +Subproject commit 8ee083f18caaebeba50ba03def840a73673caee6 diff --git a/awesome/src/modules/bluetooth/device.lua b/awesome/src/modules/bluetooth/device.lua index 3f0746a..dc846ec 100644 --- a/awesome/src/modules/bluetooth/device.lua +++ b/awesome/src/modules/bluetooth/device.lua @@ -134,7 +134,7 @@ function device.new(args) inputbox, widget = wibox.container.constraint, strategy = "exact", - width = dpi(400), + width = dpi(300), id = "const" }, spacing = dpi(10), diff --git a/awesome/src/modules/bluetooth/init.lua b/awesome/src/modules/bluetooth/init.lua index 980a680..ee9f414 100644 --- a/awesome/src/modules/bluetooth/init.lua +++ b/awesome/src/modules/bluetooth/init.lua @@ -6,7 +6,7 @@ local abutton = require("awful.button") local aspawn = require("awful.spawn") local base = require("wibox.widget.base") -local dbus_proxy = require("dbus_proxy") +local dbus_proxy = require("src.lib.lua-dbus_proxy.src.dbus_proxy") local dpi = require("beautiful").xresources.apply_dpi local gcolor = require("gears").color local gfilesystem = require("gears").filesystem @@ -249,167 +249,159 @@ end function bluetooth.new(args) args = args or {} - local ret = base.make_widget_from_value(wibox.widget { + -- For some reason the first widget isn't read so the first container is a duplicate + local ret = base.make_widget_from_value({ { { { { { { - { - resize = false, - image = gcolor.recolor_image(icondir .. "menu-down.svg", - Theme_config.bluetooth_controller.connected_icon_color), - widget = wibox.widget.imagebox, - valign = "center", - halign = "center", - id = "icon" - }, - { - { - text = "Paired Devices", - valign = "center", - halign = "center", - widget = wibox.widget.textbox, - }, - margins = dpi(5), - widget = wibox.container.margin - }, - id = "connected", - layout = wibox.layout.fixed.horizontal - }, - bg = Theme_config.bluetooth_controller.connected_bg, - fg = Theme_config.bluetooth_controller.connected_fg, - shape = Theme_config.bluetooth_controller.connected_shape, - widget = wibox.container.background - }, - id = "connected_margin", - widget = wibox.container.margin - }, - { - { - { - step = dpi(50), - spacing = dpi(10), - layout = require("src.lib.overflow_widget.overflow").vertical, - scrollbar_width = 0, - id = "connected_device_list" - }, - id = "margin", - margins = dpi(10), - widget = wibox.container.margin - }, - border_color = Theme_config.bluetooth_controller.con_device_border_color, - border_width = Theme_config.bluetooth_controller.con_device_border_width, - shape = Theme_config.bluetooth_controller.con_device_shape, - widget = wibox.container.background, - forced_height = 0, - id = "connected_list", - }, - { - { - { - { - resize = false, - image = gcolor.recolor_image(icondir .. "menu-down.svg", - Theme_config.bluetooth_controller.discovered_icon_color), - widget = wibox.widget.imagebox, - valign = "center", - halign = "center", - id = "icon", - }, - { - { - text = "Nearby Devices", - valign = "center", - halign = "center", - widget = wibox.widget.textbox, - }, - margins = dpi(5), - widget = wibox.container.margin - }, - id = "discovered", - layout = wibox.layout.fixed.horizontal - }, - id = "discovered_bg", - bg = Theme_config.bluetooth_controller.discovered_bg, - fg = Theme_config.bluetooth_controller.discovered_fg, - shape = Theme_config.bluetooth_controller.discovered_shape, - widget = wibox.container.background - }, - id = "discovered_margin", - top = dpi(10), - widget = wibox.container.margin - }, - { - { - { - id = "discovered_device_list", - spacing = dpi(10), - step = dpi(50), - layout = require("src.lib.overflow_widget.overflow").vertical, - scrollbar_width = 0, - }, - margins = dpi(10), - widget = wibox.container.margin - }, - border_color = Theme_config.bluetooth_controller.con_device_border_color, - border_width = Theme_config.bluetooth_controller.con_device_border_width, - shape = Theme_config.bluetooth_controller.con_device_shape, - widget = wibox.container.background, - forced_height = 0, - id = "discovered_list", - }, - { - { -- action buttons - { - dnd_widget { - color = Theme_config.bluetooth_controller.power_bg, - size = dpi(40) - }, - id = "dnd", - widget = wibox.container.place, + resize = false, + image = gcolor.recolor_image(icondir .. "menu-down.svg", + Theme_config.bluetooth_controller.connected_icon_color), + widget = wibox.widget.imagebox, valign = "center", - halign = "center" + halign = "center", + id = "connected_icon" }, - nil, - { -- refresh + { { - { - image = gcolor.recolor_image(icondir .. "refresh.svg", - Theme_config.bluetooth_controller.refresh_icon_color), - resize = false, - valign = "center", - halign = "center", - widget = wibox.widget.imagebox, - }, - widget = wibox.container.margin, - margins = dpi(5), + text = "Paired Devices", + valign = "center", + halign = "center", + widget = wibox.widget.textbox, }, - shape = Theme_config.bluetooth_controller.refresh_shape, - bg = Theme_config.bluetooth_controller.refresh_bg, - id = "scan", - widget = wibox.container.background + margins = dpi(5), + widget = wibox.container.margin }, - layout = wibox.layout.align.horizontal + layout = wibox.layout.fixed.horizontal }, - widget = wibox.container.margin, - top = dpi(10), + bg = Theme_config.bluetooth_controller.connected_bg, + fg = Theme_config.bluetooth_controller.connected_fg, + shape = Theme_config.bluetooth_controller.connected_shape, + widget = wibox.container.background, + id = "connected_bg" }, - layout = wibox.layout.fixed.vertical + id = "connected_margin", + widget = wibox.container.margin }, - margins = dpi(15), - widget = wibox.container.margin + { + { + { + step = dpi(50), + spacing = dpi(10), + layout = require("src.lib.overflow_widget.overflow").vertical, + scrollbar_width = 0, + id = "connected_device_list" + }, + id = "margin", + margins = dpi(10), + widget = wibox.container.margin + }, + border_color = Theme_config.bluetooth_controller.con_device_border_color, + border_width = Theme_config.bluetooth_controller.con_device_border_width, + shape = Theme_config.bluetooth_controller.con_device_shape, + widget = wibox.container.background, + forced_height = 0, + id = "connected_list", + }, + { + { + { + { + resize = false, + image = gcolor.recolor_image(icondir .. "menu-down.svg", + Theme_config.bluetooth_controller.discovered_icon_color), + widget = wibox.widget.imagebox, + valign = "center", + halign = "center", + id = "discovered_icon", + }, + { + { + text = "Nearby Devices", + valign = "center", + halign = "center", + widget = wibox.widget.textbox, + }, + margins = dpi(5), + widget = wibox.container.margin + }, + layout = wibox.layout.fixed.horizontal + }, + id = "discovered_bg", + bg = Theme_config.bluetooth_controller.discovered_bg, + fg = Theme_config.bluetooth_controller.discovered_fg, + shape = Theme_config.bluetooth_controller.discovered_shape, + widget = wibox.container.background + }, + id = "discovered_margin", + top = dpi(10), + widget = wibox.container.margin + }, + { + { + { + id = "discovered_device_list", + spacing = dpi(10), + step = dpi(50), + layout = require("src.lib.overflow_widget.overflow").vertical, + scrollbar_width = 0, + }, + margins = dpi(10), + widget = wibox.container.margin + }, + border_color = Theme_config.bluetooth_controller.con_device_border_color, + border_width = Theme_config.bluetooth_controller.con_device_border_width, + shape = Theme_config.bluetooth_controller.con_device_shape, + widget = wibox.container.background, + forced_height = 0, + id = "discovered_list", + }, + { + { -- action buttons + { + dnd_widget { + color = Theme_config.bluetooth_controller.power_bg, + size = dpi(40) + }, + id = "dnd", + widget = wibox.container.place, + valign = "center", + halign = "center" + }, + nil, + { -- refresh + { + { + image = gcolor.recolor_image(icondir .. "refresh.svg", + Theme_config.bluetooth_controller.refresh_icon_color), + resize = false, + valign = "center", + halign = "center", + widget = wibox.widget.imagebox, + }, + widget = wibox.container.margin, + margins = dpi(5), + }, + shape = Theme_config.bluetooth_controller.refresh_shape, + bg = Theme_config.bluetooth_controller.refresh_bg, + id = "scan", + widget = wibox.container.background + }, + layout = wibox.layout.align.horizontal + }, + widget = wibox.container.margin, + top = dpi(10), + }, + layout = wibox.layout.fixed.vertical }, - shape = Theme_config.bluetooth_controller.shape, - border_color = Theme_config.bluetooth_controller.container_border_color, - border_width = Theme_config.bluetooth_controller.container_border_width, - bg = Theme_config.bluetooth_controller.container_bg, - widget = wibox.container.background + margins = dpi(15), + widget = wibox.container.margin, }, - width = dpi(400), - strategy = "exact", - widget = wibox.container.constraint + margins = dpi(15), + widget = wibox.container.margin, }) -- Get a reference to the dnd button @@ -489,7 +481,7 @@ function bluetooth.new(args) --#region Dropdown logic local connected_margin = ret:get_children_by_id("connected_margin")[1] local connected_list = ret:get_children_by_id("connected_list")[1] - local connected = ret:get_children_by_id("connected")[1].center + local connected_icon = ret:get_children_by_id("connected_icon")[1] connected_margin:connect_signal( "button::press", @@ -503,21 +495,23 @@ function bluetooth.new(args) end } if connected_list.forced_height == 0 then - local size = (#ret:get_paired_devices() * 60) + 1 + local size = (#ret:get_paired_devices() * 60) if size < 210 then rubato_timer.target = dpi(size) end - connected_margin.connected_bg.shape = function(cr, width, height) - gshape.partially_rounded_rect(cr, width, height, true, true, false, false, dpi(4)) + if size > 0 then + connected_margin.connected_bg.shape = function(cr, width, height) + gshape.partially_rounded_rect(cr, width, height, true, true, false, false, dpi(4)) + end + connected_icon:set_image(gcolor.recolor_image(icondir .. "menu-up.svg", + Theme_config.bluetooth_controller.connected_icon_color)) end - connected.icon:set_image(gcolor.recolor_image(icondir .. "menu-up.svg", - Theme_config.bluetooth_controller.connected_icon_color)) else rubato_timer.target = 0 connected_margin.connected_bg.shape = function(cr, width, height) gshape.rounded_rect(cr, width, height, 4) end - connected.icon:set_image(gcolor.recolor_image(icondir .. "menu-down.svg", + connected_icon:set_image(gcolor.recolor_image(icondir .. "menu-down.svg", Theme_config.bluetooth_controller.connected_icon_color)) end end @@ -526,7 +520,7 @@ function bluetooth.new(args) local discovered_margin = ret:get_children_by_id("discovered_margin")[1] local discovered_list = ret:get_children_by_id("discovered_list")[1] local discovered_bg = ret:get_children_by_id("discovered_bg")[1] - local discovered = ret:get_children_by_id("discovered")[1].center + local discovered_icon = ret:get_children_by_id("discovered_icon")[1] discovered_margin:connect_signal( "button::press", @@ -541,22 +535,24 @@ function bluetooth.new(args) } if discovered_list.forced_height == 0 then - local size = (#ret:get_discovered_devices() * 60) + 1 + local size = (#ret:get_discovered_devices() * 60) if size > 210 then size = 210 end - rubato_timer.target = dpi(size) - discovered_margin.discovered_bg.shape = function(cr, width, height) - gshape.partially_rounded_rect(cr, width, height, true, true, false, false, dpi(4)) + if size > 0 then + rubato_timer.target = dpi(size) + discovered_margin.discovered_bg.shape = function(cr, width, height) + gshape.partially_rounded_rect(cr, width, height, true, true, false, false, dpi(4)) + end + discovered_icon:set_image(gcolor.recolor_image(icondir .. "menu-up.svg", + Theme_config.bluetooth_controller.discovered_icon_color)) end - discovered.icon:set_image(gcolor.recolor_image(icondir .. "menu-up.svg", - Theme_config.bluetooth_controller.discovered_icon_color)) else rubato_timer.target = 0 discovered_bg.shape = function(cr, width, height) gshape.rounded_rect(cr, width, height, 4) end - discovered.icon:set_image(gcolor.recolor_image(icondir .. "menu-down.svg", + discovered_icon:set_image(gcolor.recolor_image(icondir .. "menu-down.svg", Theme_config.bluetooth_controller.discovered_icon_color)) end end diff --git a/awesome/src/modules/crylia_bar/init.lua b/awesome/src/modules/crylia_bar/init.lua index 2066cb2..d8a412e 100644 --- a/awesome/src/modules/crylia_bar/init.lua +++ b/awesome/src/modules/crylia_bar/init.lua @@ -15,7 +15,7 @@ return function(s) elseif widget == "Battery" then table.insert(widget_table, require("src.widgets.battery")(User_config.battery_kind)) elseif widget == "Bluetooth" then - table.insert(widget_table, require("src.widgets.bluetooth")()) + table.insert(widget_table, require("src.widgets.bluetooth")(s)) elseif widget == "Clock" then table.insert(widget_table, require("src.widgets.clock")()) elseif widget == "Cpu Frequency" then diff --git a/awesome/src/modules/desktop/desktop.lua b/awesome/src/modules/desktop/desktop.lua index 658c8c0..d2e5fa5 100644 --- a/awesome/src/modules/desktop/desktop.lua +++ b/awesome/src/modules/desktop/desktop.lua @@ -16,7 +16,8 @@ local cm = require("src.modules.context_menu.init") local capi = { mouse = mouse, - awesome = awesome + awesome = awesome, + screen = screen, } local icondir = gfilesystem.get_configuration_dir() .. "src/assets/icons/desktop/" @@ -46,7 +47,7 @@ function desktop:save_layout() } end - local dir = gfilesystem.get_configuration_dir() .. "src/config" + dir = gfilesystem.get_configuration_dir() .. "src/config" gfilesystem.make_directories(dir) if not gfilesystem.file_readable(dir .. "/desktop.json") then os.execute("touch " .. dir .. "/desktop.json") @@ -214,6 +215,9 @@ function desktop:add_element(args, pos) cm_popup.visible = false end) + local cols = math.floor(self.args.screen.geometry.width / (args.icon_size * 1.75 * (4 / 3))) + local rows = math.floor((self.args.screen.geometry.height - 75 + 95) / (args.icon_size * 1.75)) + print(cols, rows) -- While the mouse is down, remove the element from the grid and add it to manual then move it -- until the mouse is released and then add it back to the grid. e:connect_signal("button::press", function(_, _, _, b) @@ -221,8 +225,8 @@ function desktop:add_element(args, pos) if not mousegrabber.isrunning() then - local width = args.icon_size * 1.75 * (4 / 3) - local height = args.icon_size * 1.75 + local width = (self.args.screen.geometry.width - 20 - ((cols - 1) * 10)) / cols + local height = (self.args.screen.geometry.height - 170 - 20) / rows local dnd_widget = element { icon = args.icon, @@ -291,33 +295,39 @@ function desktop:add_element(args, pos) end function desktop:draw_selector() - local start_pos = mouse.coords() + local start_pos = capi.mouse.coords() if not mousegrabber.isrunning() then local selector = wibox.widget { widget = wibox.container.background, bg = gcolor("#0ffff088"), border_color = gcolor("#0ffff0"), border_width = dpi(2), - width = 100, - height = 100, + forced_width = 0, + forced_height = 0, + x = start_pos.x, + y = start_pos.y, visible = true, shape = function(cr, w, h) gshape.rounded_rect(cr, w, h, dpi(10)) end } - - local coords = capi.mouse.coords() - selector.point = { x = coords.x, y = coords.y } + selector.point = { x = start_pos.x, y = start_pos.y } self.widget.manual:add(selector) mousegrabber.run(function(m) if m.buttons[1] then selector.visible = true end if not m.buttons[1] then + print("stop") mousegrabber.stop() selector.visible = false self.widget.manual:reset() end + selector.forced_width = selector.forced_width + ((start_pos.x - m.x) * -1) + selector.forced_height = selector.forced_width + ((start_pos.y - m.y) * -1) + + print(selector.forced_width, selector.forced_height) + return m.buttons[1] end, "left_ptr") end end @@ -341,18 +351,10 @@ end function desktop.new(args) args = args or {} - args.screen = args.screen or awful.screen.focused() - local icon_size = args.icon_size or dpi(96) - -- calculate the row and column count based on the screen size and icon size and aspect ratio of 16:9 - local screen_width = awful.screen.focused().geometry.width - local screen_height = awful.screen.focused().geometry.height - local aspect_ratio = 4 / 3 - - local cols = math.floor(screen_width / (icon_size * 1.75 * aspect_ratio)) - local rows = math.floor((screen_height - (dpi(75 + 95))) / (icon_size * 1.75)) - + local cols = math.floor(args.screen.geometry.width / (icon_size * 1.75 * (4 / 3))) + local rows = math.floor((args.screen.geometry.height - 75 + 95) / (icon_size * 1.75)) --[[ The wibox has a stacked layout with a manual layout over a grid. @@ -371,15 +373,15 @@ function desktop.new(args) x = 0, y = 0, bg = gcolor.transparent, - width = 1920, - height = 1080, + width = args.screen.geometry.width, + height = args.screen.geometry.height, screen = args.screen, widget = wibox.widget { { { layout = grid, homogeneous = true, - spacing = dpi(10), + spacing = 10, expand = true, orientation = "horizontal", forced_num_cols = cols, @@ -401,6 +403,8 @@ function desktop.new(args) } } + w.args = args + local cm_popup = cm { widget_template = wibox.widget { { @@ -563,29 +567,19 @@ function desktop.new(args) } } - w.widget.manual:buttons( - gtable.join( - awful.button( - {}, - 1, - function() - cm_popup.visible = false - if capi.mouse.current_widgets[4] == w.widget.manual then - --w:draw_selector() - end - end - ), - awful.button( - {}, - 3, - function() - if capi.mouse.current_widgets[4] == w.widget.manual then - cm_popup:toggle() - end - end - ) - ) - ) + w.widget.manual:buttons(gtable.join( + awful.button({}, 1, function() + cm_popup.visible = false + if capi.mouse.current_widgets[4] == w.widget.manual then + w:draw_selector() + end + end), + awful.button({}, 3, function() + if capi.mouse.current_widgets[4] == w.widget.manual then + cm_popup:toggle() + end + end) + )) gtable.crush(w, desktop, true) diff --git a/awesome/src/modules/desktop/element.lua b/awesome/src/modules/desktop/element.lua index 569f320..17e24be 100644 --- a/awesome/src/modules/desktop/element.lua +++ b/awesome/src/modules/desktop/element.lua @@ -39,10 +39,10 @@ function element:on_hover() self.border_color = "#0ffff099" end) - self:connect_signal("mouse::leave", function() + --[[ self:connect_signal("mouse::leave", function() self.bg = gcolor.transparent self.border_color = gcolor.transparent - end) + end) ]] self:connect_signal("button::press", function() self.bg = "#0ffff088" diff --git a/awesome/src/modules/init.lua b/awesome/src/modules/init.lua index 6dfce6f..dc4cf92 100644 --- a/awesome/src/modules/init.lua +++ b/awesome/src/modules/init.lua @@ -4,31 +4,22 @@ -- Awesome Libs local awful = require("awful") -awful.screen.connect_for_each_screen( --- For each screen this function is called once --- If you want to change the modules per screen use the indices --- e.g. 1 would be the primary screen and 2 the secondary screen. - function(s) - -- Create 9 tags - awful.layout.append_default_layouts(User_config.layouts) - awful.tag( - { "1", "2", "3", "4", "5", "6", "7", "8", "9" }, - s, - User_config.layouts[1] - ) +awful.screen.connect_for_each_screen(function(s) + -- Create 9 tags + awful.layout.append_default_layouts(User_config.layouts) + awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, User_config.layouts[1]) - require("src.modules.desktop.desktop") { screen = s } - require("src.modules.powermenu.powermenu")(s) - require("src.modules.audio.volume_osd") { screen = s } - --require("src.modules.audio.volume_controller") { screen = s } - require("src.modules.brightness.brightness_osd")(s) - require("src.modules.titlebar.titlebar") - require("src.modules.crylia_bar.init")(s) - --require("src.modules.crylia_wibox.init")(s) - require("src.modules.notification-center.init")(s) - require("src.modules.window_switcher.init")(s) - require("src.modules.application_launcher.init") { screen = s } - --require("src.modules.calendar.init") { screen = s } - require("src.modules.network_controller.init") { screen = s } - end -) + require("src.modules.desktop.desktop") { screen = s } + require("src.modules.powermenu.powermenu")(s) + require("src.modules.audio.volume_osd") { screen = s } + --require("src.modules.audio.volume_controller") { screen = s } + require("src.modules.brightness.brightness_osd") { screen = s } + require("src.lib.nice") { titlebar_font = User_config.font.bold, + titlebar_items = { left = { "icon" }, right = { "minimize", "maximize", "close" } } } + require("src.modules.crylia_bar.init")(s) + --require("src.modules.crylia_wibox.init")(s) + require("src.modules.notification-center.init")(s) + require("src.modules.window_switcher.init")(s) + require("src.modules.application_launcher.init") { screen = s } + require("src.modules.network_controller.init") { screen = s } +end) diff --git a/awesome/src/modules/network_controller/access_point.lua b/awesome/src/modules/network_controller/access_point.lua index 6f6f3de..e63c1b8 100644 --- a/awesome/src/modules/network_controller/access_point.lua +++ b/awesome/src/modules/network_controller/access_point.lua @@ -3,22 +3,152 @@ ------------------------------------ -- Awesome Libs -local awful = require("awful") +local abutton = require("awful.button") +local awidget = require("awful.widget") local dpi = require("beautiful").xresources.apply_dpi local gtable = require("gears").table local gfilesystem = require("gears").filesystem -local gobject = require("gears").object local gcolor = require("gears").color +local lgi = require("lgi") local wibox = require("wibox") local base = require("wibox.widget.base") -local NM = require("lgi").NM +local NM = lgi.NM +-- Third party libs +local dbus_proxy = require("src.lib.lua-dbus_proxy.src.dbus_proxy") + +-- Own libs local ap_form = require("src.modules.network_controller.ap_form") +local cm = require("src.modules.context_menu.init") local icondir = gfilesystem.get_configuration_dir() .. "src/assets/icons/network/" local access_point = { mt = {} } +local function flags_to_security(flags, wpa_flags, rsn_flags) + local str = "" + if flags == 1 and wpa_flags == 0 and rsn_flags == 0 then + str = str .. " WEP" + end + if wpa_flags ~= 0 then + str = str .. " WPA1" + end + if not rsn_flags ~= 0 then + str = str .. " WPA2" + end + if wpa_flags == 512 or rsn_flags == 512 then + str = str .. " 802.1X" + end + + return (str:gsub("^%s", "")) +end + +function access_point:get_access_point_connections(ssid) + local cn = {} + + local connections = self.NetworkManagerSettings:ListConnections() + for _, connection_path in ipairs(connections) do + local NetworkManagerSettingsConnection = dbus_proxy.Proxy:new { + bus = dbus_proxy.Bus.SYSTEM, + name = "org.freedesktop.NetworkManager", + interface = "org.freedesktop.NetworkManager.Settings.Connection", + path = connection_path + } + + if NetworkManagerSettingsConnection.Filename:find(ssid) then + table.insert(cn, NetworkManagerSettingsConnection) + end + end + + return cn +end + +function access_point:create_profile(ap, password, auto_connect) + local s_wsec = {} + local security = flags_to_security(ap.Flags, ap.WpaFlags, ap.RsnFlags) + if security ~= "" then + if security:match("WPA") then + s_wsec["key-mgmt"] = lgi.GLib.Variant("s", "wpa-psk") + s_wsec["auth-alg"] = lgi.GLib.Variant("s", "open") + s_wsec["psk"] = lgi.GLib.Variant("s", password) + else + s_wsec["key-mgmt"] = lgi.GLib.Variant("s", "None") + s_wsec["wep-key-type"] = lgi.GLib.Variant("s", NM.WepKeyType.PASSPHRASE) + s_wsec["wep-key0"] = lgi.GLib.Variant("s", password) + end + end + + return { + ["connection"] = { + -- ["interface-name"] = lgi.GLib.Variant("s", ap.device_interface), + ["uuid"] = lgi.GLib.Variant("s", string.gsub('xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', '[xy]', function(c) + local v = (c == 'x') and math.random(0, 0xf) or math.random(8, 0xb) + return string.format('%x', v) + end)), + ["id"] = lgi.GLib.Variant("s", NM.utils_ssid_to_utf8(ap.Ssid)), + ["type"] = lgi.GLib.Variant("s", "802-11-wireless"), + ["autoconnect"] = lgi.GLib.Variant("b", auto_connect), + }, + ["ipv4"] = { + ["method"] = lgi.GLib.Variant("s", "auto") + }, + ["ipv6"] = { + ["method"] = lgi.GLib.Variant("s", "auto"), + }, + ["802-11-wireless"] = { + ["mode"] = lgi.GLib.Variant("s", "infrastructure"), + }, + ["802-11-wireless-security"] = s_wsec + } +end + +function access_point:disconnect_ap() + self.NetworkManager:DeactivateConnection(self.NetworkManagerDevice.ActiveConnection) +end + +function access_point:connect(ap, password, auto_connect) + local connections = self:get_access_point_connections(NM.utils_ssid_to_utf8(ap.Ssid)) + local profile = self:create_profile(self.NetworkManagerAccessPoint, password, auto_connect) + + if #connections == 0 then + self.NetworkManager:AddAndActivateConnectionAsync(function(proxy, context, success, fail) + if fail ~= nil then + print("Error: " .. tostring(fail), tostring(fail.code)) + self:emit_signal("NetworkManager::failed", tostring(fail), tostring(fail.code)) + return + end + + self:emit_signal("NetworkManager::connected", success) + end, { call_id = "my-id" }, profile, self.NetworkManagerDevice.object_path, + self.NetworkManagerAccessPoint.object_path) + --88ALYLNxo9Kk*RwRxMfN + else + connections[1]:Update(profile) + self.NetworkManager:ActivateConnectionAsync(function(proxy, context, success, failure) + if failure then + self:emit_signal("NM::AccessPointFailed", tostring(failure)) + return + end + + self:emit_signal("NM::AccessPointConnected", NM.utils_ssid_to_utf8(ap.Ssid)) + end, + { call_id = "my-id" }, connections[1].object_path, self.NetworkManagerDevice.object_path, + self.NetworkManagerAccessPoint.object_path) + end +end + +function access_point:toggle_access_point(ap, password, auto_connect) + if self:is_ap_active(ap) then + self:disconnect_ap() + else + self:connect_ap(ap, password, auto_connect) + end +end + +function access_point:is_ap_active(ap) + return ap.path == self.NetworkManagerDeviceWireless.ActiveAccessPoint +end + function access_point.new(args) args = args or {} @@ -32,6 +162,13 @@ function access_point.new(args) Theme_config.network_manager.access_point.icon_color2 end ]] + local ssid_text = awidget.inputbox { + text = NM.utils_ssid_to_utf8(args.NetworkManagerAccessPoint.Ssid) or + args.NetworkManagerAccessPoint.hw_address or "Unknown", + halign = "left", + valign = "center", + } + local ret = base.make_widget_from_value(wibox.widget { { { @@ -57,21 +194,11 @@ function access_point.new(args) }, { { - { - text = NM.utils_ssid_to_utf8(args.NetworkManagerAccessPoint.Ssid) or - args.NetworkManagerAccessPoint.hw_address or "Unknown", - id = "alias", - widget = wibox.widget.textbox - }, - { - text = "Connecting...", - id = "connecting", - visible = false, - font = User_config.font.specify .. ", regular 10", - widget = wibox.widget.textbox - }, - id = "alias_container", - layout = wibox.layout.fixed.horizontal + ssid_text, + widget = wibox.container.constraint, + strategy = "exact", + width = dpi(300), + id = "alias" }, width = dpi(260), height = dpi(40), @@ -130,21 +257,92 @@ function access_point.new(args) gtable.crush(ret, access_point, true) ret.NetworkManagerAccessPoint = args.NetworkManagerAccessPoint + ret.NetworkManagerSettings = args.NetworkManagerSettings + ret.NetworkManagerDeviceWireless = args.NetworkManagerDeviceWireless + ret.NetworkManagerDevice = args.NetworkManagerDevice + ret.NetworkManager = args.NetworkManager - ret.ap_form = ap_form { screen = args.screen, ssid = NM.utils_ssid_to_utf8(ret.NetworkManagerAccessPoint.Ssid) } + ret.ap_form = ap_form { + screen = args.screen, + NetworkManagerAccessPoint = args.NetworkManagerAccessPoint, + ap = ret + } - ret:buttons( - gtable.join( - awful.button( - {}, - 1, - nil, - function() - ret.ap_form:popup_toggle() + ret.cm = cm { + widget_template = wibox.widget { + { + { + { + { + widget = wibox.widget.imagebox, + resize = true, + valign = "center", + halign = "center", + id = "icon_role", + }, + widget = wibox.container.constraint, + stragety = "exact", + width = dpi(24), + height = dpi(24), + id = "const" + }, + { + widget = wibox.widget.textbox, + valign = "center", + halign = "left", + id = "text_role" + }, + layout = wibox.layout.fixed.horizontal + }, + widget = wibox.container.margin + }, + widget = wibox.container.background, + }, spacing = dpi(10), + entries = { + { -- Connect/Disconnect a device + name = "ret.device.Connected" and "Disconnect" or "Connect", + icon = gcolor.recolor_image("ret.device.Connected" and icondir .. "link-off.svg" or + icondir .. "link.svg", + Theme_config.network_manager.access_point.icon_color), + callback = function() + ret:toggle_access_point() + end, + id = "connected" + }, + { -- Rename a device + name = "Rename", + icon = gcolor.recolor_image(icondir .. "edit.svg", Theme_config.network_manager.icon_color), + callback = function() + ssid_text:focus() + ssid_text:connect_signal("submit", function(text) + text = text:get_text() + ssid_text.markup = ret:rename(text) + end) end - ) + }, + { -- Remove a device + name = "Remove", + icon = gcolor.recolor_image(icondir .. "delete.svg", Theme_config.network_manager.icon_color), + callback = function() + + end + } + } + } + + ret:buttons(gtable.join( + abutton({}, 1, nil, + function() + --TODO:Check if there are any connection details, else open the popup + ret.ap_form:popup_toggle() + end + ), + abutton({}, 3, nil, + function() + ret.cm:toggle() + end ) - ) + )) ret:get_children_by_id("con")[1].image = gcolor.recolor_image( icondir .. "link.svg", icon_color) diff --git a/awesome/src/modules/network_controller/ap_form.lua b/awesome/src/modules/network_controller/ap_form.lua index dc4be7c..40ece1a 100644 --- a/awesome/src/modules/network_controller/ap_form.lua +++ b/awesome/src/modules/network_controller/ap_form.lua @@ -1,16 +1,20 @@ -local awful = require("awful") +local abutton = require("awful.button") +local aplacement = require("awful.placement") +local apopup = require("awful.popup") +local awidget = require("awful.widget") local dpi = require("beautiful").xresources.apply_dpi local gtable = require("gears.table") -local gobject = require("gears.object") local gcolor = require("gears.color") local gshape = require("gears.shape") local gfilesystem = require("gears.filesystem") +local NM = require("lgi").NM local wibox = require("wibox") local icondir = gfilesystem.get_configuration_dir() .. "src/assets/icons/network/" local capi = { awesome = awesome, + mouse = mouse, mousegrabber = mousegrabber } @@ -22,47 +26,11 @@ end function ap_form.new(args) args = args or {} - args.screen = args.screen or awful.screen.preferred() + args.screen = args.screen - local settigns_form = { - password = awful.widget.inputbox { - widget_template = wibox.template { - widget = wibox.widget { - { - { - { - widget = wibox.widget.textbox, - halign = "left", - valign = "center", - id = "text_role", - }, - widget = wibox.container.margin, - margins = 5, - id = "marg" - }, - widget = wibox.container.constraint, - strategy = "exact", - width = 400, - height = 50, - id = "const" - }, - widget = wibox.container.background, - bg = "#212121", - fg = "#F0F0F0", - border_color = "#414141", - border_width = 2, - shape = gshape.rounded_rect, - forced_width = 300, - forced_height = 50, - }, - update_callback = function(template_widget, args) - template_widget.widget.const.marg.text_role.markup = args.text - end - } - }, - } + local password = awidget.inputbox { hint_text = "Password..." } - local ret = awful.popup { + local ret = apopup { widget = { { { -- Header @@ -71,7 +39,7 @@ function ap_form.new(args) { { widget = wibox.widget.textbox, - text = args.ssid, + text = NM.utils_ssid_to_utf8(args.NetworkManagerAccessPoint.Ssid), font = User_config.font.specify .. ",extra bold 16", halign = "center", valign = "center", @@ -115,7 +83,30 @@ function ap_form.new(args) right = dpi(20), }, -- Change to inputtextbox container - settigns_form.password, + { + { + { + password, + widget = wibox.container.margin, + margins = 5, + id = "marg" + }, + widget = wibox.container.constraint, + strategy = "exact", + width = 400, + height = 50, + id = "const" + }, + widget = wibox.container.background, + bg = "#212121", + fg = "#F0F0F0", + border_color = "#414141", + border_width = 2, + shape = gshape.rounded_rect, + forced_width = 300, + forced_height = 50, + id = "password_container" + }, layout = wibox.layout.align.horizontal }, { -- Actions @@ -181,7 +172,7 @@ function ap_form.new(args) widget = wibox.container.margin, margins = dpi(10) }, - placement = awful.placement.centered, + placement = aplacement.centered, ontop = true, visible = false, width = dpi(600), @@ -195,6 +186,30 @@ function ap_form.new(args) screen = args.screen, } + local password_container = ret.widget:get_children_by_id("password_container")[1] + + -- Focus the searchbar when its left clicked + password_container:buttons(gtable.join { + abutton({}, 1, function() + password:focus() + end) + }) + + --#region Hover signals to change the cursor to a text cursor + local old_cursor, old_wibox + password_container:connect_signal("mouse::enter", function() + local wid = capi.mouse.current_wibox + if wid then + old_cursor, old_wibox = wid.cursor, wid + wid.cursor = "xterm" + end + end) + password_container:connect_signal("mouse::leave", function() + old_wibox.cursor = old_cursor + old_wibox = nil + end) + --#endregion + gtable.crush(ret, ap_form, true) local checkbox = ret.widget:get_children_by_id("checkbox")[1] @@ -210,13 +225,10 @@ function ap_form.new(args) local connect_button = ret.widget:get_children_by_id("connect_button")[1] connect_button:connect_signal("button::press", function() - ret:emit_signal("ap_form::connect", { - ssid = args.ssid, - password = settigns_form.password:get_text(), - auto_connect = ret.widget:get_children_by_id("checkbox")[1].checked - }) - print("Connect to " .. args.ssid:get_text(), "\nPassword: " .. settigns_form.password:get_text(), - "\nAuto connect: " .. tostring(ret.widget:get_children_by_id("checkbox")[1].checked)) + password:stop() + args.ap:connect(args.NetworkManagerAccessPoint, password:get_text(), + ret.widget:get_children_by_id("checkbox")[1].checked) + ret:popup_toggle() end) Hover_signal(connect_button) diff --git a/awesome/src/modules/network_controller/init.lua b/awesome/src/modules/network_controller/init.lua index 7732c4e..f8339c2 100644 --- a/awesome/src/modules/network_controller/init.lua +++ b/awesome/src/modules/network_controller/init.lua @@ -4,12 +4,11 @@ -- Awesome Libs local awful = require("awful") -local dbus_proxy = require("dbus_proxy") +local dbus_proxy = require("src.lib.lua-dbus_proxy.src.dbus_proxy") local dpi = require("beautiful").xresources.apply_dpi local gtable = require("gears").table local gtimer = require("gears").timer local gshape = require("gears").shape -local gobject = require("gears").object local gcolor = require("gears").color local gears = require("gears") local lgi = require("lgi") @@ -24,11 +23,6 @@ local dnd_widget = require("awful.widget.toggle_widget") local icondir = gears.filesystem.get_configuration_dir() .. "src/assets/icons/network/" - -local capi = { - awesome = awesome, -} - local network = { mt = {} } network.NMState = { @@ -63,31 +57,6 @@ network.DeviceState = { FAILED = 120 } -local function flags_to_security(flags, wpa_flags, rsn_flags) - local str = "" - if flags == 1 and wpa_flags == 0 and rsn_flags == 0 then - str = str .. " WEP" - end - if wpa_flags ~= 0 then - str = str .. " WPA1" - end - if not rsn_flags ~= 0 then - str = str .. " WPA2" - end - if wpa_flags == 512 or rsn_flags == 512 then - str = str .. " 802.1X" - end - - return (str:gsub("^%s", "")) -end - -local function generate_uuid() - return string.gsub('xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', '[xy]', function(c) - local v = (c == 'x') and math.random(0, 0xf) or math.random(8, 0xb) - return string.format('%x', v) - end) -end - function network:get_wifi_proxy() local devices = self._private.NetworkManager:GetDevices() for _, path in ipairs(devices) do @@ -146,74 +115,16 @@ function network.device_state_to_string(state) return device_state_to_string[state] end -function network:get_access_point_connections(ssid) - local cn = {} - - local connections = self._private.NetworkManagerSettings:ListConnections() - for _, connection_path in ipairs(connections) do - local NetworkManagerSettingsConnection = dbus_proxy.Proxy:new { - bus = dbus_proxy.Bus.SYSTEM, - name = "org.freedesktop.NetworkManager", - interface = "org.freedesktop.NetworkManager.Settings.Connection", - path = connection_path - } - - if NetworkManagerSettingsConnection.Filename:find(ssid) then - table.insert(cn, NetworkManagerSettingsConnection) - end - end - - return cn -end - -function network:create_profile(ap, password, auto_connect) - local s_wsec = {} - if ap.security ~= "" then - if ap.security:match("WPA") then - s_wsec["key-mgmt"] = lgi.GLib.Variant("s", "wpa-psk") - s_wsec["auth-alg"] = lgi.GLib.Variant("s", "open") - --s_wsec["psk"] = lgi.GLib.Variant("s", helpers.string.trim(password)) - else - s_wsec["key-mgmt"] = lgi.GLib.Variant("s", "None") - s_wsec["wep-key-type"] = lgi.GLib.Variant("s", NM.WepKeyType.PASSPHRASE) - --s_wsec["wep-key0"] = lgi.GLib.Variant("s", helpers.string.trim(password)) - end - end - - return { - ["connection"] = { - -- ["interface-name"] = lgi.GLib.Variant("s", ap.device_interface), - ["uuid"] = lgi.GLib.Variant("s", generate_uuid()), - ["id"] = lgi.GLib.Variant("s", ap.ssid), - ["type"] = lgi.GLib.Variant("s", "802-11-wireless"), - ["autoconnect"] = lgi.GLib.Variant("b", auto_connect), - }, - ["ipv4"] = { - ["method"] = lgi.GLib.Variant("s", "auto") - }, - ["ipv6"] = { - ["method"] = lgi.GLib.Variant("s", "auto"), - }, - ["802-11-wireless"] = { - ["mode"] = lgi.GLib.Variant("s", "infrastructure"), - }, - ["802-11-wireless-security"] = s_wsec - } -end - ---Scan for access points and create a widget for each one. function network:scan_access_points() local ap_list = self:get_children_by_id("wifi_ap_list")[1] - + ap_list:reset() self._private.NetworkManagerDeviceWireless:RequestScanAsync(function(proxy, context, success, failure) if failure then - -- Send an error notification - print("AP Scan failed: ", failure) return end -- Get every access point even those who hide their ssid - print(#self._private.NetworkManagerDeviceWireless:GetAllAccessPoints()) for _, ap in ipairs(self._private.NetworkManagerDeviceWireless:GetAllAccessPoints()) do -- Create a new proxy for every ap @@ -223,69 +134,27 @@ function network:scan_access_points() interface = "org.freedesktop.NetworkManager.AccessPoint", path = ap } - --[[ for _, ap2 in ipairs(ap_list.children) do - if ap2.NetworkManagerAccessPoint.HwAddress:match(ap.HwAddress or "") then - goto continue - end - end ]] - - print("AP Found: ", NetworkManagerAccessPoint.HwAddress, NM.utils_ssid_to_utf8(NetworkManagerAccessPoint.Ssid), - NetworkManagerAccessPoint.Strength) - -- We are only interested in those with a ssid if NetworkManagerAccessPoint.Ssid then - ap_list:add(access_point { NetworkManagerAccessPoint = NetworkManagerAccessPoint }) + ap_list:add(access_point { + NetworkManagerAccessPoint = NetworkManagerAccessPoint, + NetworkManagerDevice = self._private.NetworkManagerDevice, + NetworkManagerSettings = self._private.NetworkManagerSettings, + NetworkManager = self._private.NetworkManager, + NetworkManagerDeviceWireless = self._private.NetworkManagerDeviceWireless + }) end end table.sort(ap_list, function(a, b) return a.NetworkManagerAccessPoint.Strength > b.NetworkManagerAccessPoint.Strength end) - print("AP_Anzahl: ", #ap_list.children) end, { call_id = "my-id" }, {}) end function network:is_ap_active(ap) - return ap.path == self._private.wifi_proxy.ActiveAccessPoint -end - -function network:disconnect_ap() - self._private.NetworkManager:DeactivateConnection(self._private.NetworkManagerDevice.ActiveConnection) -end - -function network:connect_ap(ap, pw, auto_connect) - local connections = self:get_access_point_connections(ap.ssid) - local profile = self:create_profile(ap, pw, auto_connect) - - if #connections == 0 then - self._private.NetworkManager:AddAndActivateConnectionAsync(function(proxy, context, success, failure) - if failure then - self:emit_signal("NM::AccessPointFailed", tostring(failure)) - return - end - - self:emit_signal("NM::AccessPointConnected", ap.ssid) - end, { call_id = "my-id", profile, ap.device_proxy_path, ap.path }) - else - connections[1]:Update(profile) - self._private.NetworkManager:ActivateConnectionAsync(function(proxy, context, success, failure) - if failure then - self:emit_signal("NM::AccessPointFailed", tostring(failure)) - return - end - - self:emit_signal("NM::AccessPointConnected", ap.ssid) - end, { call_id = "my-id", connections[1].object_path, ap.device_proxy_path, ap.path }) - end -end - -function network:toggle_access_point(ap, password, auto_connect) - if self:is_ap_active(ap) then - self:disconnect_ap() - else - self:connect_ap(ap, password, auto_connect) - end + return ap.path == self._private.NetworkManagerDeviceWireless.ActiveAccessPoint end ---Toggles networking on or off diff --git a/awesome/src/modules/titlebar/titlebar.lua b/awesome/src/modules/titlebar/titlebar.lua deleted file mode 100644 index 68a1b7e..0000000 --- a/awesome/src/modules/titlebar/titlebar.lua +++ /dev/null @@ -1,447 +0,0 @@ ------------------------------------ --- This is the titlebar module -- ------------------------------------ - --- Awesome Libs -local awful = require("awful") -local dpi = require("beautiful").xresources.apply_dpi -local gears = require("gears") -local wibox = require("wibox") - -local capi = { - awesome = awesome, - client = client -} - --- Icon directory path -local icondir = gears.filesystem.get_configuration_dir() .. "src/assets/icons/titlebar/" - -awful.titlebar.enable_tooltip = true -awful.titlebar.fallback_name = 'Client' - --- Normal AND Focus(active/inactive) have to be set or errors will appear in stdout -Theme.titlebar_close_button_normal = icondir .. "close.svg" -Theme.titlebar_close_button_focus = icondir .. "close.svg" -Theme.titlebar_minimize_button_normal = icondir .. "minimize.svg" -Theme.titlebar_minimize_button_focus = icondir .. "minimize.svg" -Theme.titlebar_maximized_button_normal = icondir .. "maximize.svg" -Theme.titlebar_maximized_button_active = icondir .. "maximize.svg" -Theme.titlebar_maximized_button_inactive = icondir .. "maximize.svg" - -local create_buttons = function(c) - local buttons = gears.table.join( - awful.button( - {}, - 1, - function() - c:activate { context = 'titlebar', action = 'mouse_move' } - end - ), - awful.button( - {}, - 3, - function() - c:activate { context = 'titlebar', action = 'mouse_resize' } - end - ) - ) - return buttons -end - -local create_titlebar = function(c, size, position) - local close_button = awful.titlebar.widget.closebutton(c) - local minimize_button = awful.titlebar.widget.minimizebutton(c) - local maximize_button = awful.titlebar.widget.maximizedbutton(c) - - local tb - - if position == "left" then - local titlebar = awful.titlebar(c, { - position = "left", - bg = Theme_config.titlebar.bg, - size = size - }) - - tb = wibox.widget { - { - { - { - close_button, - widget = wibox.container.background, - border_color = Theme_config.titlebar.close_button.border_color, - border_width = dpi(2), - shape = function(cr, height, width) - gears.shape.rounded_rect(cr, width, height, dpi(6)) - end, - id = "closebutton" - }, - { - maximize_button, - widget = wibox.container.background, - border_color = Theme_config.titlebar.maximize_button.border_color, - border_width = dpi(2), - shape = function(cr, height, width) - gears.shape.rounded_rect(cr, width, height, dpi(6)) - end, - id = "maximizebutton" - }, - { - minimize_button, - widget = wibox.container.background, - border_color = Theme_config.titlebar.minimize_button.border_color, - border_width = dpi(2), - shape = function(cr, height, width) - gears.shape.rounded_rect(cr, width, height, dpi(6)) - end, - id = "minimizebutton" - }, - spacing = dpi(10), - layout = wibox.layout.fixed.vertical, - id = "spacing" - }, - margins = dpi(5), - widget = wibox.container.margin, - id = "margin" - }, - { - buttons = create_buttons(c), - layout = wibox.layout.flex.vertical - }, - { - awful.titlebar.widget.iconwidget(c), - margins = dpi(5), - widget = wibox.container.margin - }, - layout = wibox.layout.align.vertical, - id = "main" - } - - titlebar:setup { tb, layout = wibox.layout.fixed.horizontal } - - elseif position == "top" then - local titlebar = awful.titlebar(c, { - position = "top", - bg = Theme_config.titlebar.bg, - size = size - }) - - tb = wibox.widget { - { - awful.titlebar.widget.iconwidget(c), - margins = dpi(5), - widget = wibox.container.margin - }, - { - { - awful.titlebar.widget.titlewidget(c), - valign = "center", - halign = "center", - layout = wibox.container.place, - }, - buttons = create_buttons(c), - fill_space = true, - layout = wibox.layout.stack - }, - { - { - { - minimize_button, - widget = wibox.container.background, - border_color = Theme_config.titlebar.minimize_button.border_color, - border_width = dpi(2), - shape = function(cr, height, width) - gears.shape.rounded_rect(cr, width, height, dpi(6)) - end, - id = "minimizebutton" - }, - { - maximize_button, - widget = wibox.container.background, - border_color = Theme_config.titlebar.maximize_button.border_color, - border_width = dpi(2), - shape = function(cr, height, width) - gears.shape.rounded_rect(cr, width, height, dpi(6)) - end, - id = "maximizebutton" - }, - { - close_button, - widget = wibox.container.background, - border_color = Theme_config.titlebar.close_button.border_color, - border_width = dpi(2), - shape = function(cr, height, width) - gears.shape.rounded_rect(cr, width, height, dpi(6)) - end, - id = "closebutton" - }, - spacing = dpi(10), - layout = wibox.layout.fixed.horizontal, - id = "spacing" - }, - margins = dpi(5), - widget = wibox.container.margin, - id = "margin" - }, - layout = wibox.layout.align.horizontal, - id = "main" - } - - titlebar:setup { tb, layout = wibox.layout.fixed.vertical } - end - - if not tb then return end - - close_button:connect_signal( - "mouse::enter", - function() - c.border_color = Theme_config.titlebar.close_button.hover_border - local cb = tb:get_children_by_id("closebutton")[1] - cb.border_color = Theme_config.titlebar.close_button.hover_border - cb.bg = Theme_config.titlebar.close_button.hover_bg - end - ) - - close_button:connect_signal( - "mouse::leave", - function() - c.border_color = Theme_config.window.border_normal - local cb = tb:get_children_by_id("closebutton")[1] - cb.border_color = Theme_config.titlebar.close_button.border_color - cb.bg = Theme_config.titlebar.close_button.bg - end - ) - - minimize_button:connect_signal( - "mouse::enter", - function() - c.border_color = Theme_config.titlebar.minimize_button.hover_border - local mb = tb:get_children_by_id("minimizebutton")[1] - mb.border_color = Theme_config.titlebar.minimize_button.hover_border - mb.bg = Theme_config.titlebar.minimize_button.hover_bg - end - ) - - minimize_button:connect_signal( - "mouse::leave", - function() - c.border_color = Theme_config.window.border_normal - local mb = tb:get_children_by_id("minimizebutton")[1] - mb.border_color = Theme_config.titlebar.minimize_button.border_color - mb.bg = Theme_config.titlebar.minimize_button.bg - end - ) - - maximize_button:connect_signal( - "mouse::enter", - function() - c.border_color = Theme_config.titlebar.maximize_button.hover_border - local mb = tb:get_children_by_id("maximizebutton")[1] - mb.border_color = Theme_config.titlebar.maximize_button.hover_border - mb.bg = Theme_config.titlebar.maximize_button.hover_bg - end - ) - - maximize_button:connect_signal( - "mouse::leave", - function() - c.border_color = Theme_config.window.border_normal - local mb = tb:get_children_by_id("maximizebutton")[1] - mb.border_color = Theme_config.titlebar.maximize_button.border_color - mb.bg = Theme_config.titlebar.maximize_button.bg - end - ) -end - -local create_titlebar_dialog_modal = function(c, size, position) - local close_button = awful.titlebar.widget.closebutton(c) - local minimize_button = awful.titlebar.widget.minimizebutton(c) - local maximize_button = awful.titlebar.widget.maximizedbutton(c) - - local tb - - if position == "left" then - local titlebar = awful.titlebar(c, { - position = "left", - bg = Theme_config.titlebar.bg, - size = size - }) - - tb = wibox.widget { - { - { - close_button, - widget = wibox.container.background, - border_color = Theme_config.titlebar.close_button.border_color, - border_width = dpi(2), - shape = function(cr, height, width) - gears.shape.rounded_rect(cr, width, height, dpi(6)) - end, - id = "closebutton" - }, - margins = dpi(5), - widget = wibox.container.margin, - id = "margin" - }, - { - buttons = create_buttons(c), - layout = wibox.layout.flex.vertical - }, - { - awful.titlebar.widget.iconwidget(c), - margins = dpi(5), - widget = wibox.container.margin - }, - layout = wibox.layout.align.vertical, - id = "main" - } - - titlebar:setup { tb, layout = wibox.layout.fixed.horizontal } - - elseif position == "top" then - local titlebar = awful.titlebar(c, { - position = "top", - bg = Theme_config.titlebar.bg, - size = size - }) - - tb = wibox.widget { - { - awful.titlebar.widget.iconwidget(c), - margins = dpi(5), - widget = wibox.container.margin - }, - { - { - awful.titlebar.widget.titlewidget(c), - valign = "center", - halign = "center", - layout = wibox.container.place, - }, - buttons = create_buttons(c), - fill_space = true, - layout = wibox.layout.stack - }, - { - { - close_button, - widget = wibox.container.background, - border_color = Theme_config.titlebar.close_button.border_color, - border_width = dpi(2), - shape = function(cr, height, width) - gears.shape.rounded_rect(cr, width, height, dpi(6)) - end, - id = "closebutton" - }, - margins = dpi(5), - widget = wibox.container.margin, - id = "margin" - }, - layout = wibox.layout.align.horizontal, - id = "main" - } - - titlebar:setup { tb, layout = wibox.layout.fixed.vertical } - end - - if not tb then return end - - close_button:connect_signal( - "mouse::enter", - function() - c.border_color = Theme_config.titlebar.close_button.hover_border - local cb = tb:get_children_by_id("closebutton")[1] - cb.border_color = Theme_config.titlebar.close_button.hover_border - cb.bg = Theme_config.titlebar.close_button.hover_bg - end - ) - - close_button:connect_signal( - "mouse::leave", - function() - c.border_color = Theme_config.window.border_normal - local cb = tb:get_children_by_id("closebutton")[1] - cb.border_color = Theme_config.titlebar.close_button.border_color - cb.bg = Theme_config.titlebar.close_button.bg - end - ) - - minimize_button:connect_signal( - "mouse::enter", - function() - c.border_color = Theme_config.titlebar.minimize_button.hover_border - local mb = tb:get_children_by_id("minimizebutton")[1] - mb.border_color = Theme_config.titlebar.minimize_button.hover_border - mb.bg = Theme_config.titlebar.minimize_button.hover_bg - end - ) - - minimize_button:connect_signal( - "mouse::leave", - function() - c.border_color = Theme_config.window.border_normal - local mb = tb:get_children_by_id("minimizebutton")[1] - mb.border_color = Theme_config.titlebar.minimize_button.border_color - mb.bg = Theme_config.titlebar.minimize_button.bg - end - ) - - maximize_button:connect_signal( - "mouse::enter", - function() - c.border_color = Theme_config.titlebar.maximize_button.hover_border - local mb = tb:get_children_by_id("maximizebutton")[1] - mb.border_color = Theme_config.titlebar.maximize_button.hover_border - mb.bg = Theme_config.titlebar.maximize_button.hover_bg - end - ) - - maximize_button:connect_signal( - "mouse::leave", - function() - c.border_color = Theme_config.window.border_normal - local mb = tb:get_children_by_id("maximizebutton")[1] - mb.border_color = Theme_config.titlebar.maximize_button.border_color - mb.bg = Theme_config.titlebar.maximize_button.bg - end - ) -end - -capi.client.connect_signal( - "request::titlebars", - function(c) - if c.type == "dialog" then - create_titlebar_dialog_modal(c, dpi(35), User_config.titlebar_position) - elseif c.type == "modal" then - create_titlebar_dialog_modal(c, dpi(35), User_config.titlebar_position) - else - create_titlebar(c, dpi(35), User_config.titlebar_position) - end - - if not c.floating or c.maximized or c.fullscreen then - if User_config.titlebar_position == "left" then - awful.titlebar.hide(c, "left") - elseif User_config.titlebar_position == "top" then - awful.titlebar.hide(c, "top") - end - end - end -) - -capi.client.connect_signal( - "property::floating", - function(c) - if c.floating and not (c.maximized or c.fullscreen) then - if User_config.titlebar_position == "left" then - awful.titlebar.show(c, "left") - elseif User_config.titlebar_position == "top" then - awful.titlebar.show(c, "top") - end - else - if User_config.titlebar_position == "left" then - awful.titlebar.hide(c, "left") - elseif User_config.titlebar_position == "top" then - awful.titlebar.hide(c, "top") - end - end - end -) diff --git a/awesome/src/scripts/backlight.sh b/awesome/src/scripts/backlight.sh deleted file mode 100755 index 47bbb54..0000000 --- a/awesome/src/scripts/backlight.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -case $1 in - "get") - echo $(xfpm-power-backlight-helper --get-brightness) - ;; - "set") - echo $(pkexec xfpm-power-backlight-helper --set-brightness $2) - ;; -esac diff --git a/awesome/src/scripts/wifi.sh b/awesome/src/scripts/wifi.sh deleted file mode 100755 index e69de29..0000000 diff --git a/awesome/src/theme/theme_config.lua b/awesome/src/theme/theme_config.lua index 0b73b60..30b383a 100644 --- a/awesome/src/theme/theme_config.lua +++ b/awesome/src/theme/theme_config.lua @@ -515,8 +515,13 @@ Theme_config.right_bar = { Theme_config.titlebar = { bg = "#121212AA", + size = dpi(38), close_button = { border_color = "#00000000", + border_width = dpi(2), + shape = function(cr, width, height) + gshape.rounded_rect(cr, width, height, dpi(6)) + end, bg = "#00000000", fg = color["Grey100"], hover_border = color["Red800"], @@ -525,6 +530,10 @@ Theme_config.titlebar = { }, minimize_button = { border_color = "#00000000", + border_width = dpi(2), + shape = function(cr, width, height) + gshape.rounded_rect(cr, width, height, dpi(6)) + end, fg = color["Grey100"], bg = "#00000000", hover_border = color["Orange800"], @@ -533,6 +542,10 @@ Theme_config.titlebar = { }, maximize_button = { border_color = "#00000000", + border_width = dpi(2), + shape = function(cr, width, height) + gshape.rounded_rect(cr, width, height, dpi(6)) + end, fg = color["Grey100"], bg = "#00000000", hover_border = color["Green800"], diff --git a/awesome/src/theme/user_config.lua b/awesome/src/theme/user_config.lua index a21871c..ff2dc1d 100644 --- a/awesome/src/theme/user_config.lua +++ b/awesome/src/theme/user_config.lua @@ -55,6 +55,14 @@ User_config = { ]] -- battery_path = nil, + --[[ + The brightness increase/decrease step in percent. + Example: + brightness_step = 5 + Will increase the brightness by 5% at a time + ]] + brightness_step = 2, + --[[ DnD or 'Do not Disturb' will prevent notifications from poping up. This is just a default value, you can toggle it in the notification-center, but it won't be saved. @@ -213,7 +221,7 @@ User_config = { --[[ This is the default terminal, Alacritty is the default. ]] -- - terminal = "alacritty", + terminal = "kitty", text_editor = "code", diff --git a/awesome/src/tools/color_helper.lua b/awesome/src/tools/color_helper.lua new file mode 100644 index 0000000..c3251d9 --- /dev/null +++ b/awesome/src/tools/color_helper.lua @@ -0,0 +1,87 @@ +local cairo = require("lgi").cairo +local gcolor = require("gears.color") +local gdk = require("lgi").Gdk +local gsurface = require("gears.surface") +local gtable = require("gears.table") + +local color_helper = { mt = {} } +color_helper.color_rules = {} + +function color_helper.set_color_rule(c, color) + color_helper.color_rules[c.instance] = color +end + +function color_helper.get_color_rule(c) + return color_helper.color_rules[c.instance] +end + +function color_helper.lighten(color, amount) + local r, g, b + r, g, b = gcolor.parse_color(color) + r = 255 * r + g = 255 * g + b = 255 * b + r = r + math.floor(2.55 * amount) + g = g + math.floor(2.55 * amount) + b = b + math.floor(2.55 * amount) + r = r > 255 and 255 or r + g = g > 255 and 255 or g + b = b > 255 and 255 or b + return ("#%02x%02x%02x"):format(r, g, b) +end + +function color_helper.duotone_gradient_vertical(color_1, color_2, height, offset_1, offset_2) + local fill_pattern = cairo.Pattern.create_linear(0, 0, 0, height) + local r, g, b, a + r, g, b, a = gcolor.parse_color(color_1) + fill_pattern:add_color_stop_rgba(offset_1 or 0, r, g, b, a) + r, g, b, a = gcolor.parse_color(color_2) + fill_pattern:add_color_stop_rgba(offset_2 or 1, r, g, b, a) + return fill_pattern +end + +function color_helper.get_dominant_color(client) + local color, pb, bytes + local tally, content, cgeo = {}, gsurface(client.content), client:geometry() + local x_offset, y_offset, x_lim = 2, 2, math.floor(cgeo.width / 2) + + for x_pos = 0, x_lim, 2 do + for y_pos = 0, 8, 1 do + pb = gdk.pixbuf_get_from_surface(content, x_offset + x_pos, y_offset + y_pos, 1, 1) + bytes = pb:get_pixels() + color = "#" .. bytes:gsub(".", function(c) + return ("%02x"):format(c:byte()) + end) + if not tally[color] then + tally[color] = 1 + else + tally[color] = tally[color] + 1 + end + end + end + local mode + local mode_c = 0 + for k, v in pairs(tally) do + if v > mode_c then + mode_c = v + mode = k + end + end + color = mode + color_helper.set_color_rule(client, color) + return color +end + +function color_helper.new(args) + local ret = {} + + gtable.crush(ret, color_helper, true) + + return ret +end + +function color_helper.mt:__call(...) + return color_helper.new(...) +end + +return setmetatable(color_helper, color_helper.mt) diff --git a/awesome/src/tools/dbus/bluetooth_dbus.lua b/awesome/src/tools/dbus/bluetooth_dbus.lua index 78574cb..8a1d5af 100644 --- a/awesome/src/tools/dbus/bluetooth_dbus.lua +++ b/awesome/src/tools/dbus/bluetooth_dbus.lua @@ -1,6 +1,6 @@ local awful = require("awful") local gears = require("gears") -local dbus_proxy = require("dbus_proxy") +local dbus_proxy = require("src.lib.lua-dbus_proxy.src.dbus_proxy") local lgi = require("lgi") local capi = { diff --git a/awesome/src/widgets/bluetooth.lua b/awesome/src/widgets/bluetooth.lua index ae65ddf..f062cb4 100644 --- a/awesome/src/widgets/bluetooth.lua +++ b/awesome/src/widgets/bluetooth.lua @@ -2,14 +2,18 @@ -- This is the bluetooth widget -- ---------------------------------- --- Awesome Libs +-- Awesome libs local awful = require("awful") local dpi = require("beautiful").xresources.apply_dpi local gears = require("gears") local wibox = require("wibox") +-- Own libs +local bt_module = require("src.modules.bluetooth.init") + local capi = { awesome = awesome, + mouse = mouse } -- Icon directory path @@ -18,21 +22,9 @@ local icondir = gears.filesystem.get_configuration_dir() .. "src/assets/icons/bl -- Returns the bluetooth widget return function(s) - local bt_widget = require("src.modules.bluetooth.init") { screen = s } - - local bluetooth_container = awful.popup { - widget = bt_widget:get_widget(), - ontop = true, - bg = Theme_config.bluetooth_controller.container_bg, - stretch = false, - visible = false, - forced_width = dpi(400), - screen = s, - shape = function(cr, width, height) - gears.shape.rounded_rect(cr, width, height, dpi(12)) - end - } - + -- Get the bluetooth module + local bt_widget = bt_module { screen = s } + -- Create the bluetooth widget local bluetooth_widget = wibox.widget { { { @@ -60,6 +52,25 @@ return function(s) widget = wibox.container.background } + -- If bt_widget is nil then there is no bluetooth adapter and there shouldn't be done + -- anything besides returning the widget without any logic behind + if not bt_widget then + return bluetooth_widget + end + + -- Create the awful.popup container for the module + local bluetooth_container = awful.popup { + widget = bt_widget, + ontop = true, + stretch = false, + visible = false, + screen = s, + border_color = Theme_config.bluetooth_controller.container_border_color, + border_width = Theme_config.bluetooth_controller.container_border_width, + bg = Theme_config.bluetooth_controller.container_bg + } + + -- When the status changes update the icon bt_widget:connect_signal("bluetooth::status", function(status) bluetooth_widget:get_children_by_id("icon")[1].image = gears.color.recolor_image(status._private.Adapter1.Powered and icondir .. "bluetooth-on.svg" or icondir .. "bluetooth-off.svg", Theme_config.bluetooth.fg) @@ -68,19 +79,17 @@ return function(s) -- Hover signal to change color when mouse is over Hover_signal(bluetooth_widget) - bluetooth_widget:connect_signal( - "button::press", - function(_, _, _, key) - if key == 1 then - local geo = mouse.current_wibox:geometry() - bluetooth_container.x = geo.x - bluetooth_container.y = geo.y + dpi(55) - bluetooth_container.visible = not bluetooth_container.visible - else - capi.awesome.emit_signal("toggle_bluetooth") - end + -- On left click toggle the bluetooth container else toggle the bluetooth on/off + bluetooth_widget:connect_signal("button::press", function(_, _, _, key) + if key == 1 then + local geo = capi.mouse.current_wibox:geometry() + bluetooth_container.x = geo.x + bluetooth_container.y = geo.y + dpi(55) + bluetooth_container.visible = not bluetooth_container.visible + else + capi.awesome.emit_signal("toggle_bluetooth") end - ) + end) return bluetooth_widget end diff --git a/awesome/todo.md b/awesome/todo.md index 85658b3..30a330b 100644 --- a/awesome/todo.md +++ b/awesome/todo.md @@ -16,6 +16,14 @@ - Algorithm to select the best search match - Keep track of most launched applications and serve them over others +### Backlight [100% Done] + +#### Features + +- Change backlight with your backlight keys +- See the change on a OSD that pops up +- Works with all devices by writing into /usr/class/backlight/`device` + ### Bluetooth [95% Done] #### Features @@ -37,4 +45,42 @@ - Getting and asking for a passcode - "Greying out" non avaiable options in the dropdown +### Calendar [60% Done] + +#### Features + +- Read .ical files and put them into the calendar +- Create tasks for every day +- Month/Year switcher +- Saved accross restarts +- Popup with the task informations + +#### TODO + +- Create a new task for a calendar +- Create an alert that notifies the user +- Week numbers +- Remove a calendar +- Remove a task + +### Desktop [40% Done] + +- Create desktop icons, folders or files +- Drag and drop desktop icons +- Context menu +- Saves accross restart +- Desktop context menu + +TODO + +- Actions for the context menu +- Open width in context menu +- Drag across multiple screens +- Proper size calculation for desktop icons and desktop +- Multiscreen support in general +- MIME types for files +- xdg folder types +- Drag-select +- Cross-DE support (e.g. use the same desktop icons as used in KDE or Mate ...) + ## Widgets diff --git a/i3/config b/i3/config deleted file mode 100644 index f0f6307..0000000 --- a/i3/config +++ /dev/null @@ -1,142 +0,0 @@ -################################################################# -# ██╗██████╗ ██████╗██████╗ ██╗ ██╗██╗ ██╗ █████╗ # -# ██║╚════██╗ ██╔════╝██╔══██╗╚██╗ ██╔╝██║ ██║██╔══██╗ # -# ██║ █████╔╝█████╗██║ ██████╔╝ ╚████╔╝ ██║ ██║███████║ # -# ██║ ╚═══██╗╚════╝██║ ██╔══██╗ ╚██╔╝ ██║ ██║██╔══██║ # -# ██║██████╔╝ ╚██████╗██║ ██║ ██║ ███████╗██║██║ ██║ # -# ╚═╝╚═════╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═╝╚═╝ ╚═╝ # -################################################################# - -# Modifier - set $mod Mod4 - floating_modifier $mod - -# Client theme - client.focused #a6bcfa #a6bcfa #a6bcfa #a6bcfa - client.unfocused #585f75 #585f75 #585f75 #585f75 - client.focused_inactive #585f75 #585f75 #585f75 #585f75 - client.urgent #fbdf91 #fbdf91 #fbdf91 #fbdf91 - font pango:JetBrainsNerd Font Mono 10 - for_window [class="^.*"] border pixel 2 - gaps inner 10 - hide_edge_borders smart - -# Window modes - bindsym $mod+f fullscreen toggle - bindsym $mod+Shift+space floating toggle - -# Set screen - set $primary_screen DP-0 - set $second_screen HDMI-0 - -# Set workspaces - set $ws1 "1" - set $ws2 "2" - set $ws3 "3" - set $ws4 "4" - set $ws5 "5" - set $ws6 "6" - set $ws7 "7" - set $ws8 "8" - set $ws9 "9" - set $ws10 "SecondScreen" - -# Assign workspace to screen - workspace $ws10 output $second_screen - -# Globalkeys - bindsym Print exec flameshot gui - bindsym $mod+e exec nautilus - bindsym $mod+Return exec alacritty - bindsym $mod+d exec --no-startup-id rofi -show drun -theme ~/.config/rofi/appmenu/rofi.rasi - bindsym $mod+Control+c reload - bindsym $mod+Control+r restart - bindsym $mod+Shift+e exec --no-startup-id "rofi -show power-menu -modi 'power-menu:~/.config/rofi/rofi-power-menu --choices=shutdown/reboot/logout/lockscreen' -theme ~/.config/rofi/powermenu/powermenu.rasi" - -# Clientkeys - bindsym $mod+q kill - bindsym $mod+Left focus left - bindsym $mod+Down focus down - bindsym $mod+Up focus up - bindsym $mod+Right focus right - bindsym $mod+Shift+Left move left - bindsym $mod+Shift+Down move down - bindsym $mod+Shift+Up move up - bindsym $mod+Shift+Right move right - bindsym $mod+h split h - bindsym $mod+v split v - bindsym $mod+a focus parent - # Switch to workspace - bindsym $mod+1 workspace number $ws1 - bindsym $mod+2 workspace number $ws2 - bindsym $mod+3 workspace number $ws3 - bindsym $mod+4 workspace number $ws4 - bindsym $mod+5 workspace number $ws5 - bindsym $mod+6 workspace number $ws6 - bindsym $mod+7 workspace number $ws7 - bindsym $mod+8 workspace number $ws8 - bindsym $mod+9 workspace number $ws9 - bindsym $mod+0 workspace number $ws10 - # Move window to workspace x - bindsym $mod+Shift+1 move container to workspace number $ws1 - bindsym $mod+Shift+2 move container to workspace number $ws2 - bindsym $mod+Shift+3 move container to workspace number $ws3 - bindsym $mod+Shift+4 move container to workspace number $ws4 - bindsym $mod+Shift+5 move container to workspace number $ws5 - bindsym $mod+Shift+6 move container to workspace number $ws6 - bindsym $mod+Shift+7 move container to workspace number $ws7 - bindsym $mod+Shift+8 move container to workspace number $ws8 - bindsym $mod+Shift+9 move container to workspace number $ws9 - bindsym $mod+Shift+0 move container to workspace number $ws10 - # Function Keys - bindsym XF86AudioPlay exec playerctl play-pause - bindsym XF86AudioStop exec playerctl stop - bindsym XF86AudioNext exec playerctl next - bindsym XF86AudioPrev exec playerctl previous - bindsym XF86AudioRaiseVolume exec --no-startup-id pactl -- set-sink-volume @DEFAULT_SINK@ +5% #increase sound volume - bindsym XF86AudioLowerVolume exec --no-startup-id pactl -- set-sink-volume @DEFAULT_SINK@ -5% #decrease sound volume - bindsym XF86AudioMute exec --no-startup-id pactl -- set-sink-mute @DEFAULT_SINK@ toggle # mute sound - bindsym XF86MonBrightnessUp exec xbacklight -inc 10 # increase screen brightness - bindsym XF86MonBrightnessDown exec xbacklight -dec 10 # decrease screen brightnessR - -# Modes - mode "resize" { - bindsym Left resize shrink width 10 px or 10 ppt - bindsym Down resize grow height 10 px or 10 ppt - bindsym Up resize shrink height 10 px or 10 ppt - bindsym Right resize grow width 10 px or 10 ppt - - bindsym Return mode "default" - bindsym Escape mode "default" - bindsym $mod+r mode "default" - } - -# Modekeys - bindsym $mod+r mode "resize" - -# Floating exceptions - for_window [title="Lautstärkeregler"] floating enable - for_window [class="Arandr"] floating enable - for_window [class="Grub-customizer"] floating enable - for_window [class="Gnome-control-center"] floating enable - for_window [class="Xfce4-power-manager-settings"] floating enable - for_window [class="Lutris" id=63012046 instance="lutris" title="Läufer verwalten"] floating enable - for_window [class="zoom" title="Chat"] floating enable - -# Autostart - exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork - exec --no-startup-id picom --experimental-backends - exec --no-startup-id setxkbmap -layout us - exec_always --no-startup-id $HOME/.config/polybar/scripts/launch.sh - exec_always --no-startup-id picom --experimental-backends - exec_always --no-startup-id nitrogen --restore - exec --no-startup-id /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 & - exec --no-startup-id power-manager-plugins - exec --no-startup-id ~/.screenlayout/i3.sh - exec --no-startup-id /usr/lib/x86_64-linux-gnu/libexec/kdeconnectd - exec discord - exec spotify - -# Automove window to workspace - for_window [class="Spotify"] move container to workspace $ws10 - for_window [class="discord"] move container to workspace $ws10 \ No newline at end of file diff --git a/polybar/config.ini b/polybar/config.ini deleted file mode 100644 index 815f017..0000000 --- a/polybar/config.ini +++ /dev/null @@ -1,63 +0,0 @@ -;============================================================; -; ; -; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗ ; -; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗ ; -; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝ ; -; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗ ; -; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║ ; -; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ; -; ; -;=============================================================; - -[colors] -background = #212121 -foreground = #ffffff -primay-900 = #0D47A1 -primay-800 = #1565C0 -primay-700 = #1976D2 -primay-600 = #1E88E5 -primay-500 = #2196F3 -primay-400 = #42A5F5 -primay-300 = #64B5F6 -primay-200 = #90CAF9 -primay-100 = #BBDEFB -primay-50 = #E3F2FD - -[global/wm] -margin-top = 5 -margin-bottom = 5 -include-file = ~/.config/polybar/modules/modules.ini - -[bar/crylia] -monitor = ${env:MONITOR:} -width = 100% -height = 25 -fixed-center = true -line-size = 2 -background = ${colors.background} -foreground = ${colors.foreground} -padding-left = 0 -padding-right = 0 - -;Default Font -font-0 = "JetBrainsMono Nerd Font Mono:size=18:antialias=true;4" -font-1 = "JetBrainsMono Nerd Font Mono:size=12:antialias=true;3" -; Separator Font -font-2 = "Ubuntu Nerd Font:size=25:antialias=true;2" -; Bluetooth Icon Font -font-3 = "JetBrainsMonoExtraBold Nerd Font Mono:size=12:antialias=true;3" - -modules-left = i3 xwindow -modules-center = date -modules-right = separator6 sound separator5 memory separator4 gpu-nvidia separator3 cpu separator2 eth separator1 powermenu - -scroll-up = i3wm-wsnext -scroll-down = i3wm-wsprev - -[settings] -screenchange-reload = true -;compositing-background = xor -;compositing-background = screen -;compositing-foreground = source -;compositing-border = over -;pseudo-transparency = true diff --git a/polybar/modules/battery.ini b/polybar/modules/battery.ini deleted file mode 100644 index f3cf9f1..0000000 --- a/polybar/modules/battery.ini +++ /dev/null @@ -1,6 +0,0 @@ -[module/battery] -type = custom/script -exec = $HOME/.config/polybar/scripts/battery.sh -format-font = 1 -interval = 10 -click-right = xfce4-power-manager-settings \ No newline at end of file diff --git a/polybar/modules/bluetooth.ini b/polybar/modules/bluetooth.ini deleted file mode 100644 index e444220..0000000 --- a/polybar/modules/bluetooth.ini +++ /dev/null @@ -1,9 +0,0 @@ -[module/bluetooth] -type = custom/script -exec = $HOME/.config/polybar/scripts/bluetooth.sh -format-font = 4 -format-background = ${colors.background} -format-foreground = ${colors.cyan} -format-padding = 1 -click-left = $HOME/.config/polybar/scripts/bluetooth_toogle.sh -click-right = blueman-manager \ No newline at end of file diff --git a/polybar/modules/cpu.ini b/polybar/modules/cpu.ini deleted file mode 100644 index 4d51803..0000000 --- a/polybar/modules/cpu.ini +++ /dev/null @@ -1,10 +0,0 @@ -[module/cpu] -type = internal/cpu -interval = 2 -format =