Compare commits
30
Commits
49a51849e0
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e33af718dc | ||
|
|
6579dac3a4 | ||
|
|
8f0cb6cd3f | ||
|
|
1da6e2625f | ||
|
|
a7e95c3ed1 | ||
|
|
20edbe76e8 | ||
|
|
3a0ceadb20 | ||
|
|
0c4b7dbc85 | ||
|
|
8151d710d9 | ||
|
|
21cc16921b | ||
|
|
1620c01b16 | ||
|
|
c5c4eef54d | ||
|
|
cae1d9b8cc | ||
|
|
41ecb14d71 | ||
|
|
a97cb7b476 | ||
|
|
0df9852e3c | ||
|
|
12476c3a35 | ||
|
|
8b7bb62372 | ||
|
|
f3e2b5c264 | ||
|
|
cb08eb1194 | ||
|
|
4b1d0cd562 | ||
|
|
520fb7cd75 | ||
|
|
05d6556f31 | ||
|
|
030ec42b17 | ||
|
|
61d5019f9d | ||
|
|
60bb2ad303 | ||
|
|
d49c0bae99 | ||
|
|
828655dcac | ||
|
|
ab03f33212 | ||
|
|
3bfa324d00 |
@@ -1 +1,5 @@
|
|||||||
My Dotfiles
|
# My Dotfiles
|
||||||
|
|
||||||
|
## matbook-sway
|
||||||
|
|
||||||
|

|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 648 KiB |
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 151 KiB |
@@ -0,0 +1,11 @@
|
|||||||
|
monitor-settings >/dev/null 2>&1 &
|
||||||
|
wallpapers >/dev/null 2>&1 &
|
||||||
|
waybar -c $HOME/.config/waybar/sirius.conf >/dev/null 2>&1 &
|
||||||
|
swaync >/dev/null 2>&1 &
|
||||||
|
mysd >/dev/null 2>&1 &
|
||||||
|
discord --start-minimized >/dev/null 2>&1 &
|
||||||
|
corectrl >/dev/null 2>&1 &
|
||||||
|
flatpak run --command=telegram-desktop org.telegram.desktop -workdir /home/mat/.var/app/org.telegram.desktop/data/TelegramDesktop/ -autostart >/dev/null 2>&1 &
|
||||||
|
#rygel >/dev/null 2>&1 &
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
# Cosmic/Sirius
|
||||||
|
XDG_CURRENT_DESKTOP=wlroots
|
||||||
|
XDG_SESSION_DESKTOP=wlroots
|
||||||
|
XDG_SESSION_TYPE=wlroots
|
||||||
|
|
||||||
|
# Cursor
|
||||||
|
WLR_NO_HARDWARE_CURSORS=1
|
||||||
|
XCURSOR_THEME=Future-cursors
|
||||||
|
XCURSOR_SIZE=24
|
||||||
|
|
||||||
|
# Keyboards
|
||||||
|
XKB_DEFAULT_LAYOUT=us
|
||||||
|
XKB_DEFAULT_LAYOUT=us,ru
|
||||||
|
XKB_DEFAULT_OPTIONS=grp:caps_toggle,grp_led:caps
|
||||||
|
|
||||||
|
# Browser
|
||||||
|
MOZ_ENABLE_WAYLAND=1
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<openbox_menu>
|
||||||
|
|
||||||
|
<menu id="root-menu" label="openbox">
|
||||||
|
<item label="Терминал"> <action name="Execute"> <execute>flatpak run com.raggesilver.BlackBox</execute> </action> </item>
|
||||||
|
<item label="Браузер"> <action name="Execute"> <execute>firefox</execute> </action> </item>
|
||||||
|
<item label="Файловый менеджер"> <action name="Execute"> <execute>nautilus</execute> </action> </item>
|
||||||
|
|
||||||
|
<menu id="Settings" label="Настройки">
|
||||||
|
<item label="Перенастоить"> <action name="Execute"> <execute>labwc --reconfigure</execute> </action> </item>
|
||||||
|
<item label="Звук"> <action name="Execute"> <execute>pavucontrol</execute> </action> </item>
|
||||||
|
</menu>
|
||||||
|
|
||||||
|
<separator/>
|
||||||
|
<menu id="Exit" label="Выход">
|
||||||
|
<item label="Перезагрузка"> <action name="Execute"> <execute>systemctl reboot</execute> </action> </item>
|
||||||
|
<item label="Выключение"> <action name="Execute"> <execute>systemctl poweroff</execute> </action> </item>
|
||||||
|
<item label="Exit"> <action name="Execute"> <execute>labwc --exit</execute> </action> </item>
|
||||||
|
</menu>
|
||||||
|
|
||||||
|
</menu>
|
||||||
|
</openbox_menu>
|
||||||
@@ -0,0 +1,290 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- Openspace Sirius by En2zmax -->
|
||||||
|
<labwc_config>
|
||||||
|
<core>
|
||||||
|
<decoration>client</decoration>
|
||||||
|
<gap>12,5</gap>
|
||||||
|
<adaptiveSync>no</adaptiveSync>
|
||||||
|
<cycleViewPreview>no</cycleViewPreview>
|
||||||
|
</core>
|
||||||
|
<focus>
|
||||||
|
<followMouse>yes</followMouse>
|
||||||
|
<raiseOnFocus>no</raiseOnFocus>
|
||||||
|
</focus>
|
||||||
|
<theme>
|
||||||
|
<name>Pop-dark</name>
|
||||||
|
<cornerRadius>6</cornerRadius>
|
||||||
|
<titleLayout>MC</titleLayout>
|
||||||
|
<font place="ActiveWindow">
|
||||||
|
<name>Fira Sans SemiBold</name>
|
||||||
|
<size>10</size>
|
||||||
|
<weight>bold</weight>
|
||||||
|
</font>
|
||||||
|
<font place="MenuItem">
|
||||||
|
<name>Fira Sans Book</name>
|
||||||
|
<size>10</size>
|
||||||
|
<weight>bold</weight>
|
||||||
|
</font>
|
||||||
|
<font place="OnScreenDisplay">
|
||||||
|
<name>Fira Sans Book</name>
|
||||||
|
<size>10</size>
|
||||||
|
<weight>normal</weight>
|
||||||
|
</font>
|
||||||
|
</theme>
|
||||||
|
<desktops>
|
||||||
|
<names>
|
||||||
|
<name>one</name>
|
||||||
|
<name>two</name>
|
||||||
|
<name>three</name>
|
||||||
|
<name>four</name>
|
||||||
|
</names>
|
||||||
|
</desktops>
|
||||||
|
<keyboard>
|
||||||
|
<keybind key="W-q">
|
||||||
|
<action name="Close">
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-S-q">
|
||||||
|
<action name="Kill">
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-f">
|
||||||
|
<action name="ToggleFullscreen">
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-w">
|
||||||
|
<action name="ToggleMaximize">
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-s">
|
||||||
|
<action name="Iconify">
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-left">
|
||||||
|
<action name="SnapToEdge">
|
||||||
|
<direction>left</direction>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-right">
|
||||||
|
<action name="SnapToEdge">
|
||||||
|
<direction>right</direction>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-up">
|
||||||
|
<action name="SnapToEdge">
|
||||||
|
<direction>center</direction>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-Tab">
|
||||||
|
<action name="NextWindow">
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-1">
|
||||||
|
<action name="GoToDesktop">
|
||||||
|
<to>one</to>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-2">
|
||||||
|
<action name="GoToDesktop">
|
||||||
|
<to>two</to>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-3">
|
||||||
|
<action name="GoToDesktop">
|
||||||
|
<to>three</to>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-4">
|
||||||
|
<action name="GoToDesktop">
|
||||||
|
<to>four</to>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-A-1">
|
||||||
|
<action name="SendToDesktop">
|
||||||
|
<to>one</to>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-A-2">
|
||||||
|
<action name="SendToDesktop">
|
||||||
|
<to>two</to>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-A-3">
|
||||||
|
<action name="SendToDesktop">
|
||||||
|
<to>three</to>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-A-4">
|
||||||
|
<action name="SendToDesktop">
|
||||||
|
<to>four</to>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-Return">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>flatpak run com.raggesilver.BlackBox</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-b">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>firefox</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-S-b">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>firefox --private-window</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-d">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>menudrun</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-r">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>menurun</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-g">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>menugames</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-p">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>screenshot</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-n">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>swaync-client -t -sw</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
</keyboard>
|
||||||
|
<mouse>
|
||||||
|
<doubleClickTime>500</doubleClickTime>
|
||||||
|
<context name="Frame">
|
||||||
|
<mousebind button="A-Left" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="A-Left" action="Drag">
|
||||||
|
<action name="Move"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="A-Right" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="A-Right" action="Drag">
|
||||||
|
<action name="Resize"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Top">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Left">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Right">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Bottom">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="TRCorner">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="BRCorner">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="TLCorner">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="BLCorner">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="TitleBar">
|
||||||
|
<mousebind button="Left" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Right" action="Click">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="ShowMenu" menu="client-menu"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Title">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Move"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Left" action="DoubleClick">
|
||||||
|
<action name="ToggleMaximize"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Maximize">
|
||||||
|
<mousebind button="Left" action="Click">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="ToggleMaximize"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="WindowMenu">
|
||||||
|
<mousebind button="Left" action="Click">
|
||||||
|
<action name="ShowMenu" menu="client-menu"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Iconify">
|
||||||
|
<mousebind button="left" action="Click">
|
||||||
|
<action name="Iconify"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Close">
|
||||||
|
<mousebind button="Left" action="Click">
|
||||||
|
<action name="Close"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Client">
|
||||||
|
<mousebind button="Left" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Middle" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Right" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Root">
|
||||||
|
<mousebind button="Left" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Right" action="Press">
|
||||||
|
<action name="ShowMenu" menu="root-menu"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
</mouse>
|
||||||
|
<libinput>
|
||||||
|
<device>
|
||||||
|
<naturalscroll>no</naturalscroll>
|
||||||
|
</device>
|
||||||
|
</libinput>
|
||||||
|
</labwc_config>
|
||||||
Executable
+47
@@ -0,0 +1,47 @@
|
|||||||
|
font_family iosevka Medium
|
||||||
|
bold_font Iosevka Bold
|
||||||
|
italic_font Iosevka Medium Italic
|
||||||
|
|
||||||
|
font_size 9.0
|
||||||
|
|
||||||
|
enable_audio_bell no
|
||||||
|
window_border_width 0.0
|
||||||
|
|
||||||
|
tab_title_template {index}:{title}
|
||||||
|
tab_bar_min_tabs 2
|
||||||
|
tab_bar_edge top
|
||||||
|
tab_bar_style powerline
|
||||||
|
|
||||||
|
|
||||||
|
active_tab_background #5294E2
|
||||||
|
active_tab_foreground #ffffff
|
||||||
|
inactive_tab_background #272d3b
|
||||||
|
inactive_tab_foreground #888888
|
||||||
|
|
||||||
|
clear_all_shortcuts yes
|
||||||
|
kitty_mod ctrl
|
||||||
|
map kitty_mod+insert copy_to_clipboard
|
||||||
|
map shift+insert paste_from_clipboard
|
||||||
|
map kitty_mod+t new_tab
|
||||||
|
map kitty_mod+w close_tab
|
||||||
|
map alt+l next_tab
|
||||||
|
map kitty_mod+right next_tab
|
||||||
|
map alt+h previous_tab
|
||||||
|
map kitty_mod+left previous_tab
|
||||||
|
map kitty_mod+alt+t set_tab_title
|
||||||
|
map kitty_mod+g axis vertical
|
||||||
|
|
||||||
|
map alt+1 goto_tab 1
|
||||||
|
map alt+2 goto_tab 2
|
||||||
|
map alt+3 goto_tab 3
|
||||||
|
map alt+4 goto_tab 4
|
||||||
|
map alt+5 goto_tab 5
|
||||||
|
map alt+6 goto_tab 6
|
||||||
|
map alt+7 goto_tab 7
|
||||||
|
map alt+8 goto_tab 8
|
||||||
|
map alt+9 goto_tab 9
|
||||||
|
|
||||||
|
map kitty_mod+alt+r launch --type=tab ranger
|
||||||
|
|
||||||
|
include ./theme.conf
|
||||||
|
|
||||||
Executable
+31
@@ -0,0 +1,31 @@
|
|||||||
|
background #1f2227
|
||||||
|
foreground #abb2bf
|
||||||
|
selection_background #abb2bf
|
||||||
|
selection_foreground #282c34
|
||||||
|
url_color #565c64
|
||||||
|
cursor #abb2bf
|
||||||
|
active_border_color #545862
|
||||||
|
inactive_border_color #353b45
|
||||||
|
active_tab_background #1f2227
|
||||||
|
active_tab_foreground #abb2bf
|
||||||
|
inactive_tab_background #353b45
|
||||||
|
inactive_tab_foreground #565c64
|
||||||
|
tab_bar_background #353b45
|
||||||
|
color0 #282c34
|
||||||
|
color8 #282c34
|
||||||
|
color1 #e06c75
|
||||||
|
color9 #e06c75
|
||||||
|
color2 #98c379
|
||||||
|
color10 #98c379
|
||||||
|
color3 #e5c07b
|
||||||
|
color11 #e5c07b
|
||||||
|
color4 #81A1C1
|
||||||
|
color12 #81A1C1
|
||||||
|
color5 #c678dd
|
||||||
|
color13 #c678dd
|
||||||
|
color6 #56b6c2
|
||||||
|
color14 #56b6c2
|
||||||
|
color7 #c8ccd4
|
||||||
|
color15 #c8ccd4
|
||||||
|
|
||||||
|
# vim: ft=kitty
|
||||||
Executable
+20
@@ -0,0 +1,20 @@
|
|||||||
|
#my simple mako
|
||||||
|
sort=-time
|
||||||
|
max-visible=5
|
||||||
|
layer=top
|
||||||
|
anchor=top-right
|
||||||
|
|
||||||
|
font=iosevka Nerd Font 9
|
||||||
|
background-color=#1f2227
|
||||||
|
text-color=#e5c07b
|
||||||
|
|
||||||
|
width=300
|
||||||
|
height=180
|
||||||
|
margin=12
|
||||||
|
padding=15
|
||||||
|
border-size=2
|
||||||
|
border-color=#88c0d0
|
||||||
|
|
||||||
|
icons=1
|
||||||
|
|
||||||
|
default-timeout=5000
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
/* colors */
|
||||||
|
|
||||||
|
* {
|
||||||
|
al: #c8ccd4;
|
||||||
|
bg: #1f2227;
|
||||||
|
se: #413E4Aff;
|
||||||
|
fg: #abb2bf;
|
||||||
|
ac: #B38184ff;
|
||||||
|
red: #e06c75;
|
||||||
|
green: #98c379;
|
||||||
|
yellow: #e5c07b;
|
||||||
|
blue: #81a1c1;
|
||||||
|
purple: #BA68C8ff;
|
||||||
|
cyan: #56b6c2;
|
||||||
|
}
|
||||||
Executable
+28
@@ -0,0 +1,28 @@
|
|||||||
|
configuration {
|
||||||
|
lines: 15;
|
||||||
|
columns: 1;
|
||||||
|
font: "Iosevka Nerd Font 9";
|
||||||
|
bw: 0;
|
||||||
|
location: 0;
|
||||||
|
padding: 0;
|
||||||
|
fixed-num-lines: true;
|
||||||
|
show-icons: false;
|
||||||
|
sidebar-mode: true;
|
||||||
|
separator-style: "none";
|
||||||
|
hide-scrollbar: true;
|
||||||
|
fullscreen: false;
|
||||||
|
fake-transparency: false;
|
||||||
|
scroll-method: 0;
|
||||||
|
click-to-exit: true;
|
||||||
|
show-match: false;
|
||||||
|
combi-hide-mode-prefix: false;
|
||||||
|
display-window: " ";
|
||||||
|
display-windowcd: " ";
|
||||||
|
display-run: " ";
|
||||||
|
display-ssh: " ";
|
||||||
|
display-drun: " ";
|
||||||
|
display-combi: " ";
|
||||||
|
window-format: "{w} ··· [{c}] ··· {t}";
|
||||||
|
}
|
||||||
|
|
||||||
|
@theme "matbook"
|
||||||
Executable
+143
@@ -0,0 +1,143 @@
|
|||||||
|
@import "colors.rasi"
|
||||||
|
|
||||||
|
* {
|
||||||
|
background-color: @bg;
|
||||||
|
text-color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
window {
|
||||||
|
border: 0px;
|
||||||
|
border-color: @ac;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 15;
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt {
|
||||||
|
spacing: 0;
|
||||||
|
border: 0;
|
||||||
|
text-color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
textbox-prompt-colon {
|
||||||
|
expand: false;
|
||||||
|
str: " ";
|
||||||
|
margin: 0px 4px 0px 0px;
|
||||||
|
text-color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
entry {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
case-indicator {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
inputbar {
|
||||||
|
spacing: 0px;
|
||||||
|
text-color: @fg;
|
||||||
|
padding: 1px;
|
||||||
|
children: [ prompt,textbox-prompt-colon,entry,overlay,case-indicator ];
|
||||||
|
}
|
||||||
|
|
||||||
|
mainbox {
|
||||||
|
border: 0px;
|
||||||
|
border-color: @ac;
|
||||||
|
padding: 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
listview {
|
||||||
|
fixed-height: 0;
|
||||||
|
border: 0px;
|
||||||
|
border-color: @ac;
|
||||||
|
spacing: 4px;
|
||||||
|
scrollbar: false;
|
||||||
|
padding: 5px 5px 0px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
element {
|
||||||
|
border: 0px;
|
||||||
|
border-radius: 2px;
|
||||||
|
padding: 1.8px;
|
||||||
|
}
|
||||||
|
element normal.normal {
|
||||||
|
background-color: @bg;
|
||||||
|
text-color: @fg;
|
||||||
|
}
|
||||||
|
element normal.urgent {
|
||||||
|
background-color: @bg;
|
||||||
|
text-color: @red;
|
||||||
|
}
|
||||||
|
element normal.active {
|
||||||
|
background-color: @green;
|
||||||
|
text-color: @bg;
|
||||||
|
}
|
||||||
|
element selected.normal {
|
||||||
|
background-color: @fg;
|
||||||
|
text-color: @bg;
|
||||||
|
}
|
||||||
|
element selected.urgent {
|
||||||
|
background-color: @bg;
|
||||||
|
text-color: @red;
|
||||||
|
}
|
||||||
|
element selected.active {
|
||||||
|
background-color: @fg;
|
||||||
|
text-color: @bg;
|
||||||
|
}
|
||||||
|
element alternate.normal {
|
||||||
|
background-color: @bg;
|
||||||
|
text-color: @fg;
|
||||||
|
}
|
||||||
|
element alternate.urgent {
|
||||||
|
background-color: @bg;
|
||||||
|
text-color: @fg;
|
||||||
|
}
|
||||||
|
element alternate.active {
|
||||||
|
background-color: @bg;
|
||||||
|
text-color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
sidebar {
|
||||||
|
border: 0px;
|
||||||
|
border-color: @ac;
|
||||||
|
border-radius: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
background-color: @fg;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 5px;
|
||||||
|
text-color: @bg;
|
||||||
|
border: 0px;
|
||||||
|
border-radius: 4px;
|
||||||
|
border-color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
button selected {
|
||||||
|
background-color: @red;
|
||||||
|
text-color: @fg;
|
||||||
|
border: 0px;
|
||||||
|
border-radius: 4px;
|
||||||
|
border-color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
scrollbar {
|
||||||
|
width: 4px;
|
||||||
|
border: 0px;
|
||||||
|
handle-color: @fg;
|
||||||
|
handle-width: 8px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
message {
|
||||||
|
border: 0px;
|
||||||
|
border-color: @ac;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
textbox {
|
||||||
|
text-color: @red;
|
||||||
|
}
|
||||||
Executable
+185
@@ -0,0 +1,185 @@
|
|||||||
|
################################################################################
|
||||||
|
### VARIABLES
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
set $mod Mod4
|
||||||
|
set $term kitty
|
||||||
|
set $file_man kitty -e ranger
|
||||||
|
set $menu rofi -show run
|
||||||
|
set $browser firefox
|
||||||
|
set $alt_browser waterfox
|
||||||
|
set $audio_man pavucontrol
|
||||||
|
set $email_client mutt
|
||||||
|
|
||||||
|
set $left h
|
||||||
|
set $down j
|
||||||
|
set $up k
|
||||||
|
set $right l
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
### STARTUP
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
exec light -A 100
|
||||||
|
workspace 1
|
||||||
|
exec $term
|
||||||
|
workspace 2
|
||||||
|
exec $browser
|
||||||
|
workspace 1
|
||||||
|
exec mako
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
### STYLING
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
font pango:iosevka Medium 9
|
||||||
|
default_border pixel 1
|
||||||
|
client.focused #81a1c1 #81a1c1 #FFFFFF #81a1c1 #81a1c1
|
||||||
|
client.focused_inactive #282c34 #282c34 #FFFFFF #282c34 #282c34
|
||||||
|
client.urgent #e06c75 #e06c75 #FFFFFF #e06c75 #e06c75
|
||||||
|
client.unfocused #282c34 #282c34 #FFFFFF #282c34 #282c34
|
||||||
|
|
||||||
|
gaps inner 3
|
||||||
|
gaps outer 5
|
||||||
|
|
||||||
|
output "*" background "~/Documents/Wallpapers/w.jpg" fill
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
### KEYBINDINGS
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
## Applications:
|
||||||
|
|
||||||
|
bindsym --to-code $mod+Return exec $term
|
||||||
|
bindsym --to-code $mod+Shift+Return exec $file_man
|
||||||
|
bindsym --to-code $mod+d exec $menu
|
||||||
|
bindsym $mod+Escape exec powermenu
|
||||||
|
bindsym --to-code $mod+n exec notesmenu
|
||||||
|
bindsym --to-code $mod+b exec $browser
|
||||||
|
bindsym --to-code $mod+Shift+b exec $alt_browser
|
||||||
|
|
||||||
|
bindsym --to-code $mod+Alt+a exec $audio_man
|
||||||
|
bindsym --to-code $mod+Alt+b exec blueman-manager
|
||||||
|
|
||||||
|
bindsym --to-code $mod+y exec playweb
|
||||||
|
## Sway:
|
||||||
|
|
||||||
|
bindsym --to-code $mod+q kill
|
||||||
|
bindsym --to-code $mod+Shift+q exec swaymsg exit
|
||||||
|
bindsym --to-code $mod+Shift+c reload
|
||||||
|
|
||||||
|
floating_modifier $mod normal
|
||||||
|
|
||||||
|
## Window Navigation:
|
||||||
|
|
||||||
|
# Move your focus around
|
||||||
|
bindsym $mod+$left focus left
|
||||||
|
bindsym $mod+$down focus down
|
||||||
|
bindsym $mod+$up focus up
|
||||||
|
bindsym $mod+$right focus right
|
||||||
|
|
||||||
|
# Move the focused window with the same, but add Shift
|
||||||
|
bindsym $mod+Shift+$left move left
|
||||||
|
bindsym $mod+Shift+$down move down
|
||||||
|
bindsym $mod+Shift+$up move up
|
||||||
|
bindsym $mod+Shift+$right move right
|
||||||
|
|
||||||
|
## Workspaces:
|
||||||
|
|
||||||
|
# Switch to workspace
|
||||||
|
bindsym $mod+1 workspace number 1
|
||||||
|
bindsym $mod+2 workspace number 2
|
||||||
|
bindsym $mod+3 workspace number 3
|
||||||
|
bindsym $mod+4 workspace number 4
|
||||||
|
bindsym $mod+5 workspace number 5
|
||||||
|
bindsym $mod+6 workspace number 6
|
||||||
|
|
||||||
|
# Move focused container to workspace
|
||||||
|
bindsym $mod+Shift+1 move container to workspace number 1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace number 2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace number 3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace number 4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace number 5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace number 6
|
||||||
|
|
||||||
|
## Layout stuff:
|
||||||
|
|
||||||
|
# Switch layout style of current container
|
||||||
|
bindsym --to-code $mod+w layout tabbed
|
||||||
|
bindsym --to-code $mod+e layout toggle split
|
||||||
|
|
||||||
|
# bindsym $mod+space focus mode_toggle
|
||||||
|
bindsym --to-code $mod+f fullscreen
|
||||||
|
bindsym --to-code $mod+t floating toggle
|
||||||
|
bindsym --to-code $mod+a focus parent
|
||||||
|
|
||||||
|
## Scratchpad:
|
||||||
|
|
||||||
|
bindsym $mod+Shift+minus move scratchpad
|
||||||
|
bindsym $mod+minus scratchpad show
|
||||||
|
|
||||||
|
## Spotify:
|
||||||
|
|
||||||
|
bindsym $mod+s+p exec spotifycli --playpause
|
||||||
|
bindsym $mod+s+l exec spotifycli --next
|
||||||
|
bindsym $mod+s+h exec spotifycli --previous
|
||||||
|
|
||||||
|
# Random Stuff:
|
||||||
|
|
||||||
|
bindsym --to-code $mod+p exec screenshot
|
||||||
|
|
||||||
|
mode "resize" {
|
||||||
|
bindsym $left resize grow width 10px
|
||||||
|
bindsym $down resize grow height 10px
|
||||||
|
bindsym $up resize shrink height 10px
|
||||||
|
bindsym $right resize shrink width 10px
|
||||||
|
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
}
|
||||||
|
bindsym --to-code $mod+r mode "resize"
|
||||||
|
|
||||||
|
## Layout keyboard
|
||||||
|
|
||||||
|
input * {
|
||||||
|
xkb_layout "us,ru"
|
||||||
|
xkb_options "grp:caps_toggle"
|
||||||
|
}
|
||||||
|
|
||||||
|
input <identifier> xkb_model "pc101"
|
||||||
|
|
||||||
|
## Display light
|
||||||
|
bindsym XF86MonBrightnessUp exec light -A 1
|
||||||
|
bindsym XF86MonBrightnessDown exec light -U 1
|
||||||
|
|
||||||
|
# Volumes
|
||||||
|
|
||||||
|
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +1%
|
||||||
|
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -1%
|
||||||
|
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
### GET GTK WORKING IN SWAY
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
set $gnome-schema org.gnome.desktop.interface
|
||||||
|
exec_always {
|
||||||
|
gsettings set org.gnome.desktop.interface gtk-theme "matbook"
|
||||||
|
gsettings set org.gnome.desktop.interface icon-theme "Arc"
|
||||||
|
gsettings set org.gnome.desktop.interface cursor-theme "DMZ-Black"
|
||||||
|
gsettings set $gnome-schema cursor-theme 'Adwaita'
|
||||||
|
gsettings set $gnome-schema font-name 'iosevka Medium 9'
|
||||||
|
}
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
### STATUS BAR
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
bar {
|
||||||
|
swaybar_command waybar
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
include /etc/sway/config.d/*
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
set encoding=utf-8
|
||||||
|
set mouse=a
|
||||||
|
set hlsearch
|
||||||
|
set t_Co=256
|
||||||
|
set clipboard=unnamed
|
||||||
|
set noswapfile
|
||||||
|
|
||||||
|
syntax on
|
||||||
|
inoremap jk <esc>
|
||||||
|
|
||||||
|
set directory=~/.config/vim,.
|
||||||
|
set viminfo+=n~/.config/vim/viminfo
|
||||||
Executable
+24
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"arrowParens": "always",
|
||||||
|
"bracketSpacing": true,
|
||||||
|
"endOfLine": "lf",
|
||||||
|
"htmlWhitespaceSensitivity": "css",
|
||||||
|
"printWidth": 80,
|
||||||
|
"proseWrap": "always",
|
||||||
|
"requirePragma": false,
|
||||||
|
"semi": true,
|
||||||
|
"singleQuote": false,
|
||||||
|
"tabWidth": 4,
|
||||||
|
"trailingComma": "all",
|
||||||
|
"useTabs": false,
|
||||||
|
"vueIndentScriptAndStyle": true,
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files": "*.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"files": "*.rasi",
|
||||||
|
"options": { "parser": "css" }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Executable
+117
@@ -0,0 +1,117 @@
|
|||||||
|
{
|
||||||
|
"position": "bottom",
|
||||||
|
"modules-left": ["custom/launch", "sway/workspaces"],
|
||||||
|
"modules-center": ["custom/spotify"],
|
||||||
|
"modules-right": [
|
||||||
|
"custom/xkblayout",
|
||||||
|
"pulseaudio",
|
||||||
|
"backlight",
|
||||||
|
"custom/wgstatus",
|
||||||
|
"network",
|
||||||
|
"memory",
|
||||||
|
"battery",
|
||||||
|
"clock",
|
||||||
|
"custom/off"
|
||||||
|
],
|
||||||
|
"custom/launch": {
|
||||||
|
"format": " ",
|
||||||
|
"on-click": "rofi -show run"
|
||||||
|
},
|
||||||
|
"sway/workspaces": {
|
||||||
|
"disable-scroll": true,
|
||||||
|
"all-outputs": true,
|
||||||
|
"format": " {icon} ",
|
||||||
|
"persistent_workspaces": {
|
||||||
|
"1": [],
|
||||||
|
"2": [],
|
||||||
|
"3": [],
|
||||||
|
"4": [],
|
||||||
|
"5": [],
|
||||||
|
"6": []
|
||||||
|
},
|
||||||
|
"format-icons": {
|
||||||
|
"1": " ",
|
||||||
|
"2": " ",
|
||||||
|
"3": " ",
|
||||||
|
"4": " ",
|
||||||
|
"5": " ",
|
||||||
|
"6": " ",
|
||||||
|
"urgent": " ",
|
||||||
|
"focused": " ",
|
||||||
|
"default": " "
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"custom/spotify": {
|
||||||
|
"exec": "/usr/bin/python3 $XDG_CONFIG_HOME/waybar/scripts/mediaplayer.py --player spotify",
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"on-click": "spotifycli --playpause",
|
||||||
|
"on-scroll-up": "spotifycli --next",
|
||||||
|
"on-scroll-down": "spotifycli --previous"
|
||||||
|
},
|
||||||
|
"custom/xkblayout": {
|
||||||
|
"exec": "~/.config/waybar/scripts/xkblayout.py",
|
||||||
|
"format": " {} ",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"pulseaudio": {
|
||||||
|
"scroll-step": 5,
|
||||||
|
"format": "{icon} {volume}%", "format-bluetooth": "{volume}% {icon} {format_source}",
|
||||||
|
"format-bluetooth-muted": "婢 {icon} muted",
|
||||||
|
"format-muted": "婢 muted",
|
||||||
|
"format-icons": {
|
||||||
|
"speaker": " ",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"headphone": [" ", " ", " "]
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol"
|
||||||
|
},
|
||||||
|
"backlight": {
|
||||||
|
"device": "intel_backlight",
|
||||||
|
"format": " {percent}%",
|
||||||
|
"on-scroll-up": "light -A 1",
|
||||||
|
"on-scroll-down": "light -U 1"
|
||||||
|
},
|
||||||
|
"custom/wgstatus": {
|
||||||
|
"interval": 1,
|
||||||
|
"exec": "~/.config/waybar/scripts/wgstatus",
|
||||||
|
"format": " {} ",
|
||||||
|
"tooltip": false,
|
||||||
|
"on-click": "~/.config/waybar/scripts/wgstatus -toggle"
|
||||||
|
},
|
||||||
|
"network": {
|
||||||
|
"format-wifi": "直 {essid}",
|
||||||
|
"format-ethernet": "直 {ifname}: {ipaddr}/{cidr}",
|
||||||
|
"format-linked": "直 {ifname} (No IP)",
|
||||||
|
"format-disconnected": "睊 Disconnected",
|
||||||
|
"format-alt": "直 {ifname}: {ipaddr}/{cidr}",
|
||||||
|
"on-click-middle": "~/.config/waybar/scripts/wgstatus -toggle"
|
||||||
|
},
|
||||||
|
"memory": {
|
||||||
|
"interval": 3,
|
||||||
|
"format": " {}%",
|
||||||
|
"max-length": 10
|
||||||
|
},
|
||||||
|
"battery": {
|
||||||
|
"interval": 60,
|
||||||
|
"states": {
|
||||||
|
"warning": 30,
|
||||||
|
"critical": 15
|
||||||
|
},
|
||||||
|
"format": "{icon} {capacity}%",
|
||||||
|
"format-icons": [" ", " ", " ", " ", " "]
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
"interval": 1,
|
||||||
|
"format": " {:%I:%M %p}",
|
||||||
|
"format-alt": " {:%b %d, %G}"
|
||||||
|
},
|
||||||
|
"custom/off": {
|
||||||
|
"format": " ",
|
||||||
|
"on-click": "powermenu"
|
||||||
|
}
|
||||||
|
}i
|
||||||
+144
@@ -0,0 +1,144 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import argparse
|
||||||
|
import logging
|
||||||
|
import sys
|
||||||
|
import signal
|
||||||
|
import gi
|
||||||
|
import json
|
||||||
|
|
||||||
|
gi.require_version("Playerctl", "2.0")
|
||||||
|
from gi.repository import Playerctl, GLib
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
def write_output(text, player):
|
||||||
|
logger.info("Writing output")
|
||||||
|
|
||||||
|
output = {
|
||||||
|
"text": text,
|
||||||
|
"class": "custom-" + player.props.player_name,
|
||||||
|
"alt": player.props.player_name,
|
||||||
|
}
|
||||||
|
|
||||||
|
sys.stdout.write(json.dumps(output) + "\n")
|
||||||
|
sys.stdout.flush()
|
||||||
|
|
||||||
|
|
||||||
|
def on_play(player, status, manager):
|
||||||
|
logger.info("Received new playback status")
|
||||||
|
on_metadata(player, player.props.metadata, manager)
|
||||||
|
|
||||||
|
|
||||||
|
def on_metadata(player, metadata, manager):
|
||||||
|
logger.info("Received new metadata")
|
||||||
|
track_info = ""
|
||||||
|
|
||||||
|
if (
|
||||||
|
player.props.player_name == "spotify"
|
||||||
|
and "mpris:trackid" in metadata.keys()
|
||||||
|
and ":ad:" in player.props.metadata["mpris:trackid"]
|
||||||
|
):
|
||||||
|
track_info = "AD PLAYING"
|
||||||
|
elif player.get_artist() != "" and player.get_title() != "":
|
||||||
|
track_info = "{artist} - {title}".format(
|
||||||
|
artist=player.get_artist(), title=player.get_title()
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
track_info = player.get_title()
|
||||||
|
|
||||||
|
if player.props.status != "Playing" and track_info:
|
||||||
|
track_info = "契 " + track_info
|
||||||
|
elif player.props.status == "Playing" and track_info:
|
||||||
|
track_info = " " + track_info
|
||||||
|
write_output(track_info, player)
|
||||||
|
|
||||||
|
|
||||||
|
def on_player_appeared(manager, player, selected_player=None):
|
||||||
|
if player is not None and (
|
||||||
|
selected_player is None or player.name == selected_player
|
||||||
|
):
|
||||||
|
init_player(manager, player)
|
||||||
|
else:
|
||||||
|
logger.debug("New player appeared, but it's not the selected player, skipping")
|
||||||
|
|
||||||
|
|
||||||
|
def on_player_vanished(manager, player):
|
||||||
|
logger.info("Player has vanished")
|
||||||
|
sys.stdout.write("\n")
|
||||||
|
sys.stdout.flush()
|
||||||
|
|
||||||
|
|
||||||
|
def init_player(manager, name):
|
||||||
|
logger.debug("Initialize player: {player}".format(player=name.name))
|
||||||
|
player = Playerctl.Player.new_from_name(name)
|
||||||
|
player.connect("playback-status", on_play, manager)
|
||||||
|
player.connect("metadata", on_metadata, manager)
|
||||||
|
manager.manage_player(player)
|
||||||
|
on_metadata(player, player.props.metadata, manager)
|
||||||
|
|
||||||
|
|
||||||
|
def signal_handler(sig, frame):
|
||||||
|
logger.debug("Received signal to stop, exiting")
|
||||||
|
sys.stdout.write("\n")
|
||||||
|
sys.stdout.flush()
|
||||||
|
# loop.quit()
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
|
def parse_arguments():
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
|
||||||
|
# Increase verbosity with every occurence of -v
|
||||||
|
parser.add_argument("-v", "--verbose", action="count", default=0)
|
||||||
|
|
||||||
|
# Define for which player we're listening
|
||||||
|
parser.add_argument("--player")
|
||||||
|
|
||||||
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
arguments = parse_arguments()
|
||||||
|
|
||||||
|
# Initialize logging
|
||||||
|
logging.basicConfig(
|
||||||
|
stream=sys.stderr,
|
||||||
|
level=logging.DEBUG,
|
||||||
|
format="%(name)s %(levelname)s %(message)s",
|
||||||
|
)
|
||||||
|
|
||||||
|
# Logging is set by default to WARN and higher.
|
||||||
|
# With every occurrence of -v it's lowered by one
|
||||||
|
logger.setLevel(max((3 - arguments.verbose) * 10, 0))
|
||||||
|
|
||||||
|
# Log the sent command line arguments
|
||||||
|
logger.debug("Arguments received {}".format(vars(arguments)))
|
||||||
|
|
||||||
|
manager = Playerctl.PlayerManager()
|
||||||
|
loop = GLib.MainLoop()
|
||||||
|
|
||||||
|
manager.connect(
|
||||||
|
"name-appeared", lambda *args: on_player_appeared(*args, arguments.player)
|
||||||
|
)
|
||||||
|
manager.connect("player-vanished", on_player_vanished)
|
||||||
|
|
||||||
|
signal.signal(signal.SIGINT, signal_handler)
|
||||||
|
signal.signal(signal.SIGTERM, signal_handler)
|
||||||
|
|
||||||
|
for player in manager.props.player_names:
|
||||||
|
if arguments.player is not None and arguments.player != player.name:
|
||||||
|
logger.debug(
|
||||||
|
"{player} is not the filtered player, skipping it".format(
|
||||||
|
player=player.name
|
||||||
|
)
|
||||||
|
)
|
||||||
|
continue
|
||||||
|
|
||||||
|
init_player(manager, player)
|
||||||
|
|
||||||
|
loop.run()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Executable
+23
@@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
WGON(){
|
||||||
|
echo "VPN"
|
||||||
|
WGS='true'
|
||||||
|
}
|
||||||
|
|
||||||
|
WGOFF(){
|
||||||
|
# echo "Off"
|
||||||
|
WGS='false'
|
||||||
|
}
|
||||||
|
|
||||||
|
ifconfig n2400 &>/dev/null && WGON ||WGOFF
|
||||||
|
|
||||||
|
if [ "$1" = '-toggle' ]; then
|
||||||
|
if [ "$WGS" = 'true' ]; then
|
||||||
|
sudo wg-quick down n2400 &>/dev/null
|
||||||
|
else
|
||||||
|
sudo wg-quick up n2400 &>/dev/null
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
+50
@@ -0,0 +1,50 @@
|
|||||||
|
#!/usr/bin/env -S python3 -u
|
||||||
|
# vi:syntax=python
|
||||||
|
|
||||||
|
|
||||||
|
import os
|
||||||
|
import signal
|
||||||
|
|
||||||
|
import i3ipc
|
||||||
|
|
||||||
|
pri_layout_code = "Eng"
|
||||||
|
sec_layout_code = "Rus"
|
||||||
|
sec_layout_name = "russian"
|
||||||
|
input_event_change = "xkb_layout"
|
||||||
|
|
||||||
|
sway_sock_path = os.environ["SWAYSOCK"]
|
||||||
|
sway = i3ipc.Connection(socket_path=sway_sock_path, auto_reconnect=False)
|
||||||
|
|
||||||
|
|
||||||
|
def on_posix_signal(sig, frame):
|
||||||
|
sway.main_quit()
|
||||||
|
|
||||||
|
|
||||||
|
signal.signal(signal.SIGHUP, on_posix_signal)
|
||||||
|
signal.signal(signal.SIGINT, on_posix_signal)
|
||||||
|
signal.signal(signal.SIGQUIT, on_posix_signal)
|
||||||
|
signal.signal(signal.SIGTERM, on_posix_signal)
|
||||||
|
|
||||||
|
# print the primary layout as it's the default
|
||||||
|
print(pri_layout_code)
|
||||||
|
|
||||||
|
|
||||||
|
def on_input_change(conn, event):
|
||||||
|
if event.change != input_event_change:
|
||||||
|
return
|
||||||
|
if event.input.xkb_active_layout_name.lower() == sec_layout_name:
|
||||||
|
print(sec_layout_code)
|
||||||
|
else:
|
||||||
|
print(pri_layout_code)
|
||||||
|
|
||||||
|
|
||||||
|
def on_shutdown_or_reload(conn, event):
|
||||||
|
conn.main_quit()
|
||||||
|
|
||||||
|
|
||||||
|
sway.on(i3ipc.Event.INPUT, on_input_change)
|
||||||
|
sway.on(i3ipc.Event.SHUTDOWN, on_shutdown_or_reload)
|
||||||
|
sway.on(i3ipc.Event.SHUTDOWN_EXIT, on_shutdown_or_reload)
|
||||||
|
sway.on(i3ipc.Event.SHUTDOWN_RESTART, on_shutdown_or_reload)
|
||||||
|
sway.on(i3ipc.Event.BARCONFIG_UPDATE, on_shutdown_or_reload)
|
||||||
|
sway.main()
|
||||||
Executable
+184
@@ -0,0 +1,184 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
Color Pallete
|
||||||
|
|
||||||
|
foreground: '#abb2bf'
|
||||||
|
background: '#1f2227'
|
||||||
|
alt-background: '#282c34'
|
||||||
|
alt-foreground: '#1f2227'
|
||||||
|
|
||||||
|
black: '#282c34'
|
||||||
|
red: '#e06c75'
|
||||||
|
green: '#98c379'
|
||||||
|
yellow: '#e5c07b'
|
||||||
|
blue: '#81A1C1'
|
||||||
|
magenta: '#c678dd'
|
||||||
|
cyan: '#56b6c2'
|
||||||
|
white: '#c8ccd4'
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
* {
|
||||||
|
border: 0px solid rgba(40, 44, 52, 0);
|
||||||
|
border-radius: 2px;
|
||||||
|
font-family: Iosevka Nerd Font, Font Awesome, Arial, sans-serif;
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 13px;
|
||||||
|
min-height: 0;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background-color: #1f2227;
|
||||||
|
background: transparent;
|
||||||
|
color: #c8ccd4;
|
||||||
|
transition-property: background-color;
|
||||||
|
transition-duration: 0.5s;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
window > box {
|
||||||
|
margin-left: 6.5px;
|
||||||
|
margin-right: 6.5px;
|
||||||
|
margin-bottom: 6.5px;
|
||||||
|
background: #1f2227;
|
||||||
|
color: #c8ccd4;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar.hidden {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
label:focus {
|
||||||
|
background-color: #282c34;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes blink {
|
||||||
|
to {
|
||||||
|
background-color: #c8ccd4;
|
||||||
|
color: #282c34;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#disk,
|
||||||
|
#temperature,
|
||||||
|
#backlight,
|
||||||
|
#network,
|
||||||
|
#pulseaudio,
|
||||||
|
#workspaces,
|
||||||
|
#clock,
|
||||||
|
#tray,
|
||||||
|
#mode,
|
||||||
|
#idle_inhibitor,
|
||||||
|
#mpd {
|
||||||
|
padding: 0 10px;
|
||||||
|
margin: 4px 4px 4px 4px;
|
||||||
|
color: #1f2227;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-launch {
|
||||||
|
margin-right: 10px;
|
||||||
|
margin-left: 4px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
margin-top: 4px;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
font-size: 17px;
|
||||||
|
background-color: #81a1c1;
|
||||||
|
color: #1f2227;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 5px 5px;
|
||||||
|
background-color: transparent;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-left: 1px;
|
||||||
|
color: #c8ccd4;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
background-color: #c8ccd4;
|
||||||
|
color: #1f2227;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused {
|
||||||
|
background-color: #e06c75;
|
||||||
|
color: #282c34;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
background-color: #e04753;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-spotify {
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
margin-top: 4px;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
font-size: 17px;
|
||||||
|
font-weight: 500;
|
||||||
|
background-color: #98c379;
|
||||||
|
color: #1f2227;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-xkblayout {
|
||||||
|
color: #81a1c1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
color: #e06c75;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.muted {
|
||||||
|
background-color: #81a1c1;
|
||||||
|
color: #282c34;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight {
|
||||||
|
color: #e5c07b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
color: #81a1c1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#memory {
|
||||||
|
color: #e06c75;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
color: #e5c07b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.charging,
|
||||||
|
#battery.plugged {
|
||||||
|
color: #e06c75;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.critical:not(.charging) {
|
||||||
|
color: #e06c75;
|
||||||
|
animation-name: blink;
|
||||||
|
animation-duration: 0.5s;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-direction: alternate;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
color: #98c379;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-off {
|
||||||
|
margin-right: 4px;
|
||||||
|
margin-left: 11px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 8px;
|
||||||
|
margin-top: 4px;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
font-size: 17px;
|
||||||
|
background-color: #e06c75;
|
||||||
|
color: #1f2227;
|
||||||
|
}
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/zsh
|
||||||
|
|
||||||
|
# ALIASES
|
||||||
|
alias df='df -l -H'
|
||||||
|
alias ls='ls_extended'
|
||||||
|
alias sn='sncli -c ~/.config/sncli/snclirc'
|
||||||
|
alias neofetch='neofetch --config ~/.config/neofetch/matbook.conf'
|
||||||
|
alias sirot='pacman -Qdt && sudo pacman -Rs $(pacman -Qtdq)'
|
||||||
|
alias swayconf='vim ~/.config/sway/config'
|
||||||
|
|
||||||
Executable
+42
@@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/zsh
|
||||||
|
|
||||||
|
# АРХИВЫ
|
||||||
|
unpack() {
|
||||||
|
if [ -f $1 ] ; then
|
||||||
|
case $1 in
|
||||||
|
*.tar.bz2) tar xjf $1 ;;
|
||||||
|
*.tar.gz) tar xzf $1 ;;
|
||||||
|
*.tar.xz) tar xf $1 ;;
|
||||||
|
*.bz2) bunzip2 $1 ;;
|
||||||
|
*.rar) unrar x $1 ;;
|
||||||
|
*.gz) gunzip $1 ;;
|
||||||
|
*.tar) tar xf $1 ;;
|
||||||
|
*.tbz2) tar xjf $1 ;;
|
||||||
|
*.tgz) tar xzf $1 ;;
|
||||||
|
*.zip) unzip $1 ;;
|
||||||
|
*.Z) uncompress $1 ;;
|
||||||
|
*.7z) 7z x $1 ;;
|
||||||
|
*) echo "$fg_bold[red]Ошибка:$reset_color Невозможно распаковать '$1'..." ;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
echo "$fg_bold[red]Ошибка:$reset_color '$1' - неподдерживаемый тип файла"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pack() {
|
||||||
|
if [ $1 ] ; then
|
||||||
|
case $1 in
|
||||||
|
tbz) tar cjvf $2.tar.bz2 $2 ;;
|
||||||
|
tgz) tar czvf $2.tar.gz $2 ;;
|
||||||
|
tar) tar cpvf $2.tar $2 ;;
|
||||||
|
bz2) bzip $2 ;;
|
||||||
|
gz) gzip -c -9 -n $2 > $2.gz ;;
|
||||||
|
zip) zip -r $2.zip $2 ;;
|
||||||
|
7z) 7z a $2.7z $2 ;;
|
||||||
|
*) echo "$fg_bold[red]Ошибка:$reset_color '$1' не может быть упакован через pack()" ;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
echo "$fg_bold[red]Ошибка:$reset_color '$1' - неподдерживаемый тип файла"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
Executable
+16
@@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/zsh
|
||||||
|
# coding: utf-8
|
||||||
|
# Author: Maksim Totmin, @iMaciaveller
|
||||||
|
|
||||||
|
#BINDS
|
||||||
|
|
||||||
|
bindkey '^[[24~' clear-screen
|
||||||
|
bindkey "^[OH" beginning-of-line
|
||||||
|
bindkey "^[OF" end-of-line
|
||||||
|
bindkey '^[[1;5D' backward-word
|
||||||
|
bindkey '^[[1;5C' forward-word
|
||||||
|
|
||||||
|
bindkey "^A" vi-beginning-of-line
|
||||||
|
bindkey "^E" vi-end-of-line
|
||||||
|
|
||||||
|
bindkey '^R' history-incremental-search-backward
|
||||||
Executable
+9
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/zsh
|
||||||
|
|
||||||
|
#git
|
||||||
|
|
||||||
|
autoload -Uz vcs_info
|
||||||
|
precmd_vcs_info() { vcs_info }
|
||||||
|
precmd_functions+=( precmd_vcs_info )
|
||||||
|
setopt prompt_subst
|
||||||
|
zstyle ':vcs_info:git:*' formats '[ %b]'
|
||||||
Executable
+19
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/zsh
|
||||||
|
|
||||||
|
#HISTORY
|
||||||
|
##Где хранить историю
|
||||||
|
HISTFILE=~/.config/zsh-history
|
||||||
|
##Число команд, сохраняемых в HISTFILE
|
||||||
|
SAVEHIST=5000
|
||||||
|
##Чucлo кoмaнд, coxpaняeмыx в сеансе
|
||||||
|
HISTSIZE=5000
|
||||||
|
##Игнорировать повторяющиеся команды
|
||||||
|
setopt HIST_IGNORE_ALL_DUPS
|
||||||
|
##Игнopupoвать лишние пpoбeлы
|
||||||
|
setopt HIST_IGNORE_SPACE
|
||||||
|
##Удалять из файл истории пустые строки
|
||||||
|
setopt HIST_REDUCE_BLANKS
|
||||||
|
##время выполнения команд
|
||||||
|
setopt extended_history
|
||||||
|
##История становится общей между всеми сессиями
|
||||||
|
setopt share_history
|
||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/zsh
|
||||||
|
|
||||||
|
autoload -Uz compinit
|
||||||
|
compinit
|
||||||
|
|
||||||
|
# Completion for kitty
|
||||||
|
kitty + complete setup zsh | source /dev/stdin
|
||||||
|
|
||||||
|
# Kitty aliases
|
||||||
|
alias icat='kitty +kitten icat'
|
||||||
|
alias clear='icat --clear && clear'
|
||||||
Executable
+36
@@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/zsh
|
||||||
|
|
||||||
|
autoload -U colors && colors
|
||||||
|
|
||||||
|
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/mat/.local/bin:/usr/bin/core_perl"
|
||||||
|
export EDITOR="vim"
|
||||||
|
export MUTT_EDITOR="vim"
|
||||||
|
export VISUAL="vim"
|
||||||
|
export VIMINIT="source ~/.config/vim/vimrc"
|
||||||
|
export SSH_KEY_PATH="~/.ssh/"
|
||||||
|
export TERM="xterm-kitty"
|
||||||
|
export TERMINAL="kitty"
|
||||||
|
export MOZ_ENABLE_WAYLAND=1
|
||||||
|
|
||||||
|
#НАВИГАЦИЯ
|
||||||
|
##авто cd
|
||||||
|
setopt autocd
|
||||||
|
setopt extended_glob
|
||||||
|
|
||||||
|
##автодополнение TAB
|
||||||
|
autoload -Uz compinit && compinit
|
||||||
|
_comp_options+=(globdots)
|
||||||
|
|
||||||
|
# Установка-снятие опций шелла
|
||||||
|
setopt notify globdots correct pushdtohome cdablevars autolist
|
||||||
|
setopt correctall autocd recexact longlistjobs
|
||||||
|
setopt autoresume histignoredups pushdsilent noclobber
|
||||||
|
setopt autopushd pushdminus extendedglob rcquotes mailwarning
|
||||||
|
unsetopt bgnice autoparamslash
|
||||||
|
unsetopt nomatch
|
||||||
|
|
||||||
|
autoload -Uz bracketed-paste-magic
|
||||||
|
zle -N bracketed-paste bracketed-paste-magic
|
||||||
|
autoload -Uz url-quote-magic
|
||||||
|
zle -N self-insert url-quote-magic
|
||||||
|
unsetopt nomatch
|
||||||
Executable
+5
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/zsh
|
||||||
|
|
||||||
|
# PROMPTS
|
||||||
|
PROMPT=%{$fg_bold[blue]%}'[%n][%~]» '%{$reset_color%}
|
||||||
|
RPROMPT=%{$fg_bold[green]%}\$vcs_info_msg_0_%{$reset_color%}%{$fg_bold[red]%}'[%T]'%{$reset_color%}
|
||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/zsh
|
||||||
|
|
||||||
|
for conf in ~/.config/zsh/*.zsh; do
|
||||||
|
source $conf
|
||||||
|
done
|
||||||
|
|
||||||
|
#start sway
|
||||||
|
if [ "$(tty)" = "/dev/tty1" ]; then
|
||||||
|
exec sway
|
||||||
|
fi
|
||||||
|
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# usage: import-gsettings
|
||||||
|
config="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-3.0/settings.ini"
|
||||||
|
if [ ! -f "$config" ]; then exit 1; fi
|
||||||
|
|
||||||
|
gnome_schema="org.gnome.desktop.interface"
|
||||||
|
gtk_theme="$(grep 'gtk-theme-name' "$config" | sed 's/.*\s*=\s*//')"
|
||||||
|
icon_theme="$(grep 'gtk-icon-theme-name' "$config" | sed 's/.*\s*=\s*//')"
|
||||||
|
cursor_theme="$(grep 'gtk-cursor-theme-name' "$config" | sed 's/.*\s*=\s*//')"
|
||||||
|
font_name="$(grep 'gtk-font-name' "$config" | sed 's/.*\s*=\s*//')"
|
||||||
|
gsettings set "$gnome_schema" gtk-theme "$gtk_theme"
|
||||||
|
gsettings set "$gnome_schema" icon-theme "$icon_theme"
|
||||||
|
gsettings set "$gnome_schema" cursor-theme "$cursor_theme"
|
||||||
|
gsettings set "$gnome_schema" font-name "$font_name"
|
||||||
Executable
+44
@@ -0,0 +1,44 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
option0=" Lock"
|
||||||
|
option1=" Poweroff"
|
||||||
|
option2=" Reboot"
|
||||||
|
option3=" Exit"
|
||||||
|
|
||||||
|
option4="Enable Display"
|
||||||
|
option5="Disable Display"
|
||||||
|
|
||||||
|
options="$option0\n$option1\n$option2\n$option3\n$option4\n$option5"
|
||||||
|
|
||||||
|
selected="$(echo -e "$options" | rofi -lines 4 -dmenu -P " Powermenu:")"
|
||||||
|
|
||||||
|
case $selected in
|
||||||
|
$option0)
|
||||||
|
swaylock \
|
||||||
|
--screenshots \
|
||||||
|
--clock \
|
||||||
|
--indicator \
|
||||||
|
--indicator-radius 100 \
|
||||||
|
--indicator-thickness 7 \
|
||||||
|
--effect-blur 6x5 \
|
||||||
|
--effect-vignette 0.5:0.5 \
|
||||||
|
--ring-color 1f2227 \
|
||||||
|
--key-hl-color e06c75 \
|
||||||
|
--line-color 00000000 \
|
||||||
|
--inside-color 00000088 \
|
||||||
|
--separator-color 00000000 \
|
||||||
|
--grace 2 \
|
||||||
|
--fade-in 0.2;;
|
||||||
|
$option1)
|
||||||
|
systemctl poweroff;;
|
||||||
|
$option2)
|
||||||
|
systemctl reboot;;
|
||||||
|
$option3)
|
||||||
|
swaymsg exit;;
|
||||||
|
$option4)
|
||||||
|
swaymsg output eDP-1 enable;;
|
||||||
|
$option5)
|
||||||
|
swaymsg output eDP-1 disable;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
Executable
+5
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
slurp | grim -g - $HOME/$(date +'screenshot_%Y-%m-%d-%H%M%S.png')
|
||||||
|
|
||||||
|
exit 0
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
gpu_stats
|
||||||
|
gpu_temp
|
||||||
|
gpu_power
|
||||||
|
cpu_stats
|
||||||
|
cpu_temp
|
||||||
|
cpu_power
|
||||||
|
io_read
|
||||||
|
fps
|
||||||
|
frametime
|
||||||
|
frame_timing
|
||||||
|
vkbasalt
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
[General]
|
||||||
|
startOnSysTray=true
|
||||||
|
|
||||||
|
[Window]
|
||||||
|
main-height=1356
|
||||||
|
main-width=3412
|
||||||
|
main-x-pos=2560
|
||||||
|
main-y-pos=0
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,190 @@
|
|||||||
|
# My cozy Hyprland conf
|
||||||
|
|
||||||
|
autogenerated = 0
|
||||||
|
|
||||||
|
# Monitor setting
|
||||||
|
# 2 normal mode
|
||||||
|
misc:disable_hyprland_logo=true
|
||||||
|
monitor=DP-1,3440x1440@144,2560x0,1
|
||||||
|
monitor=DP-2,2560x1440@165,0x0,1
|
||||||
|
# slave vertical
|
||||||
|
#monitor=DP-1,3440x1440@144,1440x0,1
|
||||||
|
#monitor=DP-2,2560x1440@165,0x0,1,transform,1
|
||||||
|
|
||||||
|
# Fix slow startup
|
||||||
|
exec-once=systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||||
|
exec-once=systemctl --user import-environment QT_QPA_PLATFORMTHEME
|
||||||
|
exec-once=dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||||
|
exec-once=dbus-update-activation-environment --systemd --all
|
||||||
|
exec-once=gio mime inode/directory thunar.desktop
|
||||||
|
exec-once=xdg-mime default thunar.desktop inode/directory
|
||||||
|
|
||||||
|
# Keyboard
|
||||||
|
input {
|
||||||
|
kb_layout = us,ru
|
||||||
|
kb_options = grp:caps_toggle,grp_led:caps
|
||||||
|
follow_mouse = 1
|
||||||
|
touchpad {
|
||||||
|
natural_scroll = no
|
||||||
|
}
|
||||||
|
|
||||||
|
sensitivity = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Window Rules
|
||||||
|
windowrule = workspace 2 silent,firefox
|
||||||
|
windowrule = workspace 4 silent,discord
|
||||||
|
windowrulev2 = tile, noblur, class:^(Pulse Browser)(.*)$
|
||||||
|
windowrulev2 = tile, class:^(steam_app)(.*)$
|
||||||
|
windowrulev2 = tile, class:^(thunar)(.*)$
|
||||||
|
windowrulev2 = tile, class:^(lutris)(.*)$
|
||||||
|
windowrulev2 = workspace 2, class:^(Pulse Browser)$
|
||||||
|
windowrulev2 = workspace 3, class:^(Steam)$
|
||||||
|
windowrulev2 = workspace 3, class:^(lutris)$
|
||||||
|
windowrulev2 = workspace 6, class:^(Spotify)$
|
||||||
|
windowrulev2 = workspace 8, class:^(Corectrl)$
|
||||||
|
windowrulev2 = workspace 3, class:^(gamescope)$
|
||||||
|
windowrulev2 = float, class:^(org.kde.polkit-kde-authentication-agent-1)$
|
||||||
|
|
||||||
|
# Autostart
|
||||||
|
exec-once=import-gsettings
|
||||||
|
exec-once=desktop-portal
|
||||||
|
exec-once=/usr/lib/polkit-kde-authentication-agent-1
|
||||||
|
exec-once=night-mode
|
||||||
|
exec-once=wallpapers
|
||||||
|
exec-once=swayosd
|
||||||
|
exec-once=waybar
|
||||||
|
exec-once=swaync
|
||||||
|
exec-once=[workspace 4 silent;noanim] discord
|
||||||
|
exec-once=transmission-daemon
|
||||||
|
exec-once=thunar --daemon
|
||||||
|
exec-once=steam-native -silent
|
||||||
|
exec-once=polychromatic-cli -n "Razer DeathAdder V2 Pro (Wireless)" --dpi 600
|
||||||
|
|
||||||
|
# Styling
|
||||||
|
general {
|
||||||
|
gaps_in = 5
|
||||||
|
gaps_out = 12
|
||||||
|
border_size = 2
|
||||||
|
col.active_border = rgba(313455ee) rgba(00ff99ee) 45deg
|
||||||
|
col.inactive_border = rgba(595959aa)
|
||||||
|
|
||||||
|
layout = dwindle
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
decoration {
|
||||||
|
rounding = 4
|
||||||
|
|
||||||
|
drop_shadow = yes
|
||||||
|
shadow_range = 4
|
||||||
|
shadow_render_power = 3
|
||||||
|
col.shadow = rgba(1a1a1aee)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
animations {
|
||||||
|
enabled = yes
|
||||||
|
|
||||||
|
bezier = overshot, 0.05, 0.9, 0.1, 1.05
|
||||||
|
bezier = smoothOut, 0.36, 0, 0.66, -0.56
|
||||||
|
bezier = smoothIn, 0.25, 1, 0.5, 1
|
||||||
|
|
||||||
|
animation = windows, 1, 5, overshot, slide
|
||||||
|
animation = windowsOut, 1, 4, smoothOut, slide
|
||||||
|
animation = windowsMove, 1, 4, default
|
||||||
|
animation = border, 1, 10, default
|
||||||
|
animation = fade, 1, 10, smoothIn
|
||||||
|
animation = fadeDim, 1, 10, smoothIn
|
||||||
|
animation = workspaces, 1, 6, default
|
||||||
|
}
|
||||||
|
|
||||||
|
dwindle {
|
||||||
|
pseudotile = yes
|
||||||
|
preserve_split = yes
|
||||||
|
}
|
||||||
|
|
||||||
|
master {
|
||||||
|
new_is_master = true
|
||||||
|
}
|
||||||
|
|
||||||
|
gestures {
|
||||||
|
workspace_swipe = off
|
||||||
|
}
|
||||||
|
|
||||||
|
$mainMod = SUPER
|
||||||
|
|
||||||
|
# KeyBinding
|
||||||
|
bind = $mainMod, RETURN, exec, kitty
|
||||||
|
bind = $mainMod, Q, killactive,
|
||||||
|
bind = $mainMod, M, exit,
|
||||||
|
bind = $mainMod, E, exec, dolphin
|
||||||
|
bind = $mainMod, V, togglefloating,
|
||||||
|
bind = $mainMod, R, exec, menurun
|
||||||
|
bind = $mainMod, D, exec, menudrun
|
||||||
|
bind = $mainMod, Y, exec, menupass
|
||||||
|
bind = $mainMod, A, exec, menuaudio
|
||||||
|
bind = $mainMod, W, pseudo,
|
||||||
|
bind = $mainMod, S, togglesplit,
|
||||||
|
bind = $mainMod, P, exec, screenshot
|
||||||
|
bind = $mainMod, B, exec, pulse-browser
|
||||||
|
bind = $mainMod, X, exec, wl-paste
|
||||||
|
bind = $mainMod, G, exec, menugames
|
||||||
|
bind = $mainMod, Z, exec, killall -SIGUSR1 waybar
|
||||||
|
bind = $mainMod, ESCAPE, exec, menupower
|
||||||
|
bind = $mainMod SHIFT, Q, exec, hyprctl kill
|
||||||
|
bind = $mainMod SHIFT, N, exec, swaync-client -t -sw
|
||||||
|
bind = $mainMod SHIFT, B, exec, pulse-browser --private-window
|
||||||
|
bind = $mainMod SHIFT, W, exec, menuwallpapers
|
||||||
|
|
||||||
|
# Move focus with mainMod + arrow keys
|
||||||
|
bind = $mainMod, left, movefocus, l
|
||||||
|
bind = $mainMod, right, movefocus, r
|
||||||
|
bind = $mainMod, up, movefocus, u
|
||||||
|
bind = $mainMod, down, movefocus, d
|
||||||
|
|
||||||
|
# Switch workspaces with mainMod + [1-8]
|
||||||
|
bind = $mainMod, 1, workspace, 1
|
||||||
|
bind = $mainMod, 2, workspace, 2
|
||||||
|
bind = $mainMod, 3, workspace, 3
|
||||||
|
bind = $mainMod, 4, workspace, 4
|
||||||
|
bind = $mainMod, 5, workspace, 5
|
||||||
|
bind = $mainMod, 6, workspace, 6
|
||||||
|
bind = $mainMod, 7, workspace, 7
|
||||||
|
bind = $mainMod, 8, workspace, 8
|
||||||
|
|
||||||
|
# Binding workspaces
|
||||||
|
workspace = DP-1, 1, default:true
|
||||||
|
workspace = DP-1, 2, default:true
|
||||||
|
workspace = DP-1, 3, default:true
|
||||||
|
workspace = DP-1, 4, default:true
|
||||||
|
workspace = DP-2, 5, default:true
|
||||||
|
workspace = DP-2, 6, default:true
|
||||||
|
workspace = DP-2, 7, default:true
|
||||||
|
workspace = DP-2, 8, default:true
|
||||||
|
|
||||||
|
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||||
|
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||||
|
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||||
|
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||||
|
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||||
|
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||||
|
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||||
|
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||||
|
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||||
|
|
||||||
|
# Scroll through existing workspaces with mainMod + scroll
|
||||||
|
bind = $mainMod, mouse_down, workspace, e+1
|
||||||
|
bind = $mainMod, mouse_up, workspace, e-1
|
||||||
|
|
||||||
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||||
|
bindm = $mainMod, mouse:272, movewindow
|
||||||
|
bindm = $mainMod, mouse:273, resizewindow
|
||||||
|
|
||||||
|
# Binding volume and caps osd
|
||||||
|
binde = $mainMod, F11, exec, swayosd --output-volume lower
|
||||||
|
binde = $mainMod, F12, exec, swayosd --output-volume raise
|
||||||
|
|
||||||
|
# Apps a really long time to open
|
||||||
|
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||||
Executable
+43
@@ -0,0 +1,43 @@
|
|||||||
|
font_family JetBrains Mono
|
||||||
|
bold_font JetBrains Mono Bold
|
||||||
|
italic_font JetBrains Mono Italic
|
||||||
|
|
||||||
|
font_size 11.0
|
||||||
|
|
||||||
|
enable_audio_bell no
|
||||||
|
window_border_width 0.0
|
||||||
|
window_margin_width 2
|
||||||
|
window_padding_width 3
|
||||||
|
confirm_os_window_close 0
|
||||||
|
|
||||||
|
tab_title_template {index}:{title}
|
||||||
|
tab_bar_min_tabs 2
|
||||||
|
tab_bar_edge top
|
||||||
|
tab_bar_style powerline
|
||||||
|
|
||||||
|
clear_all_shortcuts yes
|
||||||
|
kitty_mod ctrl
|
||||||
|
map kitty_mod+insert copy_to_clipboard
|
||||||
|
map shift+insert paste_from_clipboard
|
||||||
|
map kitty_mod+t new_tab
|
||||||
|
map kitty_mod+w close_tab
|
||||||
|
map alt+l next_tab
|
||||||
|
map kitty_mod+right next_tab
|
||||||
|
map alt+h previous_tab
|
||||||
|
map kitty_mod+left previous_tab
|
||||||
|
map kitty_mod+alt+t set_tab_title
|
||||||
|
map kitty_mod+g axis vertical
|
||||||
|
|
||||||
|
map alt+1 goto_tab 1
|
||||||
|
map alt+2 goto_tab 2
|
||||||
|
map alt+3 goto_tab 3
|
||||||
|
map alt+4 goto_tab 4
|
||||||
|
map alt+5 goto_tab 5
|
||||||
|
map alt+6 goto_tab 6
|
||||||
|
map alt+7 goto_tab 7
|
||||||
|
map alt+8 goto_tab 8
|
||||||
|
map alt+9 goto_tab 9
|
||||||
|
|
||||||
|
map kitty_mod+alt+r launch --type=tab ranger
|
||||||
|
|
||||||
|
include ./theme.conf
|
||||||
Executable
+29
@@ -0,0 +1,29 @@
|
|||||||
|
background #303030
|
||||||
|
foreground #abb2bf
|
||||||
|
selection_background #abb2bf
|
||||||
|
selection_foreground #282c34
|
||||||
|
url_color #565c64
|
||||||
|
cursor #abb2bf
|
||||||
|
active_border_color #545862
|
||||||
|
inactive_border_color #353b45
|
||||||
|
active_tab_background #e06c75
|
||||||
|
active_tab_foreground #abb2bf
|
||||||
|
inactive_tab_background #323232
|
||||||
|
inactive_tab_foreground #565c64
|
||||||
|
tab_bar_background #303030
|
||||||
|
color0 #282c34
|
||||||
|
color8 #282c34
|
||||||
|
color1 #e06c75
|
||||||
|
color9 #e06c75
|
||||||
|
color2 #98c379
|
||||||
|
color10 #98c379
|
||||||
|
color3 #e5c07b
|
||||||
|
color11 #e5c07b
|
||||||
|
color4 #81A1C1
|
||||||
|
color12 #81A1C1
|
||||||
|
color5 #c678dd
|
||||||
|
color13 #c678dd
|
||||||
|
color6 #56b6c2
|
||||||
|
color14 #56b6c2
|
||||||
|
color7 #c8ccd4
|
||||||
|
color15 #c8ccd4
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
set shell zsh
|
||||||
|
set shellopts '-eu'
|
||||||
|
set ifs "\n"
|
||||||
|
set cursorpreviewfmt "\033[7;2m"
|
||||||
|
cmd open &xdg-open $f
|
||||||
|
|
||||||
|
#Binding
|
||||||
|
map U !du -csh *
|
||||||
|
map a rename
|
||||||
|
map o open
|
||||||
|
map <f-6> :push a
|
||||||
|
map <f-7> :push %mkdir<space>
|
||||||
|
map <f-8> delete
|
||||||
|
|
||||||
|
map gh cd ~
|
||||||
|
map gg cd ..
|
||||||
|
map gr cd ~/Desktop
|
||||||
|
map gd cd ~/Documents
|
||||||
|
map gl cd ~/Games/Lutris
|
||||||
|
map gs cd ~/Games/Steam
|
||||||
|
|
||||||
|
map xc !gpg -c $f
|
||||||
|
map xd !gpg $f
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
# Config
|
||||||
|
set my_name = 'Ivanov Ivan'
|
||||||
|
set my_user = 'ivan@ivanov.ru'
|
||||||
|
set my_ms = 'mail.ivanov.ru'
|
||||||
|
source 'gpg -d ~/.config/mutt/password.gpg |'
|
||||||
|
|
||||||
|
# General
|
||||||
|
set header_cache = '~/.config/mutt/totmin.ru/cache/headers'
|
||||||
|
set message_cachedir = '~/.config/mutt/totmin.ru/cache/bodies'
|
||||||
|
|
||||||
|
# Receive options
|
||||||
|
set imap_check_subscribed
|
||||||
|
unset imap_passive
|
||||||
|
set imap_keepalive = 900
|
||||||
|
set mail_check = 1800
|
||||||
|
|
||||||
|
# Remote folder
|
||||||
|
set imap_user = $my_user
|
||||||
|
set imap_pass = $my_pass
|
||||||
|
set folder = 'imaps://'$my_ms':993'
|
||||||
|
set spoolfile = '+INBOX'
|
||||||
|
set postponed = '+Drafts'
|
||||||
|
set record = '+Sent'
|
||||||
|
set sort_aux = last-date-received
|
||||||
|
set sort = reverse-threads
|
||||||
|
set fast_reply = yes
|
||||||
|
set include = yes
|
||||||
|
set forward_quote = yes
|
||||||
|
|
||||||
|
# Send options
|
||||||
|
set ssl_starttls = yes
|
||||||
|
set ssl_force_tls = yes
|
||||||
|
set realname = $my_name
|
||||||
|
set from = $my_user
|
||||||
|
set smtp_url = 'smtps://'$my_user'@'$my_ms':587/'
|
||||||
|
set smtp_pass = $my_pass
|
||||||
|
|
||||||
|
# colors
|
||||||
|
color normal white default
|
||||||
|
color attachment brightyellow default
|
||||||
|
color hdrdefault red default
|
||||||
|
color indicator black red
|
||||||
|
color markers brightred default
|
||||||
|
color quoted green default
|
||||||
|
color signature cyan default
|
||||||
|
color status black blue
|
||||||
|
color tilde blue default
|
||||||
|
color tree blue default
|
||||||
|
|
||||||
|
color index red black ~D
|
||||||
|
color index magenta black ~T
|
||||||
@@ -0,0 +1,113 @@
|
|||||||
|
[sncli]
|
||||||
|
cfg_sn_username = myusername
|
||||||
|
cfg_sn_password = mysecretpass
|
||||||
|
cfg_db_path = /home/mat/.config/sncli/base
|
||||||
|
cfg_search_tags = yes
|
||||||
|
cfg_sort_mode = date
|
||||||
|
cfg_pinned_ontop = yes
|
||||||
|
cfg_tabstop = 4
|
||||||
|
cfg_status_bar = yes
|
||||||
|
cfg_default_markdown = yes
|
||||||
|
cfg_format_stftime = %d %B %Y
|
||||||
|
cfg_format_note_title = [%D] %F %-N %T
|
||||||
|
cfg_editor = vim +{line}
|
||||||
|
cfg_pager = less -c +{line} -N {fname}
|
||||||
|
cfg_diff = colordiff -bl
|
||||||
|
cfg_max_logs = 5
|
||||||
|
cfg_log_timeout = 5
|
||||||
|
cfg_log_reversed = yes
|
||||||
|
|
||||||
|
### KEYBINDING
|
||||||
|
kb_sort_date = d
|
||||||
|
kb_sort_alpha = a
|
||||||
|
kb_sort_tags = ctrl t
|
||||||
|
kb_help = h
|
||||||
|
kb_quit = q
|
||||||
|
kb_sync = S
|
||||||
|
kb_down = j
|
||||||
|
kb_up = k
|
||||||
|
kb_page_down = space
|
||||||
|
kb_page_up = b
|
||||||
|
kb_half_page_down = ctrl d
|
||||||
|
kb_half_page_up = ctrl u
|
||||||
|
kb_bottom = G
|
||||||
|
kb_top = g
|
||||||
|
kb_status = s
|
||||||
|
kb_create_note = C
|
||||||
|
kb_edit_note = e
|
||||||
|
kb_view_note = enter
|
||||||
|
kb_view_note_ext = meta enter
|
||||||
|
kb_view_note_json = O
|
||||||
|
kb_pipe_note = |
|
||||||
|
kb_view_log = l
|
||||||
|
kb_note_trash = T
|
||||||
|
kb_note_pin = p
|
||||||
|
kb_note_markdown = m
|
||||||
|
kb_note_tags = t
|
||||||
|
kb_search_gstyle = /
|
||||||
|
kb_search_regex = meta /
|
||||||
|
kb_search_prev_gstyle = ?
|
||||||
|
kb_search_prev_regex = meta ?
|
||||||
|
kb_search_next = n
|
||||||
|
kb_search_prev = N
|
||||||
|
kb_clear_search = A
|
||||||
|
kb_view_next_note = J
|
||||||
|
kb_view_prev_note = K
|
||||||
|
kb_tabstop2 = 2
|
||||||
|
kb_tabstop4 = 4
|
||||||
|
kb_tabstop8 = 8
|
||||||
|
kb_prev_version = <
|
||||||
|
kb_next_version = >
|
||||||
|
kb_diff_version = D
|
||||||
|
kb_restore_version = R
|
||||||
|
kb_latest_version = L
|
||||||
|
kb_select_version = #
|
||||||
|
kb_copy_note_text = y
|
||||||
|
|
||||||
|
### COLORS
|
||||||
|
clr_status_bar_fg = dark gray
|
||||||
|
clr_status_bar_bg = light gray
|
||||||
|
clr_user_input_bar_fg = white
|
||||||
|
clr_user_input_bar_bg = light red
|
||||||
|
clr_default_fg = default
|
||||||
|
clr_default_bg = default
|
||||||
|
clr_note_focus_fg = white
|
||||||
|
clr_note_focus_bg = light red
|
||||||
|
clr_note_title_day_fg = light red
|
||||||
|
clr_note_title_day_bg = default
|
||||||
|
clr_note_title_week_fg = light green
|
||||||
|
clr_note_title_week_bg = default
|
||||||
|
clr_note_title_month_fg = brown
|
||||||
|
clr_note_title_month_bg = default
|
||||||
|
clr_note_title_year_fg = light blue
|
||||||
|
clr_note_title_year_bg = default
|
||||||
|
clr_note_title_ancient_fg = light blue
|
||||||
|
clr_note_title_ancient_bg = default
|
||||||
|
clr_note_date_fg = dark blue
|
||||||
|
clr_note_date_bg = default
|
||||||
|
clr_note_flags_fg = dark magenta
|
||||||
|
clr_note_flags_bg = default
|
||||||
|
clr_note_tags_fg = dark red
|
||||||
|
clr_note_tags_bg = default
|
||||||
|
|
||||||
|
## PAGER
|
||||||
|
clr_note_content_fg = default
|
||||||
|
clr_note_content_bg = default
|
||||||
|
clr_note_content_focus_fg = white
|
||||||
|
clr_note_content_focus_bg = light red
|
||||||
|
clr_note_content_old_fg = yellow
|
||||||
|
clr_note_content_old_bg = dark gray
|
||||||
|
clr_note_content_old_focus_fg = white
|
||||||
|
clr_note_content_old_focus_bg = light red
|
||||||
|
clr_log_fg = dark gray
|
||||||
|
clr_log_bg = light gray
|
||||||
|
clr_help_focus_fg = white
|
||||||
|
clr_help_focus_bg = light red
|
||||||
|
clr_help_header_fg = dark blue
|
||||||
|
clr_help_header_bg = default
|
||||||
|
clr_help_config_fg = dark green
|
||||||
|
clr_help_config_bg = default
|
||||||
|
clr_help_value_fg = dark red
|
||||||
|
clr_help_value_bg = default
|
||||||
|
clr_help_descr_fg = default
|
||||||
|
clr_help_descr_bg = default
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
# Sample config file
|
||||||
|
|
||||||
|
# The theme colours can be an rgb string of the form "255, 255, 255" or a string that references the colours from your terminal theme: Reset, Black, Red, Green, Yellow, Blue, Magenta, Cyan, Gray, DarkGray, LightRed, LightGreen, LightYellow, LightBlue, LightMagenta, LightCyan, White.
|
||||||
|
theme:
|
||||||
|
active: LightRed # current playing song in list
|
||||||
|
banner: LightRed # the "spotify-tui" banner on launch
|
||||||
|
error_border: Red # error dialog border
|
||||||
|
error_text: LightRed # error message text (e.g. "Spotify API reported error 404")
|
||||||
|
hint: Yellow # hint text in errors
|
||||||
|
hovered: Red # hovered pane border
|
||||||
|
inactive: Gray # borders of inactive panes
|
||||||
|
playbar_background: Black # background of progress bar
|
||||||
|
playbar_progress: LightRed # filled-in part of the progress bar
|
||||||
|
playbar_progress_text: Red # song length and time played/left indicator in the progress bar
|
||||||
|
playbar_text: White # artist name in player pane
|
||||||
|
selected: LightRed # a) selected pane border, b) hovered item in list, & c) track title in player
|
||||||
|
text: "255, 255, 255" # text in panes
|
||||||
|
header: White # header text in panes (e.g. 'Title', 'Artist', etc.)
|
||||||
|
|
||||||
|
behavior:
|
||||||
|
seek_milliseconds: 5000
|
||||||
|
volume_increment: 10
|
||||||
|
# The lower the number the higher the "frames per second". You can decrease this number so that the audio visualisation is smoother but this can be expensive!
|
||||||
|
tick_rate_milliseconds: 7
|
||||||
|
# Enable text emphasis (typically italic/bold text styling). Disabling this might be important if the terminal config is otherwise restricted and rendering text escapes interferes with the UI.
|
||||||
|
enable_text_emphasis: false
|
||||||
|
# Controls whether to show a loading indicator in the top right of the UI whenever communicating with Spotify API
|
||||||
|
show_loading_indicator: true
|
||||||
|
# Disables the responsive layout that makes the search bar smaller on bigger
|
||||||
|
# screens and enforces a wide search bar
|
||||||
|
enforce_wide_search_bar: false
|
||||||
|
# Determines the text icon to display next to "liked" Spotify items, such as
|
||||||
|
# liked songs and albums, or followed artists. Can be any length string.
|
||||||
|
# These icons require a patched nerd font.
|
||||||
|
liked_icon: ♥
|
||||||
|
shuffle_icon: 🔀
|
||||||
|
repeat_track_icon: 🔂
|
||||||
|
repeat_context_icon: 🔁
|
||||||
|
playing_icon: ▶
|
||||||
|
paused_icon: ⏸
|
||||||
|
# Sets the window title to "spt - Spotify TUI" via ANSI escape code.
|
||||||
|
set_window_title: true
|
||||||
|
|
||||||
|
keybindings:
|
||||||
|
# Key stroke can be used if it only uses two keys:
|
||||||
|
# ctrl-q works,
|
||||||
|
# ctrl-alt-q doesn't.
|
||||||
|
back: "ctrl-q"
|
||||||
|
|
||||||
|
jump_to_album: "a"
|
||||||
|
|
||||||
|
# Shift modifiers use a capital letter (also applies with other modifier keys
|
||||||
|
# like ctrl-A)
|
||||||
|
jump_to_artist_album: "A"
|
||||||
|
|
||||||
|
manage_devices: "d"
|
||||||
|
decrease_volume: "-"
|
||||||
|
increase_volume: "="
|
||||||
|
toggle_playback: " "
|
||||||
|
seek_backwards: "<"
|
||||||
|
seek_forwards: ">"
|
||||||
|
next_track: "n"
|
||||||
|
previous_track: "p"
|
||||||
|
copy_song_url: "c"
|
||||||
|
copy_album_url: "C"
|
||||||
|
help: "?"
|
||||||
|
shuffle: "ctrl-s"
|
||||||
|
repeat: "r"
|
||||||
|
search: "/"
|
||||||
|
audio_analysis: "v"
|
||||||
|
jump_to_context: "o"
|
||||||
|
basic_view: "B"
|
||||||
|
add_item_to_queue: "z"
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
[global]
|
||||||
|
username = "myusername"
|
||||||
|
password = "mysecretpass"
|
||||||
|
backend = "pulseaudio"
|
||||||
|
device_name = "Rockethype"
|
||||||
|
bitrate = 320
|
||||||
|
cache_path = "/home/mat/.cache/spotifyd"
|
||||||
|
volume-normalisation = true
|
||||||
|
normalisation-pregain = 0
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
{
|
||||||
|
"$schema": "/etc/xdg/swaync/configSchema.json",
|
||||||
|
"positionX": "right",
|
||||||
|
"positionY": "top",
|
||||||
|
"layer": "top",
|
||||||
|
"cssPriority": "application",
|
||||||
|
"control-center-margin-top": 0,
|
||||||
|
"control-center-margin-bottom": 0,
|
||||||
|
"control-center-margin-right": 0,
|
||||||
|
"control-center-margin-left": 0,
|
||||||
|
"notification-icon-size": 48,
|
||||||
|
"notification-body-image-height": 100,
|
||||||
|
"notification-body-image-width": 200,
|
||||||
|
"timeout": 10,
|
||||||
|
"timeout-low": 5,
|
||||||
|
"timeout-critical": 0,
|
||||||
|
"fit-to-screen": true,
|
||||||
|
"control-center-width": 512,
|
||||||
|
"control-center-height": 600,
|
||||||
|
"notification-window-width": 500,
|
||||||
|
"keyboard-shortcuts": true,
|
||||||
|
"image-visibility": "when-available",
|
||||||
|
"transition-time": 200,
|
||||||
|
"hide-on-clear": true,
|
||||||
|
"hide-on-action": true,
|
||||||
|
"script-fail-notify": true,
|
||||||
|
"scripts": {
|
||||||
|
"example-script": {
|
||||||
|
"exec": "echo 'Do something...'",
|
||||||
|
"urgency": "Normal"
|
||||||
|
},
|
||||||
|
"example-action-script": {
|
||||||
|
"exec": "echo 'Do something actionable!'",
|
||||||
|
"urgency": "Normal",
|
||||||
|
"run-on": "action"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-visibility": {
|
||||||
|
"example-name": {
|
||||||
|
"state": "muted",
|
||||||
|
"urgency": "Low",
|
||||||
|
"app-name": "Spotify"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"widgets": [
|
||||||
|
"title",
|
||||||
|
"notifications"
|
||||||
|
],
|
||||||
|
"widget-config": {
|
||||||
|
"title": {
|
||||||
|
"text": "Control Center",
|
||||||
|
"clear-all-button": true,
|
||||||
|
"button-text": ""
|
||||||
|
},
|
||||||
|
"dnd": {
|
||||||
|
"text": "DND"
|
||||||
|
},
|
||||||
|
"label": {
|
||||||
|
"max-lines": 5,
|
||||||
|
"text": "Label Text"
|
||||||
|
},
|
||||||
|
"mpris": {
|
||||||
|
"image-size": 96,
|
||||||
|
"image-radius": 6
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,247 @@
|
|||||||
|
/*
|
||||||
|
* vim: ft=less
|
||||||
|
*/
|
||||||
|
|
||||||
|
@define-color cc-bg rgba(50, 50, 50, 1);
|
||||||
|
|
||||||
|
@define-color noti-border-color rgba(255, 255, 255, 0.15);
|
||||||
|
@define-color noti-bg rgb(48, 48, 48);
|
||||||
|
@define-color noti-bg-hover rgb(56, 56, 56);
|
||||||
|
@define-color noti-bg-focus rgba(224, 108, 117, 0.9);
|
||||||
|
@define-color noti-close-bg rgba(255, 255, 255, 0.1);
|
||||||
|
@define-color noti-close-bg-hover rgba(255, 255, 255, 0.15);
|
||||||
|
|
||||||
|
@define-color bg-selected rgb(0, 128, 255);
|
||||||
|
|
||||||
|
.notification-row {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row:focus,
|
||||||
|
.notification-row:hover {
|
||||||
|
background: @noti-bg-focus;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification {
|
||||||
|
border-radius: 6px;
|
||||||
|
margin: 16px 16px;
|
||||||
|
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), 0 1px 3px 1px rgba(0, 0, 0, 0.7),
|
||||||
|
0 2px 6px 2px rgba(0, 0, 0, 0.3);
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Uncomment to enable specific urgency colors
|
||||||
|
.low {
|
||||||
|
background: yellow;
|
||||||
|
padding: 6px;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.normal {
|
||||||
|
background: green;
|
||||||
|
padding: 6px;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.critical {
|
||||||
|
background: red;
|
||||||
|
padding: 6px;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
.notification-content {
|
||||||
|
background: transparent;
|
||||||
|
padding: 6px;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-button {
|
||||||
|
background: @noti-close-bg;
|
||||||
|
color: white;
|
||||||
|
text-shadow: none;
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 100%;
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-right: 16px;
|
||||||
|
box-shadow: none;
|
||||||
|
border: none;
|
||||||
|
min-width: 24px;
|
||||||
|
min-height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-button:hover {
|
||||||
|
box-shadow: none;
|
||||||
|
background: @noti-close-bg-hover;
|
||||||
|
transition: all 0.15s ease-in-out;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-default-action,
|
||||||
|
.notification-action {
|
||||||
|
padding: 4px;
|
||||||
|
margin: 0;
|
||||||
|
box-shadow: none;
|
||||||
|
background: @noti-bg;
|
||||||
|
border: 1px solid @noti-border-color;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-default-action:hover,
|
||||||
|
.notification-action:hover {
|
||||||
|
-gtk-icon-effect: none;
|
||||||
|
background: @noti-bg-hover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-default-action {
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* When alternative actions are visible */
|
||||||
|
.notification-default-action:not(:only-child) {
|
||||||
|
border-bottom-left-radius: 6px;
|
||||||
|
border-bottom-right-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-action {
|
||||||
|
border-radius: 0px;
|
||||||
|
border-top: none;
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* add bottom border radius to eliminate clipping */
|
||||||
|
.notification-action:first-child {
|
||||||
|
border-bottom-left-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-action:last-child {
|
||||||
|
border-bottom-right-radius: 6px;
|
||||||
|
border-right: 1px solid @noti-border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image {
|
||||||
|
}
|
||||||
|
|
||||||
|
.body-image {
|
||||||
|
margin-top: 6px;
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.summary {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
background: transparent;
|
||||||
|
color: white;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.time {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
background: transparent;
|
||||||
|
color: white;
|
||||||
|
text-shadow: none;
|
||||||
|
margin-right: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.body {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: normal;
|
||||||
|
background: transparent;
|
||||||
|
color: white;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* The "Notifications" and "Do Not Disturb" text widget */
|
||||||
|
.top-action-title {
|
||||||
|
color: white;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center {
|
||||||
|
background: @cc-bg;
|
||||||
|
margin-right: 12.5px;
|
||||||
|
margin-top: 12.5px;
|
||||||
|
margin-bottom: 12.5px;
|
||||||
|
border-radius: 6px;
|
||||||
|
border: 3px solid rgb(40, 44, 52);
|
||||||
|
border-color: #282c34;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center-list {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Window behind control center and on all other monitors */
|
||||||
|
.blank-window {
|
||||||
|
background: alpha(black, 0.25);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*** Widgets ***/
|
||||||
|
|
||||||
|
/* Title widget */
|
||||||
|
.widget-title {
|
||||||
|
margin: 8px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
.widget-title > button {
|
||||||
|
font-size: initial;
|
||||||
|
color: white;
|
||||||
|
text-shadow: none;
|
||||||
|
background: @noti-bg;
|
||||||
|
border: 1px solid @noti-border-color;
|
||||||
|
box-shadow: none;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
.widget-title > button:hover {
|
||||||
|
background: @noti-bg-hover;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* DND widget */
|
||||||
|
.widget-dnd {
|
||||||
|
margin: 8px;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
.widget-dnd > switch {
|
||||||
|
font-size: initial;
|
||||||
|
border-radius: 12px;
|
||||||
|
background: @noti-bg;
|
||||||
|
border: 1px solid @noti-border-color;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.widget-dnd > switch:checked {
|
||||||
|
background: @bg-selected;
|
||||||
|
}
|
||||||
|
.widget-dnd > switch slider {
|
||||||
|
background: @noti-bg-hover;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Label widget */
|
||||||
|
.widget-label {
|
||||||
|
margin: 8px;
|
||||||
|
}
|
||||||
|
.widget-label > label {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mpris widget */
|
||||||
|
.widget-mpris {
|
||||||
|
/* The parent to all players */
|
||||||
|
}
|
||||||
|
.widget-mpris-player {
|
||||||
|
padding: 8px;
|
||||||
|
margin: 8px;
|
||||||
|
}
|
||||||
|
.widget-mpris-title {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
.widget-mpris-subtitle {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
@@ -0,0 +1,596 @@
|
|||||||
|
music_dir = ["/home/mat/Music", "/home/mat/Downloads/Vinyl-Rip"]
|
||||||
|
player_port = 50101
|
||||||
|
player_loop_mode = "Playlist"
|
||||||
|
player_volume = 90
|
||||||
|
player_speed = 10
|
||||||
|
player_gapless = true
|
||||||
|
podcast_simultanious_download = 3
|
||||||
|
podcast_max_retries = 3
|
||||||
|
podcast_dir = "/home/mat/Music/podcast"
|
||||||
|
player_seek_step = "Auto"
|
||||||
|
player_remember_last_played_position = "Auto"
|
||||||
|
enable_exit_confirmation = true
|
||||||
|
playlist_display_symbol = true
|
||||||
|
playlist_select_random_track_quantity = 20
|
||||||
|
playlist_select_random_album_quantity = 5
|
||||||
|
theme_selected = "Rockethype"
|
||||||
|
kill_daemon_when_quit = true
|
||||||
|
player_use_mpris = true
|
||||||
|
player_use_discord = true
|
||||||
|
|
||||||
|
[album_photo_xywh]
|
||||||
|
x_between_1_100 = 99
|
||||||
|
y_between_1_100 = 77
|
||||||
|
width_between_1_100 = 20
|
||||||
|
align = "BottomLeft"
|
||||||
|
|
||||||
|
[style_color_symbol]
|
||||||
|
library_foreground = "Foreground"
|
||||||
|
library_background = "Reset"
|
||||||
|
library_border = "Blue"
|
||||||
|
library_highlight = "Red"
|
||||||
|
library_highlight_symbol = "🦄"
|
||||||
|
playlist_foreground = "Foreground"
|
||||||
|
playlist_background = "Reset"
|
||||||
|
playlist_border = "Blue"
|
||||||
|
playlist_highlight = "Red"
|
||||||
|
playlist_highlight_symbol = "🚀"
|
||||||
|
progress_foreground = "Red"
|
||||||
|
progress_background = "Reset"
|
||||||
|
progress_border = "Blue"
|
||||||
|
lyric_foreground = "Foreground"
|
||||||
|
lyric_background = "Reset"
|
||||||
|
lyric_border = "Blue"
|
||||||
|
|
||||||
|
[style_color_symbol.alacritty_theme]
|
||||||
|
path = "/home/mat/.config/termusic/themes/Rockethype.yml"
|
||||||
|
name = "empty name"
|
||||||
|
author = "empty author"
|
||||||
|
background = "#303030"
|
||||||
|
foreground = "#abb2bf"
|
||||||
|
cursor = "#FFFFFF"
|
||||||
|
text = "#FFFFFF"
|
||||||
|
black = "#282c34"
|
||||||
|
red = "#e06c75"
|
||||||
|
green = "#98c379"
|
||||||
|
yellow = "#e5c07b"
|
||||||
|
blue = "#81A1C1"
|
||||||
|
magenta = "#c678dd"
|
||||||
|
cyan = "#56b6c2"
|
||||||
|
white = "#c8ccd4"
|
||||||
|
light_black = "#7f7f7f"
|
||||||
|
light_red = "#ff0000"
|
||||||
|
light_green = "#00ff00"
|
||||||
|
light_yellow = "#ffff00"
|
||||||
|
light_blue = "#5c5cff"
|
||||||
|
light_magenta = "#ff00ff"
|
||||||
|
light_cyan = "#00ffff"
|
||||||
|
light_white = "#ffffff"
|
||||||
|
|
||||||
|
[keys.global_esc.code]
|
||||||
|
type = "Esc"
|
||||||
|
|
||||||
|
[keys.global_esc.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.global_quit.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "q"
|
||||||
|
|
||||||
|
[keys.global_quit.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.global_left.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "h"
|
||||||
|
|
||||||
|
[keys.global_left.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.global_down.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "j"
|
||||||
|
|
||||||
|
[keys.global_down.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.global_up.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "k"
|
||||||
|
|
||||||
|
[keys.global_up.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.global_right.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "l"
|
||||||
|
|
||||||
|
[keys.global_right.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.global_goto_top.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "g"
|
||||||
|
|
||||||
|
[keys.global_goto_top.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.global_goto_bottom.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "G"
|
||||||
|
|
||||||
|
[keys.global_goto_bottom.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
|
|
||||||
|
[keys.global_player_toggle_pause.code]
|
||||||
|
type = "Char"
|
||||||
|
args = " "
|
||||||
|
|
||||||
|
[keys.global_player_toggle_pause.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.global_player_next.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "n"
|
||||||
|
|
||||||
|
[keys.global_player_next.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.global_player_previous.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "N"
|
||||||
|
|
||||||
|
[keys.global_player_previous.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
|
|
||||||
|
[keys.global_player_volume_plus_1.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "+"
|
||||||
|
|
||||||
|
[keys.global_player_volume_plus_1.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
|
|
||||||
|
[keys.global_player_volume_plus_2.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "="
|
||||||
|
|
||||||
|
[keys.global_player_volume_plus_2.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.global_player_volume_minus_1.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "_"
|
||||||
|
|
||||||
|
[keys.global_player_volume_minus_1.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
|
|
||||||
|
[keys.global_player_volume_minus_2.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "-"
|
||||||
|
|
||||||
|
[keys.global_player_volume_minus_2.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.global_help.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "h"
|
||||||
|
|
||||||
|
[keys.global_help.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 2
|
||||||
|
|
||||||
|
[keys.global_player_seek_forward.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "f"
|
||||||
|
|
||||||
|
[keys.global_player_seek_forward.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.global_player_seek_backward.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "b"
|
||||||
|
|
||||||
|
[keys.global_player_seek_backward.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.global_lyric_adjust_forward.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "F"
|
||||||
|
|
||||||
|
[keys.global_lyric_adjust_forward.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
|
|
||||||
|
[keys.global_lyric_adjust_backward.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "B"
|
||||||
|
|
||||||
|
[keys.global_lyric_adjust_backward.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
|
|
||||||
|
[keys.global_player_speed_up.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "f"
|
||||||
|
|
||||||
|
[keys.global_player_speed_up.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 2
|
||||||
|
|
||||||
|
[keys.global_player_speed_down.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "b"
|
||||||
|
|
||||||
|
[keys.global_player_speed_down.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 2
|
||||||
|
|
||||||
|
[keys.global_lyric_cycle.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "T"
|
||||||
|
|
||||||
|
[keys.global_lyric_cycle.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
|
|
||||||
|
[keys.global_layout_treeview.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "1"
|
||||||
|
|
||||||
|
[keys.global_layout_treeview.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.global_layout_database.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "2"
|
||||||
|
|
||||||
|
[keys.global_layout_database.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.global_player_toggle_gapless.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "g"
|
||||||
|
|
||||||
|
[keys.global_player_toggle_gapless.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 2
|
||||||
|
|
||||||
|
[keys.global_config_open.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "C"
|
||||||
|
|
||||||
|
[keys.global_config_open.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
|
|
||||||
|
[keys.global_save_playlist.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "s"
|
||||||
|
|
||||||
|
[keys.global_save_playlist.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 2
|
||||||
|
|
||||||
|
[keys.global_layout_podcast.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "3"
|
||||||
|
|
||||||
|
[keys.global_layout_podcast.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.global_xywh_move_left.code]
|
||||||
|
type = "Left"
|
||||||
|
|
||||||
|
[keys.global_xywh_move_left.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 3
|
||||||
|
|
||||||
|
[keys.global_xywh_move_right.code]
|
||||||
|
type = "Right"
|
||||||
|
|
||||||
|
[keys.global_xywh_move_right.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 3
|
||||||
|
|
||||||
|
[keys.global_xywh_move_up.code]
|
||||||
|
type = "Up"
|
||||||
|
|
||||||
|
[keys.global_xywh_move_up.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 3
|
||||||
|
|
||||||
|
[keys.global_xywh_move_down.code]
|
||||||
|
type = "Down"
|
||||||
|
|
||||||
|
[keys.global_xywh_move_down.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 3
|
||||||
|
|
||||||
|
[keys.global_xywh_zoom_in.code]
|
||||||
|
type = "PageUp"
|
||||||
|
|
||||||
|
[keys.global_xywh_zoom_in.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 3
|
||||||
|
|
||||||
|
[keys.global_xywh_zoom_out.code]
|
||||||
|
type = "PageDown"
|
||||||
|
|
||||||
|
[keys.global_xywh_zoom_out.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 3
|
||||||
|
|
||||||
|
[keys.global_xywh_hide.code]
|
||||||
|
type = "End"
|
||||||
|
|
||||||
|
[keys.global_xywh_hide.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 3
|
||||||
|
|
||||||
|
[keys.library_load_dir.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "L"
|
||||||
|
|
||||||
|
[keys.library_load_dir.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
|
|
||||||
|
[keys.library_delete.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "d"
|
||||||
|
|
||||||
|
[keys.library_delete.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.library_yank.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "y"
|
||||||
|
|
||||||
|
[keys.library_yank.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.library_paste.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "p"
|
||||||
|
|
||||||
|
[keys.library_paste.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.library_search.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "/"
|
||||||
|
|
||||||
|
[keys.library_search.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.library_search_youtube.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "s"
|
||||||
|
|
||||||
|
[keys.library_search_youtube.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.library_tag_editor_open.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "t"
|
||||||
|
|
||||||
|
[keys.library_tag_editor_open.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.library_switch_root.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "o"
|
||||||
|
|
||||||
|
[keys.library_switch_root.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.library_add_root.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "a"
|
||||||
|
|
||||||
|
[keys.library_add_root.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.library_remove_root.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "A"
|
||||||
|
|
||||||
|
[keys.library_remove_root.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
|
|
||||||
|
[keys.playlist_delete.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "d"
|
||||||
|
|
||||||
|
[keys.playlist_delete.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.playlist_delete_all.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "D"
|
||||||
|
|
||||||
|
[keys.playlist_delete_all.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
|
|
||||||
|
[keys.playlist_shuffle.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "r"
|
||||||
|
|
||||||
|
[keys.playlist_shuffle.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.playlist_mode_cycle.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "m"
|
||||||
|
|
||||||
|
[keys.playlist_mode_cycle.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.playlist_play_selected.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "l"
|
||||||
|
|
||||||
|
[keys.playlist_play_selected.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.playlist_search.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "/"
|
||||||
|
|
||||||
|
[keys.playlist_search.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.playlist_swap_down.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "J"
|
||||||
|
|
||||||
|
[keys.playlist_swap_down.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
|
|
||||||
|
[keys.playlist_swap_up.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "K"
|
||||||
|
|
||||||
|
[keys.playlist_swap_up.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
|
|
||||||
|
[keys.playlist_cmus_lqueue.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "S"
|
||||||
|
|
||||||
|
[keys.playlist_cmus_lqueue.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
|
|
||||||
|
[keys.playlist_cmus_tqueue.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "s"
|
||||||
|
|
||||||
|
[keys.playlist_cmus_tqueue.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.database_add_all.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "L"
|
||||||
|
|
||||||
|
[keys.database_add_all.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
|
|
||||||
|
[keys.config_save.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "s"
|
||||||
|
|
||||||
|
[keys.config_save.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 2
|
||||||
|
|
||||||
|
[keys.podcast_mark_played.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "m"
|
||||||
|
|
||||||
|
[keys.podcast_mark_played.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.podcast_mark_all_played.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "M"
|
||||||
|
|
||||||
|
[keys.podcast_mark_all_played.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
|
|
||||||
|
[keys.podcast_episode_download.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "d"
|
||||||
|
|
||||||
|
[keys.podcast_episode_download.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.podcast_episode_delete_file.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "x"
|
||||||
|
|
||||||
|
[keys.podcast_episode_delete_file.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.podcast_delete_feed.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "d"
|
||||||
|
|
||||||
|
[keys.podcast_delete_feed.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.podcast_delete_all_feeds.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "D"
|
||||||
|
|
||||||
|
[keys.podcast_delete_all_feeds.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
|
|
||||||
|
[keys.podcast_search_add_feed.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "s"
|
||||||
|
|
||||||
|
[keys.podcast_search_add_feed.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.podcast_refresh_feed.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "r"
|
||||||
|
|
||||||
|
[keys.podcast_refresh_feed.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 0
|
||||||
|
|
||||||
|
[keys.podcast_refresh_all_feeds.code]
|
||||||
|
type = "Char"
|
||||||
|
args = "R"
|
||||||
|
|
||||||
|
[keys.podcast_refresh_all_feeds.modifier]
|
||||||
|
type = "KeyModifiers"
|
||||||
|
bits = 1
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# XTerm's default colors
|
||||||
|
colors:
|
||||||
|
# Default colors
|
||||||
|
primary:
|
||||||
|
background: '#303030'
|
||||||
|
foreground: '#abb2bf'
|
||||||
|
# Normal colors
|
||||||
|
normal:
|
||||||
|
black: '#282c34'
|
||||||
|
red: '#e06c75'
|
||||||
|
green: '#98c379'
|
||||||
|
yellow: '#e5c07b'
|
||||||
|
blue: '#81A1C1'
|
||||||
|
magenta: '#c678dd'
|
||||||
|
cyan: '#56b6c2'
|
||||||
|
white: '#c8ccd4'
|
||||||
|
|
||||||
|
# Bright colors
|
||||||
|
bright:
|
||||||
|
black: '#7f7f7f'
|
||||||
|
red: '#ff0000'
|
||||||
|
green: '#00ff00'
|
||||||
|
yellow: '#ffff00'
|
||||||
|
blue: '#5c5cff'
|
||||||
|
magenta: '#ff00ff'
|
||||||
|
cyan: '#00ffff'
|
||||||
|
white: '#ffffff'
|
||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
##CPU loading
|
||||||
|
CPULOAD=$(top -bn1 | sed -n '/Cpu/p' | awk '{print $2}' | sed 's/..,//')
|
||||||
|
|
||||||
|
##RAM usege
|
||||||
|
RAMLOAD=$(free | grep Mem | awk '{print $3/$2 * 100.0}' | cut -d. -f1)
|
||||||
|
|
||||||
|
echo \
|
||||||
|
"| $CPULOAD% |" \
|
||||||
|
" $RAMLOAD% "
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
# tmux cozy config
|
||||||
|
set -g mouse on
|
||||||
|
|
||||||
|
# Set the default terminal mode to 256color mode
|
||||||
|
set -g default-terminal "screen-256color"
|
||||||
|
set -g status-style fg=black,bg=blue
|
||||||
|
|
||||||
|
# Start windows and panes at 1, not 0
|
||||||
|
set -g base-index 1
|
||||||
|
set -g pane-base-index 1
|
||||||
|
set-window-option -g pane-base-index 1
|
||||||
|
set-option -g renumber-windows on
|
||||||
|
|
||||||
|
set -g @plugin 'tmux-plugins/tpm'
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||||
|
set -g @plugin 'christoomey/vim-tmux-navigator'
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||||
|
set -g @plugin 'thewtex/tmux-mem-cpu-load'
|
||||||
|
|
||||||
|
run '~/.tmux/plugins/tpm/tpm'
|
||||||
|
|
||||||
|
# set vi-mode
|
||||||
|
set-window-option -g mode-keys vi
|
||||||
|
# keybindings
|
||||||
|
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||||
|
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
|
||||||
|
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
|
||||||
|
|
||||||
|
unbind C-b
|
||||||
|
set -g prefix C-Space
|
||||||
|
bind C-Space send-prefix
|
||||||
|
bind '"' split-window -v -c "#{pane_current_path}"
|
||||||
|
bind % split-window -h -c "#{pane_current_path}"
|
||||||
|
|
||||||
|
set -g status-interval 1
|
||||||
|
set-option -g status-left "[ #S]"
|
||||||
|
set-option -g status-right "#(~/.config/tmux/statusbar)"
|
||||||
|
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
background="#303030"
|
||||||
|
text="#abb2bf"
|
||||||
|
subtle="#abb2bf"
|
||||||
|
warning-text="#d7005f"
|
||||||
|
text-special-one="#81A1C1"
|
||||||
|
text-special-two="#c678dd"
|
||||||
|
top-bar-background="#81A1C1"
|
||||||
|
top-bar-text="#ffffff"
|
||||||
|
status-bar-background="#81A1C1"
|
||||||
|
status-bar-text="#abb2bf"
|
||||||
|
status-bar-view-background="#e06c75"
|
||||||
|
status-bar-view-text="#abb2bf"
|
||||||
|
list-selected-background="#e06c75"
|
||||||
|
list-selected-text="#ffffff"
|
||||||
|
command-text="#abb2bf"
|
||||||
|
list-selected-inactive-background="#6d6d6d"
|
||||||
|
list-selected-inactive-text="#ffffff"
|
||||||
|
controls-text="#abb2bf"
|
||||||
|
controls-highlight="#98c379"
|
||||||
|
autocomplete-background="#e06c75"
|
||||||
|
autocomplete-text="#abb2bf"
|
||||||
|
autocomplete-selected-background="#4271ae"
|
||||||
|
autocomplete-selected-text="#ffffff"
|
||||||
|
button-color-one="#e06c75"
|
||||||
|
button-color-two="#fafafa"
|
||||||
|
timeline-name-background="#e5c07b"
|
||||||
|
timeline-name-text="#000000"
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
set encoding=utf-8
|
||||||
|
syntax on
|
||||||
|
set t_Co=256
|
||||||
|
set clipboard=unnamed
|
||||||
|
set noswapfile
|
||||||
|
|
||||||
|
inoremap jk <esc>
|
||||||
|
|
||||||
|
noremap <Up> <Nop>
|
||||||
|
noremap <Down> <Nop>
|
||||||
|
noremap <Left> <Nop>
|
||||||
|
noremap <Right> <Nop>
|
||||||
|
|
||||||
Executable
+150
@@ -0,0 +1,150 @@
|
|||||||
|
{
|
||||||
|
"position": "top",
|
||||||
|
"layer": "top",
|
||||||
|
"modules-left": [
|
||||||
|
"custom/launch",
|
||||||
|
"cpu",
|
||||||
|
"memory",
|
||||||
|
"custom/tempcpu",
|
||||||
|
"custom/tempgpu"
|
||||||
|
],
|
||||||
|
"modules-center": ["hyprland/workspaces"],
|
||||||
|
"modules-right": [
|
||||||
|
"tray",
|
||||||
|
"custom/wgstatus",
|
||||||
|
"hyprland/language",
|
||||||
|
"pulseaudio",
|
||||||
|
"clock",
|
||||||
|
"custom/notify",
|
||||||
|
"custom/off"
|
||||||
|
],
|
||||||
|
"custom/launch": {
|
||||||
|
"format": " ",
|
||||||
|
"on-click": "sleep 0.1 && menurun",
|
||||||
|
"tooltip": false,
|
||||||
|
"escape": true
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/tempcpu": {
|
||||||
|
"interval": 3,
|
||||||
|
"exec": "~/.config/waybar/scripts/lstempcpu",
|
||||||
|
"format": " {}°C",
|
||||||
|
"tooltip": true,
|
||||||
|
"return-type": "json"
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/tempgpu": {
|
||||||
|
"interval": 3,
|
||||||
|
"exec": "~/.config/waybar/scripts/lstempgpu",
|
||||||
|
"format": "<span size='large'></span> {}°C",
|
||||||
|
"tooltip": false,
|
||||||
|
"return-type": "json"
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"disable-scroll": true,
|
||||||
|
"format": " {icon} ",
|
||||||
|
"on-click": "activate",
|
||||||
|
"all-outputs": false,
|
||||||
|
"sort-by-number": true,
|
||||||
|
"persistent_workspaces": {
|
||||||
|
"1": [],
|
||||||
|
"2": [],
|
||||||
|
"3": [],
|
||||||
|
"4": [],
|
||||||
|
"5": [],
|
||||||
|
"6": [],
|
||||||
|
"7": [],
|
||||||
|
"8": []
|
||||||
|
},
|
||||||
|
"format-icons": {
|
||||||
|
"1": " ",
|
||||||
|
"2": " ",
|
||||||
|
"3": "<span size='large'> </span>",
|
||||||
|
"4": " ",
|
||||||
|
"5": "<span size='large'> </span>",
|
||||||
|
"6": "<span size='large'> </span>",
|
||||||
|
"7": " ",
|
||||||
|
"8": "<span size='large'> </span>",
|
||||||
|
"urgent": " ",
|
||||||
|
"focused": " ",
|
||||||
|
"default": " "
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"tray": {
|
||||||
|
"icon-size": 16,
|
||||||
|
"spacing": 10,
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/wgstatus": {
|
||||||
|
"interval": 1,
|
||||||
|
"exec": "~/.config/waybar/scripts/wgstatus",
|
||||||
|
"format": " {} ",
|
||||||
|
"tooltip": false,
|
||||||
|
"on-click": "sleep 0.1 && ~/.config/waybar/scripts/wgstatus -toggle"
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/language": {
|
||||||
|
"format": " {} ",
|
||||||
|
"format-en": "Eng",
|
||||||
|
"format-ru": "Rus",
|
||||||
|
"on-click": "sleep 0.1 && hyprctl switchxkblayout compx-2.4g-wireless-receiver next",
|
||||||
|
},
|
||||||
|
|
||||||
|
"pulseaudio": {
|
||||||
|
"scroll-step": 5,
|
||||||
|
"format": "{icon} {volume}",
|
||||||
|
"format-bluetooth": "{icon} {volume}",
|
||||||
|
"format-bluetooth-muted": " ",
|
||||||
|
"format-muted": " ",
|
||||||
|
"format-icons": {
|
||||||
|
"default": ["", "", " "]
|
||||||
|
},
|
||||||
|
"on-click": "sleep 0.1 && pavucontrol &",
|
||||||
|
"on-click-middle": "sleep 0.1 && loopback_toggle",
|
||||||
|
"on-scroll-up": "swayosd --output-volume raise",
|
||||||
|
"on-scroll-down": "swayosd --output-volume lower",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"cpu": {
|
||||||
|
"format": "<span font_family='Material Icons' size='large'></span> {usage}%",
|
||||||
|
"tooltip": true,
|
||||||
|
"tooltip-format": "{tooltip}"
|
||||||
|
},
|
||||||
|
|
||||||
|
"memory": {
|
||||||
|
"interval": 3,
|
||||||
|
"format": "<span font_family='Material Icons' size='large'></span> {}%",
|
||||||
|
"max-length": 6,
|
||||||
|
"tooltip": true,
|
||||||
|
"tooltip-format": "{tooltip}"
|
||||||
|
},
|
||||||
|
|
||||||
|
"clock": {
|
||||||
|
"interval": 1,
|
||||||
|
"format": "<span font_family='Material Icons' size='large'></span> {:%I:%M %p}",
|
||||||
|
"format-alt": " {:%b %d, %G}",
|
||||||
|
"tooltip-format": "<tt><small>{calendar}</small></tt>",
|
||||||
|
"calendar": {
|
||||||
|
"mode" : "month",
|
||||||
|
"mode-mon-col" : 3,
|
||||||
|
"format": {
|
||||||
|
"months": "<span color='#e5c07b'><b>{}</b></span>",
|
||||||
|
"days": "<span color='#e5c07b'><b>{}</b></span>",
|
||||||
|
"weekdays": "<span color='#56b6c2'><b>{}</b></span>",
|
||||||
|
"today": "<span color='#e06c75'><b><u>{}</u></b></span>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/off": {
|
||||||
|
"format": " ",
|
||||||
|
"on-click": "sleep 0.1 && menupower",
|
||||||
|
"tooltip": false,
|
||||||
|
"escape": true
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
CPUTEMP=$(cat /sys/class/hwmon/hwmon3/temp1_input)
|
||||||
|
CRITEMP=70
|
||||||
|
let "REZ=$CPUTEMP / 1000"
|
||||||
|
if [ $REZ -ge $CRITEMP ]; then
|
||||||
|
JSON_FMT='{"text":"%s","class":"%s","tooltip": "cpu"}\n'
|
||||||
|
printf "$JSON_FMT" "$REZ" "crit"
|
||||||
|
else
|
||||||
|
JSON_FMT='{"text":"%s","tooltip": "cpu"}\n'
|
||||||
|
printf "$JSON_FMT" "$REZ"
|
||||||
|
fi
|
||||||
|
|
||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
GPUTEMP=$(cat /sys/class/hwmon/hwmon2/temp2_input)
|
||||||
|
CRITEMP=80
|
||||||
|
let "REZ=$GPUTEMP / 1000"
|
||||||
|
if [ $REZ -ge $CRITEMP ]; then
|
||||||
|
JSON_FMT='{"text":"%s","class":"%s","tooltip":"gpu"}\n'
|
||||||
|
printf "$JSON_FMT" "$REZ" "crit"
|
||||||
|
else
|
||||||
|
JSON_FMT='{"text":"%s","tooltip":"gpu"}\n'
|
||||||
|
printf "$JSON_FMT" "$REZ"
|
||||||
|
fi
|
||||||
|
|
||||||
Executable
+25
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
WGIFACE=kz.totmin.ru
|
||||||
|
|
||||||
|
WGON(){
|
||||||
|
echo "VPN"
|
||||||
|
WGS='true'
|
||||||
|
}
|
||||||
|
|
||||||
|
WGOFF(){
|
||||||
|
# echo "Off"
|
||||||
|
WGS='false'
|
||||||
|
}
|
||||||
|
|
||||||
|
ifconfig $WGIFACE &>/dev/null && WGON ||WGOFF
|
||||||
|
|
||||||
|
if [ "$1" = '-toggle' ]; then
|
||||||
|
if [ "$WGS" = 'true' ]; then
|
||||||
|
sudo wg-quick down $WGIFACE &>/dev/null
|
||||||
|
else
|
||||||
|
sudo wg-quick up $WGIFACE &>/dev/null
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
Executable
+228
@@ -0,0 +1,228 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
Color Pallete
|
||||||
|
|
||||||
|
foreground: '#abb2bf'
|
||||||
|
background: '#303030'
|
||||||
|
alt-background: '#282c34'
|
||||||
|
alt-foreground: '#1f2227'
|
||||||
|
|
||||||
|
black: '#282c34'
|
||||||
|
red: '#e06c75'
|
||||||
|
green: '#98c379'
|
||||||
|
yellow: '#e5c07b'
|
||||||
|
blue: '#81A1C1'
|
||||||
|
magenta: '#c678dd'
|
||||||
|
cyan: '#56b6c2'
|
||||||
|
white: '#c8ccd4'
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
* {
|
||||||
|
border: 0px solid rgba(40, 44, 52, 0);
|
||||||
|
border-radius: 6px;
|
||||||
|
font-family: Iosevka Nerd Font, Font Awesome,Material Icons, Arial, sans-serif;
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 13px;
|
||||||
|
min-height: 18px;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip {
|
||||||
|
background: #303030;
|
||||||
|
font-family: Iosevka Nerd Font;
|
||||||
|
border: 1px solid rgba(100, 114, 125, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip label {
|
||||||
|
color: #c8ccd4;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background-color: #303030;
|
||||||
|
background: transparent;
|
||||||
|
color: #303030;
|
||||||
|
transition-property: background-color;
|
||||||
|
transition-duration: 0.5s;
|
||||||
|
border-radius: 6px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
window > box {
|
||||||
|
margin-left: 12.5px;
|
||||||
|
margin-right: 12.5px;
|
||||||
|
margin-top: 12.5px;
|
||||||
|
background: #303030;
|
||||||
|
color: #c8ccd4;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar.hidden {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
label:focus {
|
||||||
|
background-color: #282c34;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes blink {
|
||||||
|
to {
|
||||||
|
background-color: #c8ccd4;
|
||||||
|
color: #282c34;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#disk,
|
||||||
|
#backlight,
|
||||||
|
#network,
|
||||||
|
#pulseaudio,
|
||||||
|
#workspaces,
|
||||||
|
#clock,
|
||||||
|
#tray,
|
||||||
|
#mode,
|
||||||
|
#idle_inhibitor,
|
||||||
|
#mpd {
|
||||||
|
padding: 0 10px;
|
||||||
|
margin: 4px 4px 4px 4px;
|
||||||
|
color: #1f2227;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-launch {
|
||||||
|
margin-right: 10px;
|
||||||
|
margin-left: 4px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
margin-top: 4px;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
font-size: 17px;
|
||||||
|
background-color: #81a1c1;
|
||||||
|
color: #1f2227;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-tempcpu {
|
||||||
|
color: #81A1C1;
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-tempcpu.crit {
|
||||||
|
color: #e06c75;
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-tempgpu {
|
||||||
|
color: #81A1C1;
|
||||||
|
margin-left: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-tempgpu.crit {
|
||||||
|
color: #e06c75;
|
||||||
|
margin-left: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 5px 5px;
|
||||||
|
background-color: transparent;
|
||||||
|
border-radius: 6px;
|
||||||
|
margin-left: 1px;
|
||||||
|
color: #abb2bf;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
background-color: transparent;
|
||||||
|
color: #c678dd;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
background-color: transparent;
|
||||||
|
color: #e06c75;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
background-color: transparent;
|
||||||
|
color: #e06c75;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-spotify {
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
margin-top: 4px;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
font-size: 17px;
|
||||||
|
font-weight: 500;
|
||||||
|
background-color: #98c379;
|
||||||
|
color: #1f2227;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-wgstatus {
|
||||||
|
color: #e06c75;
|
||||||
|
margin-right: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#language {
|
||||||
|
color: #c678dd;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
color: #e5c07b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.muted {
|
||||||
|
background-color: #81a1c1;
|
||||||
|
color: #282c34;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight {
|
||||||
|
color: #e5c07b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
color: #81a1c1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#memory {
|
||||||
|
color: #81A1C1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cpu {
|
||||||
|
color: #81A1C1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
color: #e5c07b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.charging,
|
||||||
|
#battery.plugged {
|
||||||
|
color: #e06c75;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.critical:not(.charging) {
|
||||||
|
color: #e06c75;
|
||||||
|
animation-name: blink;
|
||||||
|
animation-duration: 0.5s;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-direction: alternate;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
color: #98c379;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-notify {
|
||||||
|
color: #56b6c2;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-off {
|
||||||
|
margin-right: 4px;
|
||||||
|
margin-left: 11px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 8px;
|
||||||
|
margin-top: 4px;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
font-size: 17px;
|
||||||
|
background-color: #e06c75;
|
||||||
|
color: #272727;
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
width=700
|
||||||
|
height=250
|
||||||
|
location=center
|
||||||
|
show=run
|
||||||
|
prompt=Search...
|
||||||
|
filter_rate=165
|
||||||
|
allow_markup=true
|
||||||
|
no_actions=true
|
||||||
|
halign=fill
|
||||||
|
orientation=vertical
|
||||||
|
content_halign=fill
|
||||||
|
insensitive=true
|
||||||
|
allow_images=true
|
||||||
|
image_size=32
|
||||||
|
gtk_dark=true
|
||||||
|
term=kitty
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
@import ".config/wofi/style.css";
|
||||||
|
window {
|
||||||
|
font-family: "JetBrains Mono";
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
window {
|
||||||
|
margin: 0px;
|
||||||
|
border: 5px solid #202020;
|
||||||
|
background-color: #323232;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#input {
|
||||||
|
all: unset;
|
||||||
|
min-height: 36px;
|
||||||
|
padding: 4px 10px;
|
||||||
|
margin: 4px;
|
||||||
|
border: none;
|
||||||
|
color: #e2e0ec;
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: #272727;
|
||||||
|
outline: none;
|
||||||
|
border-radius: 6px;
|
||||||
|
margin: 10px;
|
||||||
|
margin-bottom: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#inner-box {
|
||||||
|
margin: 4px;
|
||||||
|
padding: 10px;
|
||||||
|
font-weight: bold;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#outer-box {
|
||||||
|
margin: 0px;
|
||||||
|
padding: 3px;
|
||||||
|
border: none;
|
||||||
|
border-radius: 6px;
|
||||||
|
border: 5px solid #202020;
|
||||||
|
}
|
||||||
|
|
||||||
|
#scroll {
|
||||||
|
margin-top: 5px;
|
||||||
|
border: none;
|
||||||
|
border-radius: 6px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#text:selected {
|
||||||
|
color: #f1f0f5;
|
||||||
|
margin: 0px 0px;
|
||||||
|
border: none;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry {
|
||||||
|
margin: 0px 0px;
|
||||||
|
border: none;
|
||||||
|
border-radius: 6px;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry:selected {
|
||||||
|
margin: 0px 0px;
|
||||||
|
border: none;
|
||||||
|
border-radius: 6px;
|
||||||
|
background: linear-gradient(90deg, #E97193 0%, #e06c75 100%);
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
[mgr]
|
||||||
|
|
||||||
|
prepend_keymap = [
|
||||||
|
{ on = [ "!" ], run = 'shell "$SHELL" --block', desc = "Open $$SHELL here" },
|
||||||
|
{ on = [ "a" ], run = "rename", desc = "Rename" },
|
||||||
|
{ on = [ "z", "z" ], run = "shell fzf --block", desc = "FZF" },
|
||||||
|
{ on = [ "z", "h" ], run = "hidden toggle", desc = "Toggle hidden files" },
|
||||||
|
{ on = [ "z", "e" ], run = 'shell --block -- unpack "$@"', desc = "Extract Archive" },
|
||||||
|
{ on = [ "z", "s" ], run = 'shell --block -- scpsend "$@"', desc = "Send to Server" },
|
||||||
|
|
||||||
|
|
||||||
|
{ on = [ "d", "d" ], run = "remove", desc = "Delete" },
|
||||||
|
{ on = [ "d", "D" ], run = "remove --permanently", desc = "Delete Permanently" },
|
||||||
|
{ on = [ "d", "u" ], run = 'shell --block "du --max-depth=1 -ah --apparent-size | less"', desc = "Show Size" },
|
||||||
|
{ on = [ "d", "U" ], run = 'shell --block "du --max-depth=1 -ah --apparent-size | sort -rh | less"', desc = "Show Size" },
|
||||||
|
]
|
||||||
|
|
||||||
|
append_keymap = [
|
||||||
|
{ on = "c", run = [ "cmd1", "cmd2" ], desc = "Multiple commands with `c`" }
|
||||||
|
]
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
[mgr]
|
||||||
|
|
||||||
|
cwd = { fg = "green" }
|
||||||
|
|
||||||
|
# Border
|
||||||
|
border_symbol = "│"
|
||||||
|
border_style = { fg = "blue" }
|
||||||
|
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
[mgr]
|
||||||
|
linemode = "size"
|
||||||
|
"h" = "cd .."
|
||||||
|
"l" = "shell $EDITOR {file}"
|
||||||
|
|
||||||
|
[opener]
|
||||||
|
edit = [
|
||||||
|
{ run = 'vim "$@"', desc = "$EDITOR", block = true, for = "linux" },
|
||||||
|
]
|
||||||
|
open = [
|
||||||
|
{ run = 'xdg-open "$@"', desc = "Open", for = "linux" },
|
||||||
|
]
|
||||||
|
openimg = [
|
||||||
|
{ run = 'swayimg "$@"', desc = "Open", for = "linux" },
|
||||||
|
]
|
||||||
|
reveal = [
|
||||||
|
{ run = 'xdg-open "$(dirname "$0")"', desc = "Reveal", for = "linux" },
|
||||||
|
]
|
||||||
|
extract = [
|
||||||
|
{ run = 'unpack "$1"', desc = "Extract here", for = "unix" },
|
||||||
|
]
|
||||||
|
play = [
|
||||||
|
{ run = 'mpv "$@"', orphan = true, for = "unix" },
|
||||||
|
]
|
||||||
|
|
||||||
|
[open]
|
||||||
|
rules = [
|
||||||
|
{ mime = "text/*", use = "edit" },
|
||||||
|
{ mime = "video/*", use = "play" },
|
||||||
|
{ mime = "audio/*", use = "play" },
|
||||||
|
{ mime = "image/*", use = "openimg" },
|
||||||
|
|
||||||
|
{ name = "*.json", use = "edit" },
|
||||||
|
{ name = "*.toml", use = "edit" },
|
||||||
|
{ name = "*.html", use = [ "open", "edit" ] },
|
||||||
|
|
||||||
|
]
|
||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
LB=$(pidof pw-loopback)
|
||||||
|
|
||||||
|
if [[ $LB > 0 ]]; then
|
||||||
|
killall pw-loopback
|
||||||
|
else
|
||||||
|
pw-loopback --capture "alsa_input.usb-AVerMedia_Technologies__Inc._Live_Gamer_MINI_5203206100308-03.pro-input-0" &
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
Executable
+22
@@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
option0="Disable DM"
|
||||||
|
option1="Enable DM"
|
||||||
|
|
||||||
|
option2="Toggle DM Capture Card"
|
||||||
|
|
||||||
|
options="$option0\n$option1\n$option2"
|
||||||
|
|
||||||
|
selected="$(echo -e "$options" | wofi -n -d -p "Direct Monitor:" || exit 0)"
|
||||||
|
|
||||||
|
case $selected in
|
||||||
|
$option0)
|
||||||
|
amixer --card=3 set 'Direct Monitor' Off;;
|
||||||
|
$option1)
|
||||||
|
amixer --card=3 set 'Direct Monitor' Stereo;;
|
||||||
|
$option2)
|
||||||
|
loopback_toggle;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
Executable
+5
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
wofi || exit 0
|
||||||
|
|
||||||
|
exit 0
|
||||||
Executable
+37
@@ -0,0 +1,37 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Получаем список игр
|
||||||
|
result = subprocess.run(["lutris", "-ojl"], capture_output=True, text=True)
|
||||||
|
games = json.loads(result.stdout)
|
||||||
|
|
||||||
|
# Формируем список названий
|
||||||
|
game_names = [game["name"] for game in games]
|
||||||
|
games_list = "\n".join(game_names)
|
||||||
|
|
||||||
|
# Выбор игры через wofi
|
||||||
|
wofi_process = subprocess.Popen(
|
||||||
|
["wofi", "-n", "-d", "-p", "Select Game:"],
|
||||||
|
stdin=subprocess.PIPE,
|
||||||
|
stdout=subprocess.PIPE,
|
||||||
|
text=True
|
||||||
|
)
|
||||||
|
selected_game, _ = wofi_process.communicate(input=games_list)
|
||||||
|
selected_game = selected_game.strip()
|
||||||
|
|
||||||
|
if not selected_game:
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
# Запускаем выбранную игру
|
||||||
|
for game in games:
|
||||||
|
if game["name"] == selected_game:
|
||||||
|
subprocess.Popen(["lutris", f"lutris:rungameid/{game['id']}"])
|
||||||
|
break
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error: {e}", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
Executable
+176
@@ -0,0 +1,176 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
autotype=0
|
||||||
|
copyisset=0
|
||||||
|
fileisuser=0
|
||||||
|
help=0
|
||||||
|
onlypassword=0
|
||||||
|
squash=0
|
||||||
|
typeisset=0
|
||||||
|
|
||||||
|
COPY_CMD="wl-copy"
|
||||||
|
TYPE_CMD="wtype -"
|
||||||
|
|
||||||
|
_trim() {
|
||||||
|
var="$*"
|
||||||
|
# remove leading whitespace characters
|
||||||
|
var="${var#"${var%%[![:space:]]*}"}"
|
||||||
|
# remove trailing whitespace characters
|
||||||
|
var="${var%"${var##*[![:space:]]}"}"
|
||||||
|
printf '%s' "$var"
|
||||||
|
}
|
||||||
|
|
||||||
|
# the explicit newlines here are funky, but needed due to command substitution
|
||||||
|
# stripping trailing newlines so `printf '%s\n' "$line"` cannot be used
|
||||||
|
_parse_fields() {
|
||||||
|
has_username=0
|
||||||
|
fields="$(pass show "$password" | tail -n +2 | cut -d: -f1 -s)"
|
||||||
|
field_list="password
|
||||||
|
"
|
||||||
|
if [ "$fileisuser" -eq 1 ]; then
|
||||||
|
has_username=1
|
||||||
|
line="username"
|
||||||
|
field_list="$field_list$line
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
for line in $fields; do
|
||||||
|
if [ "$line" = "username" ]; then
|
||||||
|
has_username=1
|
||||||
|
field_list="$field_list$line
|
||||||
|
"
|
||||||
|
elif [ "$line" = "otpauth" ]; then
|
||||||
|
field_list="${field_list}OTP
|
||||||
|
"
|
||||||
|
elif [ "$line" = autotype_always ]; then
|
||||||
|
autotype=1
|
||||||
|
else
|
||||||
|
field_list="$field_list$line
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ "$typeisset" -eq 1 ] && [ "$has_username" -eq 1 ]; then
|
||||||
|
printf "autotype
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
printf '%s' "$field_list"
|
||||||
|
}
|
||||||
|
|
||||||
|
_pass_field() {
|
||||||
|
_trim "$(pass show "$password" | tail -n+2 | grep "^${*}:.*$" | cut -d: -f1 -s --complement)"
|
||||||
|
}
|
||||||
|
|
||||||
|
_pass_get() {
|
||||||
|
if [ "$1" = "password" ]; then
|
||||||
|
pass show "$password" | { IFS= read -r pass; printf %s "$pass"; }
|
||||||
|
elif [ "$1" = "OTP" ]; then
|
||||||
|
pass otp "$password" | tail -n1 | { IFS= read -r pass; printf %s "$pass"; }
|
||||||
|
elif [ "$fileisuser" -eq 1 ] && [ "$1" = "username" ]; then
|
||||||
|
printf %s "$passname"
|
||||||
|
else
|
||||||
|
_pass_field "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_usage() {
|
||||||
|
printf "Usage: wofi-pass [options]\n"
|
||||||
|
printf " -a, --autotype autotype whatever entry is chosen\n"
|
||||||
|
printf " -c, --copy=[cmd] copy to clipboard. Defaults to wl-copy if no cmd is given.\n"
|
||||||
|
printf " -f, --fileisuser use the name of the password file as username\n"
|
||||||
|
printf " -h, --help show this help message\n"
|
||||||
|
printf " -s, --squash don't show field choice if password file only contains password\n"
|
||||||
|
printf " -t, --type=[cmd] type the selection instead of copying to clipboard.\n"
|
||||||
|
printf " Defaults to wtype if no cmd is given.\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
OPTS="$(getopt --options ac::fhst:: --longoptions autotype,copy::,fileisuser,help,squash,type:: -n 'wofi-pass' -- "$@")"
|
||||||
|
eval set -- "$OPTS"
|
||||||
|
while true; do
|
||||||
|
case "$1" in
|
||||||
|
-a | --autotype ) autotype=1; shift ;;
|
||||||
|
-c ) copyisset=1; copy_cmd="$COPY_CMD"; shift ;;
|
||||||
|
--copy )
|
||||||
|
copyisset=1
|
||||||
|
if [ -n "$2" ]; then
|
||||||
|
copy_cmd="$2"
|
||||||
|
shift 2
|
||||||
|
else
|
||||||
|
copy_cmd="$COPY_CMD"
|
||||||
|
shift
|
||||||
|
fi ;;
|
||||||
|
-f | --fileisuser ) fileisuser=1; shift;;
|
||||||
|
-h | --help ) help=1; shift ;;
|
||||||
|
-s | --squash ) squash=1; shift ;;
|
||||||
|
-t ) typeisset=1; type_cmd="$TYPE_CMD"; shift ;;
|
||||||
|
--type )
|
||||||
|
typeisset=1
|
||||||
|
if [ -n "$2" ]; then
|
||||||
|
type_cmd="$2"
|
||||||
|
shift 2
|
||||||
|
else
|
||||||
|
type_cmd="$TYPE_CMD"
|
||||||
|
shift
|
||||||
|
fi ;;
|
||||||
|
-- ) shift; break;;
|
||||||
|
* ) break;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$help" -eq 1 ]; then
|
||||||
|
_usage >&2
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$typeisset" -eq 1 ] && [ "$copyisset" -eq 1 ]; then
|
||||||
|
printf "copy and type cannot be used at same time. Please pass only one.\n"
|
||||||
|
exit 1
|
||||||
|
elif [ "$typeisset" -eq 0 ] && [ "$copyisset" -eq 0 ]; then
|
||||||
|
printf "neither -c/--copy or -t/--type passed. Defaulting to copying with wl-copy."
|
||||||
|
copy_cmd="$COPY_CMD"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "${PASSWORD_STORE_DIR:-$HOME/.password-store}"
|
||||||
|
password_files="$(find . -name "*.gpg" | sed "s/^\.\/\(.*\)\.gpg$/\1/")"
|
||||||
|
|
||||||
|
password=$(printf '%s\n' "$password_files" | wofi --dmenu)
|
||||||
|
[ -n "$password" ] || exit
|
||||||
|
|
||||||
|
if [ "$fileisuser" -eq 1 ]; then
|
||||||
|
passname=$(printf '%s' "$password" | sed "s,.*/\(\),\1,")
|
||||||
|
fi
|
||||||
|
|
||||||
|
field_list="$(_parse_fields)"
|
||||||
|
field_count="$(printf '%s' "$field_list" | wc -l)"
|
||||||
|
if [ "$squash" -eq 1 ] && [ "$field_count" -eq 0 ]; then
|
||||||
|
field="password"
|
||||||
|
onlypassword=1
|
||||||
|
elif [ "$autotype" -ne 1 ]; then
|
||||||
|
field=$(printf '%s\n' "$field_list" | wofi --dmenu)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# get the command to output to
|
||||||
|
if [ "$typeisset" -eq 1 ]; then
|
||||||
|
output_cmd=$type_cmd
|
||||||
|
else
|
||||||
|
output_cmd=$copy_cmd
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$autotype" -eq 1 ] || [ "$field" = "autotype" ]; then
|
||||||
|
if [ "$fileisuser" -eq 1 ]; then
|
||||||
|
username="$passname"
|
||||||
|
else
|
||||||
|
username=$(_pass_get "username")
|
||||||
|
fi
|
||||||
|
password=$(_pass_get "password")
|
||||||
|
|
||||||
|
# check if we are autotyping a password-only file
|
||||||
|
if [ "$onlypassword" -eq 1 ]; then
|
||||||
|
printf '%s\n' "$password" | $output_cmd
|
||||||
|
else
|
||||||
|
printf '%s\t%s\n' "$username" "$password" | $output_cmd
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
_pass_get "$field" | $output_cmd
|
||||||
|
fi
|
||||||
Executable
+44
@@ -0,0 +1,44 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
option0=" Lock"
|
||||||
|
option1=" Poweroff"
|
||||||
|
option2=" Reboot"
|
||||||
|
option3=" Exit"
|
||||||
|
|
||||||
|
option4=" Monitor toggle"
|
||||||
|
option5=" VPN Toggle"
|
||||||
|
|
||||||
|
options="$option0\n$option1\n$option2\n$option3\n$option4\n$option5"
|
||||||
|
|
||||||
|
selected="$(echo -e "$options" | wofi --show dmenu --location top_right --xoffset -32 --yoffset 14 --width 256 --height 228 -p "Powermenu:" || exit 0)"
|
||||||
|
|
||||||
|
case $selected in
|
||||||
|
$option0)
|
||||||
|
swaylock \
|
||||||
|
--screenshots \
|
||||||
|
--clock \
|
||||||
|
--indicator \
|
||||||
|
--indicator-radius 100 \
|
||||||
|
--indicator-thickness 7 \
|
||||||
|
--effect-blur 6x5 \
|
||||||
|
--effect-vignette 0.5:0.5 \
|
||||||
|
--ring-color 1f2227 \
|
||||||
|
--key-hl-color e06c75 \
|
||||||
|
--line-color 00000000 \
|
||||||
|
--inside-color 00000088 \
|
||||||
|
--separator-color 00000000 \
|
||||||
|
--grace 2 \
|
||||||
|
--fade-in 0.2;;
|
||||||
|
$option1)
|
||||||
|
systemctl poweroff;;
|
||||||
|
$option2)
|
||||||
|
systemctl reboot;;
|
||||||
|
$option3)
|
||||||
|
exec exit;;
|
||||||
|
$option4)
|
||||||
|
monitor-toggle;;
|
||||||
|
$option5)
|
||||||
|
exec $HOME/.config/waybar/scripts/wgstatus -toggle;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
Executable
+9
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
exec wofi \
|
||||||
|
--show drun \
|
||||||
|
--location top_left \
|
||||||
|
--xoffset 14 \
|
||||||
|
--yoffset 14 \
|
||||||
|
--width 384 \
|
||||||
|
--height 512 \
|
||||||
|
-p Application:
|
||||||
Executable
+8
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
WALLPATH="$HOME/.local/share/backgrounds/"
|
||||||
|
WALLFILE="$(ls $WALLPATH | wofi --show dmenu -p Wallpapers:)"
|
||||||
|
|
||||||
|
swww img $WALLPATH$WALLFILE --transition-type wipe --transition-step 30 --transition-fps 165 > /dev/null
|
||||||
|
|
||||||
|
exit 0
|
||||||
Executable
+19
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
MONON(){
|
||||||
|
hyprctl keyword monitor DP-2,2560x1440@165,0x0,1
|
||||||
|
}
|
||||||
|
|
||||||
|
MONOFF(){
|
||||||
|
hyprctl keyword monitor DP-2,disable
|
||||||
|
}
|
||||||
|
|
||||||
|
MONTEMP=$(hyprctl monitors | grep "(ID 1)")
|
||||||
|
|
||||||
|
if [[ $MONTEMP = "Monitor DP-2 (ID 1):" ]]; then
|
||||||
|
MONOFF
|
||||||
|
else
|
||||||
|
MONON
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
NM=$(pidof gammastep)
|
||||||
|
|
||||||
|
if [[ $NM > 0 ]]; then
|
||||||
|
killall gammastep
|
||||||
|
else
|
||||||
|
gammastep -b 1:0.9 -l 56.01:92.86 -t 5600:4500 &
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
Executable
+29
@@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SPACEPORT(){
|
||||||
|
notify-send -e -i "$ICONPATH/space-base.png" "$HNOTIFY" "Низкая производительность"
|
||||||
|
corectrl -m Spaceport
|
||||||
|
}
|
||||||
|
|
||||||
|
COSMIC(){
|
||||||
|
notify-send -e -i "$ICONPATH/spaceship.png" "$HNOTIFY" "Средняя производительность"
|
||||||
|
corectrl -m Cosmic
|
||||||
|
}
|
||||||
|
|
||||||
|
ROCKET(){
|
||||||
|
notify-send -e -i "$ICONPATH/rocket.png" "$HNOTIFY" "Высокая производительность"
|
||||||
|
corectrl -m Rocket
|
||||||
|
}
|
||||||
|
|
||||||
|
ICONPATH="/home/mat/.config/streamdeck/sources/Keys/applications"
|
||||||
|
HNOTIFY="Центр Управления Полетами"
|
||||||
|
|
||||||
|
if [[ $1 = 'spaceport' ]]; then
|
||||||
|
SPACEPORT
|
||||||
|
elif [[ $1 = 'cosmic' ]]; then
|
||||||
|
COSMIC
|
||||||
|
elif [[ $1 = 'rocket' ]]; then
|
||||||
|
ROCKET
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
Executable
+22
@@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Проверяем, переданы ли аргументы
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
echo "Ошибка: не указаны файлы для копирования"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Запрашиваем удалённый путь
|
||||||
|
REM=$(gum input --placeholder "user@host:/path/to/destination")
|
||||||
|
|
||||||
|
# Копируем каждый файл по очереди
|
||||||
|
for file in "$@"; do
|
||||||
|
if [ ! -e "$file" ]; then
|
||||||
|
echo "Ошибка: файл '$file' не существует, пропускаем"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
echo "Копируем $file..."
|
||||||
|
scp -r "$file" "$REM"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Готово!"
|
||||||
Executable
+23
@@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SCREENFILE=$HOME/Documents/Images/Screenshots/$(date +'screenshot_%Y-%m-%d-%H%M%S.png')
|
||||||
|
ICONPATH="/home/mat/.config/streamdeck/sources/Keys/applications"
|
||||||
|
HNOTIFY="Центр Управления Полетами"
|
||||||
|
|
||||||
|
SCREENZONE(){
|
||||||
|
grim -g "$(slurp -d)" - | wl-copy && wl-paste > $SCREENFILE
|
||||||
|
notify-send -e -i "$ICONPATH/screenshots.png" "$HNOTIFY" "Скриншот скопирован и сохранен"
|
||||||
|
}
|
||||||
|
|
||||||
|
SCREENFULL(){
|
||||||
|
grim - | wl-copy && wl-paste > $SCREENFILE
|
||||||
|
notify-send -e -i "$ICONPATH/screenshots.png" "$HNOTIFY" "Скриншот скопирован и сохранен"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ $1 = 'full' ]]; then
|
||||||
|
SCREENFULL
|
||||||
|
else
|
||||||
|
SCREENZONE
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
Executable
+9
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
if [[ $1 == --daemon ]]; then
|
||||||
|
until pgrep gvfs >/dev/null; do
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
exec /usr/bin/Thunar "$@"
|
||||||
|
else
|
||||||
|
exec /usr/bin/Thunar "$@"
|
||||||
|
fi
|
||||||
Executable
+42
@@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Функция для распаковки архивов
|
||||||
|
unpack() {
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
echo -e "\033[1;31mОшибка:\033[0m Укажите имя архива"
|
||||||
|
echo "Использование: unpack <архив>"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$1" ]; then
|
||||||
|
echo -e "\033[1;31mОшибка:\033[0m Файл '$1' не существует"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
*.tar.bz2|*.tbz2) tar xjf "$1" ;;
|
||||||
|
*.tar.gz|*.tgz) tar xzf "$1" ;;
|
||||||
|
*.tar.xz) tar xf "$1" ;;
|
||||||
|
*.tar) tar xf "$1" ;;
|
||||||
|
*.bz2) bunzip2 "$1" ;;
|
||||||
|
*.rar) unrar x "$1" ;;
|
||||||
|
*.gz) gunzip "$1" ;;
|
||||||
|
*.zip) unzip "$1" ;;
|
||||||
|
*.Z) uncompress "$1" ;;
|
||||||
|
*.7z) 7z x "$1" ;;
|
||||||
|
*)
|
||||||
|
echo -e "\033[1;31mОшибка:\033[0m Неподдерживаемый формат архива: '$1'"
|
||||||
|
echo -e "Поддерживаемые форматы: .tar.bz2, .tar.gz, .tar.xz, .tar, .bz2, .rar, .gz, .zip, .Z, .7z"
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo -e "\033[1;32mУспех:\033[0m Архив '$1' распакован"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Если скрипт вызван напрямую (а не через source), выполняем unpack
|
||||||
|
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
||||||
|
unpack "$@"
|
||||||
|
fi
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
:root {
|
||||||
|
--rh-bg: #303030;
|
||||||
|
--rh-fg: #abb2bf;
|
||||||
|
--rh-current-line: #44475a;
|
||||||
|
--rh-comment: #6272a4;
|
||||||
|
--rh-abyss: rgb(39,39,39);
|
||||||
|
--rh-cyan: #56b6c2;
|
||||||
|
--rh-green: #98c379;
|
||||||
|
--rh-orange: #ffb86c;
|
||||||
|
--rh-pink: #ff79c6;
|
||||||
|
--rh-purple: #c678dd;
|
||||||
|
--rh-red: #e06c75;
|
||||||
|
--rh-yellow: #e5c07b;
|
||||||
|
}
|
||||||
|
.theme-dark,
|
||||||
|
.theme-light {
|
||||||
|
--main-background: var(--rh-bg);
|
||||||
|
--text-color: var(--rh-fg);
|
||||||
|
--link-color: var(--rh-purple);
|
||||||
|
--link-hover-color: var(--rh-purple);
|
||||||
|
--input-background: var(--rh-abyss);
|
||||||
|
--segment-background: var(--rh-abyss);
|
||||||
|
--card-background: var(--rh-abyss);
|
||||||
|
--success-color: var(--rh-green);
|
||||||
|
--success-hover-color: var(--rh-current-line);
|
||||||
|
--discrete-text-color: var(--rh-fg);
|
||||||
|
--really-discrete-text-color: var(--rh-comment);
|
||||||
|
--button-basic-hover-color: var(--rh-fg);
|
||||||
|
--button-basic-color: var(--rh-comment);
|
||||||
|
--card-box-shadow: 0 1px 3px 0 black, 0 0 0 1px black;
|
||||||
|
--sidebar-background: var(--rh-abyss);
|
||||||
|
--vibrant-color: var(--rh-green);
|
||||||
|
--vibrant-hover-color: var(--rh-green);
|
||||||
|
--player-color: var(--rh-fg);
|
||||||
|
--player-background: var(--rh-abyss);
|
||||||
|
--site-background: var(--rh-bg);
|
||||||
|
--danger-color: var(--rh-red);
|
||||||
|
--danger-hover-color: var(--rh-red);
|
||||||
|
--primary-color: var(--rh-cyan);
|
||||||
|
--primary-hover-color: var(--rh-cyan);
|
||||||
|
--secondary-menu-active-item-color: var(--rh-comment);
|
||||||
|
}
|
||||||
|
button,
|
||||||
|
.ui.success.button,
|
||||||
|
.ui.success.buttons .button,
|
||||||
|
.ui.vibrant.button,
|
||||||
|
.ui.vibrant.button:hover,
|
||||||
|
.ui.vibrant.buttons .button,
|
||||||
|
.ui.vibrant.buttons .button:hover,
|
||||||
|
.ui.primary.button,
|
||||||
|
.ui.primary.buttons .button {
|
||||||
|
color: var(--rh-bg);
|
||||||
|
}
|
||||||
|
button:hover,
|
||||||
|
.ui.success.button:hover,
|
||||||
|
.ui.success.buttons .button:hover {
|
||||||
|
color: var(--rh-fg);
|
||||||
|
}
|
||||||
|
.sidebar .logo path {
|
||||||
|
fill: var(--rh-bg);
|
||||||
|
}
|
||||||
|
.ui.table td.active,
|
||||||
|
.ui.table tr.active {
|
||||||
|
color: var(--rh-fg);
|
||||||
|
background: var(--rh-abyss);
|
||||||
|
}
|
||||||
|
.ui.info.message {
|
||||||
|
color: var(--rh-fg);
|
||||||
|
background: var(--rh-current-line);
|
||||||
|
}
|
||||||
|
.ui.selectable.table > tbody > tr:hover,
|
||||||
|
.ui.table tbody tr td.selectable:hover,
|
||||||
|
.ui.selectable.table tr.active:hover,
|
||||||
|
.ui.selectable.table tr:hover td.active,
|
||||||
|
.ui.table tr td.selectable.active:hover,
|
||||||
|
button:hover,
|
||||||
|
.ui.success.button:hover,
|
||||||
|
.ui.success.buttons .button:hover {
|
||||||
|
color: var(--rh-fg);
|
||||||
|
background: var(--rh-current-line);
|
||||||
|
}
|
||||||
|
i.pink.icon {
|
||||||
|
color: var(--rh-pink);
|
||||||
|
}
|
||||||
|
.ui.info.message .header {
|
||||||
|
color: var(--rh-fg);
|
||||||
|
}
|
||||||
|
i.inverted.bordered.vibrant.icon,
|
||||||
|
i.inverted.circular.vibrant.icon {
|
||||||
|
background: var(--rh-red);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user