first commit using stow
This commit is contained in:
commit
f3bdd21020
|
|
@ -0,0 +1,666 @@
|
|||
|
||||
[env]
|
||||
TERM = "xterm-256color"
|
||||
|
||||
[colors]
|
||||
draw_bold_text_with_bright_colors = true
|
||||
|
||||
[colors.primary]
|
||||
background = '#1E1E2E' # base
|
||||
foreground = '#CDD6F4' # text
|
||||
# Bright and dim foreground colors
|
||||
dim_foreground = '#CDD6F4' # text
|
||||
bright_foreground = '#CDD6F4' # text
|
||||
|
||||
# Cursor colors
|
||||
[colors.cursor]
|
||||
text = '#1E1E2E' # base
|
||||
cursor = '#F5E0DC' # rosewater
|
||||
|
||||
[colors.vi_mode_cursor]
|
||||
text = '#1E1E2E' # base
|
||||
cursor = '#B4BEFE' # lavender
|
||||
|
||||
# Search colors
|
||||
[colors.search.matches]
|
||||
foreground = '#1E1E2E' # base
|
||||
background = '#A6ADC8' # subtext0
|
||||
|
||||
[colors.search.focused_match]
|
||||
foreground = '#1E1E2E' # base
|
||||
background = '#A6E3A1' # green
|
||||
|
||||
[colors.footer_bar]
|
||||
foreground = '#1E1E2E' # base
|
||||
background = '#A6ADC8' # subtext0
|
||||
|
||||
# Keyboard regex hints
|
||||
[colors.hints.start]
|
||||
foreground = '#1E1E2E' # base
|
||||
background = '#F9E2AF' # yellow
|
||||
|
||||
[colors.hints.end]
|
||||
foreground = '#1E1E2E' # base
|
||||
background = '#A6ADC8' # subtext0
|
||||
|
||||
# Selection colors
|
||||
[colors.selection]
|
||||
text = '#1E1E2E' # base
|
||||
background = '#F5E0DC' # rosewater
|
||||
|
||||
# Normal colors
|
||||
[colors.normal]
|
||||
black = '#45475A' # surface1
|
||||
red = '#F38BA8' # red
|
||||
green = '#A6E3A1' # green
|
||||
yellow = '#F9E2AF' # yellow
|
||||
blue = '#89B4FA' # blue
|
||||
magenta = '#F5C2E7' # pink
|
||||
cyan = '#94E2D5' # teal
|
||||
white = '#BAC2DE' # subtext1
|
||||
|
||||
# Bright colors
|
||||
[colors.bright]
|
||||
black = '#585B70' # surface2
|
||||
red = '#F38BA8' # red
|
||||
green = '#A6E3A1' # green
|
||||
yellow = '#F9E2AF' # yellow
|
||||
blue = '#89B4FA' # blue
|
||||
magenta = '#F5C2E7' # pink
|
||||
cyan = '#94E2D5' # teal
|
||||
white = '#A6ADC8' # subtext0
|
||||
|
||||
# Dim colors
|
||||
[colors.dim]
|
||||
black = '#45475A' # surface1
|
||||
red = '#F38BA8' # red
|
||||
green = '#A6E3A1' # green
|
||||
yellow = '#F9E2AF' # yellow
|
||||
blue = '#89B4FA' # blue
|
||||
magenta = '#F5C2E7' # pink
|
||||
cyan = '#94E2D5' # teal
|
||||
white = '#BAC2DE' # subtext1
|
||||
[cursor]
|
||||
style = "Block"
|
||||
unfocused_hollow = true
|
||||
|
||||
[debug]
|
||||
persistent_logging = false
|
||||
render_timer = false
|
||||
|
||||
[font]
|
||||
size = 12
|
||||
|
||||
[font.bold]
|
||||
family = "Fira Code"
|
||||
style = "Bold"
|
||||
|
||||
[font.glyph_offset]
|
||||
x = 0
|
||||
y = 0
|
||||
|
||||
[font.italic]
|
||||
family = "Fira Code"
|
||||
style = "Italic"
|
||||
|
||||
[font.normal]
|
||||
family = "Fira Code"
|
||||
style = "Regular"
|
||||
|
||||
[font.offset]
|
||||
x = 0
|
||||
y = 0
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "Paste"
|
||||
key = "V"
|
||||
mods = "Control|Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "Copy"
|
||||
key = "C"
|
||||
mods = "Control|Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "Paste"
|
||||
key = "Paste"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "Copy"
|
||||
key = "Copy"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "Quit"
|
||||
key = "W"
|
||||
mods = "Command"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "PasteSelection"
|
||||
key = "Insert"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "ResetFontSize"
|
||||
key = "Key0"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "IncreaseFontSize"
|
||||
key = "Equals"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "DecreaseFontSize"
|
||||
key = "NumpadSubtract"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "DecreaseFontSize"
|
||||
key = "Minus"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "ClearLogNotice"
|
||||
key = "L"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\f"
|
||||
key = "L"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001BOH"
|
||||
key = "Home"
|
||||
mode = "AppCursor"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[H"
|
||||
key = "Home"
|
||||
mode = "~AppCursor"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001BOF"
|
||||
key = "End"
|
||||
mode = "AppCursor"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[F"
|
||||
key = "End"
|
||||
mode = "~AppCursor"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[5;2~"
|
||||
key = "PageUp"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[5;5~"
|
||||
key = "PageUp"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[5~"
|
||||
key = "PageUp"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[6;2~"
|
||||
key = "PageDown"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[6;5~"
|
||||
key = "PageDown"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[6~"
|
||||
key = "PageDown"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[Z"
|
||||
key = "Tab"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u007F"
|
||||
key = "Back"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B\u007F"
|
||||
key = "Back"
|
||||
mods = "Alt"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[2~"
|
||||
key = "Insert"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[3~"
|
||||
key = "Delete"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;2D"
|
||||
key = "Left"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;5D"
|
||||
key = "Left"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;3D"
|
||||
key = "Left"
|
||||
mods = "Alt"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[D"
|
||||
key = "Left"
|
||||
mode = "~AppCursor"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001BOD"
|
||||
key = "Left"
|
||||
mode = "AppCursor"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;2C"
|
||||
key = "Right"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;5C"
|
||||
key = "Right"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;3C"
|
||||
key = "Right"
|
||||
mods = "Alt"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[C"
|
||||
key = "Right"
|
||||
mode = "~AppCursor"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001BOC"
|
||||
key = "Right"
|
||||
mode = "AppCursor"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;2A"
|
||||
key = "Up"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;5A"
|
||||
key = "Up"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;3A"
|
||||
key = "Up"
|
||||
mods = "Alt"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[A"
|
||||
key = "Up"
|
||||
mode = "~AppCursor"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001BOA"
|
||||
key = "Up"
|
||||
mode = "AppCursor"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;2B"
|
||||
key = "Down"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;5B"
|
||||
key = "Down"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;3B"
|
||||
key = "Down"
|
||||
mods = "Alt"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[B"
|
||||
key = "Down"
|
||||
mode = "~AppCursor"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001BOB"
|
||||
key = "Down"
|
||||
mode = "AppCursor"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001BOP"
|
||||
key = "F1"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001BOQ"
|
||||
key = "F2"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001BOR"
|
||||
key = "F3"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001BOS"
|
||||
key = "F4"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[15~"
|
||||
key = "F5"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[17~"
|
||||
key = "F6"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[18~"
|
||||
key = "F7"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[19~"
|
||||
key = "F8"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[20~"
|
||||
key = "F9"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[21~"
|
||||
key = "F10"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[23~"
|
||||
key = "F11"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[24~"
|
||||
key = "F12"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;2P"
|
||||
key = "F1"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;2Q"
|
||||
key = "F2"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;2R"
|
||||
key = "F3"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;2S"
|
||||
key = "F4"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[15;2~"
|
||||
key = "F5"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[17;2~"
|
||||
key = "F6"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[18;2~"
|
||||
key = "F7"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[19;2~"
|
||||
key = "F8"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[20;2~"
|
||||
key = "F9"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[21;2~"
|
||||
key = "F10"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[23;2~"
|
||||
key = "F11"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[24;2~"
|
||||
key = "F12"
|
||||
mods = "Shift"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;5P"
|
||||
key = "F1"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;5Q"
|
||||
key = "F2"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;5R"
|
||||
key = "F3"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;5S"
|
||||
key = "F4"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[15;5~"
|
||||
key = "F5"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[17;5~"
|
||||
key = "F6"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[18;5~"
|
||||
key = "F7"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[19;5~"
|
||||
key = "F8"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[20;5~"
|
||||
key = "F9"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[21;5~"
|
||||
key = "F10"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[23;5~"
|
||||
key = "F11"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[24;5~"
|
||||
key = "F12"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;6P"
|
||||
key = "F1"
|
||||
mods = "Alt"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;6Q"
|
||||
key = "F2"
|
||||
mods = "Alt"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;6R"
|
||||
key = "F3"
|
||||
mods = "Alt"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;6S"
|
||||
key = "F4"
|
||||
mods = "Alt"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[15;6~"
|
||||
key = "F5"
|
||||
mods = "Alt"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[17;6~"
|
||||
key = "F6"
|
||||
mods = "Alt"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[18;6~"
|
||||
key = "F7"
|
||||
mods = "Alt"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[19;6~"
|
||||
key = "F8"
|
||||
mods = "Alt"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[20;6~"
|
||||
key = "F9"
|
||||
mods = "Alt"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[21;6~"
|
||||
key = "F10"
|
||||
mods = "Alt"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[23;6~"
|
||||
key = "F11"
|
||||
mods = "Alt"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[24;6~"
|
||||
key = "F12"
|
||||
mods = "Alt"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;3P"
|
||||
key = "F1"
|
||||
mods = "Super"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;3Q"
|
||||
key = "F2"
|
||||
mods = "Super"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;3R"
|
||||
key = "F3"
|
||||
mods = "Super"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[1;3S"
|
||||
key = "F4"
|
||||
mods = "Super"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[15;3~"
|
||||
key = "F5"
|
||||
mods = "Super"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[17;3~"
|
||||
key = "F6"
|
||||
mods = "Super"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[18;3~"
|
||||
key = "F7"
|
||||
mods = "Super"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[19;3~"
|
||||
key = "F8"
|
||||
mods = "Super"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[20;3~"
|
||||
key = "F9"
|
||||
mods = "Super"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[21;3~"
|
||||
key = "F10"
|
||||
mods = "Super"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001B[23;3~"
|
||||
key = "F11"
|
||||
mods = "Super"
|
||||
|
||||
# [mouse]
|
||||
# hide_when_typing = false
|
||||
#
|
||||
# [[mouse.bindings]]
|
||||
# action = "PasteSelection"
|
||||
# mouse = "Middle"
|
||||
#
|
||||
# [mouse.double_click]
|
||||
# threshold = 300
|
||||
#
|
||||
# [mouse.hints]
|
||||
# launcher = "xdg-open"
|
||||
# modifiers = "Control"
|
||||
#
|
||||
# [mouse.triple_click]
|
||||
# threshold = 300
|
||||
#
|
||||
[scrolling]
|
||||
history = 100000
|
||||
multiplier = 3
|
||||
|
||||
[selection]
|
||||
save_to_clipboard = false
|
||||
semantic_escape_chars = ",│`|:\"' ()[]{}<>"
|
||||
|
||||
[window]
|
||||
decorations = "none"
|
||||
dynamic_padding = false
|
||||
opacity = 0.9
|
||||
startup_mode = "Maximized"
|
||||
|
||||
[window.dimensions]
|
||||
columns = 0
|
||||
lines = 0
|
||||
|
||||
[window.padding]
|
||||
x = 5
|
||||
y = 5
|
||||
|
||||
[general]
|
||||
|
||||
live_config_reload = true
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
[Filechooser Settings]
|
||||
LocationMode=path-bar
|
||||
ShowHidden=false
|
||||
ShowSizeColumn=true
|
||||
GeometryX=1068
|
||||
GeometryY=0
|
||||
GeometryWidth=840
|
||||
GeometryHeight=630
|
||||
SortColumn=name
|
||||
SortOrder=ascending
|
||||
StartupMode=recent
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
# DO NOT EDIT! This file will be overwritten by LXAppearance.
|
||||
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
|
||||
|
||||
include "/home/krolyxon/.gtkrc-2.0.mine"
|
||||
gtk-theme-name="Arc-Dark"
|
||||
gtk-icon-theme-name="Papirus-Dark"
|
||||
gtk-font-name="Fira Code 11"
|
||||
gtk-cursor-theme-name="Adwaita"
|
||||
gtk-cursor-theme-size=0
|
||||
gtk-toolbar-style=GTK_TOOLBAR_BOTH
|
||||
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||
gtk-button-images=1
|
||||
gtk-menu-images=1
|
||||
gtk-enable-event-sounds=1
|
||||
gtk-enable-input-feedback-sounds=1
|
||||
gtk-xft-antialias=1
|
||||
gtk-xft-hinting=1
|
||||
gtk-xft-hintstyle="hintfull"
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
[Settings]
|
||||
gtk-theme-name=Arc-Dark
|
||||
gtk-icon-theme-name=Papirus-Dark
|
||||
gtk-font-name=JetBrainsMonoNL Nerd Font Thin 11
|
||||
gtk-cursor-theme-name=WhiteSur-cursors
|
||||
gtk-cursor-theme-size=0
|
||||
gtk-toolbar-style=GTK_TOOLBAR_BOTH
|
||||
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||
gtk-button-images=1
|
||||
gtk-menu-images=1
|
||||
gtk-enable-event-sounds=1
|
||||
gtk-enable-input-feedback-sounds=1
|
||||
gtk-xft-antialias=1
|
||||
gtk-xft-hinting=1
|
||||
gtk-xft-hintstyle=hintfull
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
general {
|
||||
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
|
||||
before_sleep_cmd = loginctl lock-session # lock before suspend.
|
||||
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 150 # 2.5min.
|
||||
on-timeout = brightnessctl -s set 5 # set monitor backlight to minimum, avoid 0 on OLED monitor.
|
||||
on-resume = brightnessctl -r # monitor backlight restore.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 600 # 10min
|
||||
on-timeout = loginctl lock-session # lock screen when timeout has passed
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 330 # 5.5min
|
||||
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
|
||||
on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected after timeout has fired.
|
||||
}
|
||||
|
||||
# listener {
|
||||
# timeout = 1800 # 30min
|
||||
# on-timeout = systemctl suspend # suspend pc
|
||||
# }
|
||||
|
|
@ -0,0 +1,307 @@
|
|||
autogenerated = 0
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
###################
|
||||
$terminal = footclient
|
||||
$menu = rofi -show run
|
||||
$browser = zen-browser
|
||||
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
exec-once = (hyprpm reload -n & kanshi & waybar & swaync & gammastep & hypridle & foot --server)
|
||||
exec-once = ~/.local/bin/setwall
|
||||
exec-once = systemctl --user start hyprpolkitagent
|
||||
|
||||
plugin {
|
||||
hyprsplit {
|
||||
num_workspaces = 10
|
||||
persistent_workspaces = true
|
||||
}
|
||||
}
|
||||
|
||||
#############################
|
||||
### ENVIRONMENT VARIABLES ###
|
||||
#############################
|
||||
# See https://wiki.hypr.land/Configuring/Environment-variables/
|
||||
env = HYPRSHOT_DIR,/home/krolyxon/pix/ss/
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
env = GTK_THEME,Arc-Dark
|
||||
|
||||
# XDG Specifications
|
||||
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = XDG_SESSION_DESKTOP,Hyprland
|
||||
|
||||
# Toolkit
|
||||
env = GDK_BACKEND,wayland,x11,* # GTK: Use Wayland if available; if not, try X11 and then any other GDK backend.
|
||||
env = QT_QPA_PLATFORM,wayland;xcb # Qt: Use Wayland if available, fall back to X11 if not
|
||||
env = SDL_VIDEODRIVER,Wayland # Run SDL2 applications on Wayland. Remove or set to x11 if games that provide older versions of SDL cause compatibility issues
|
||||
env = CLUTTER_BACKEND,wayland # Clutter applications to try and use the Wayland backend
|
||||
|
||||
# Nvidia
|
||||
# env = GBM_BACKEND,nvidia-drm
|
||||
# env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||
# env = LIBVA_DRIVER_NAME,nvidia
|
||||
|
||||
#######################
|
||||
### PLUGIN SETTINGS ###
|
||||
#######################
|
||||
plugin {
|
||||
split-monitor-workspaces {
|
||||
count = 10
|
||||
keep_focused = 1
|
||||
enable_notifications = 0
|
||||
enable_persistent_workspaces = 1
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
###################
|
||||
### PERMISSIONS ###
|
||||
###################
|
||||
ecosystem {
|
||||
enforce_permissions = 1
|
||||
}
|
||||
|
||||
permission = /usr/(bin|local/bin)/grim, screencopy, allow
|
||||
permission = /usr/(bin|local/bin)/hyprlock, screencopy, allow
|
||||
permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
|
||||
permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
|
||||
permission = ${lib.escapeRegex (lib.getExe config.programs.hyprlock.package)}, screencopy, allow
|
||||
|
||||
|
||||
#####################
|
||||
### LOOK AND FEEL ###
|
||||
#####################
|
||||
general {
|
||||
gaps_in = 5
|
||||
gaps_out = 5
|
||||
border_size = 2
|
||||
resize_on_border = false
|
||||
allow_tearing = false
|
||||
# col.active_border = rgba(7da6ffee)
|
||||
# col.inactive_border = rgba(888e8eaa)
|
||||
col.active_border = rgb(8aadf4) rgb(24273A) rgb(24273A) rgb(8aadf4) 45deg
|
||||
col.inactive_border = rgb(24273A) rgb(24273A) rgb(24273A) rgb(27273A) 45deg
|
||||
layout = master
|
||||
}
|
||||
|
||||
decoration {
|
||||
rounding = 8
|
||||
|
||||
|
||||
# blur {
|
||||
# enabled = false
|
||||
# size = 3
|
||||
# passes = 1
|
||||
# }
|
||||
|
||||
|
||||
# blur {
|
||||
# enabled = true
|
||||
# size = 3
|
||||
# passes = 3
|
||||
# new_optimizations = true
|
||||
# vibrancy = 0.1696
|
||||
# ignore_opacity = true
|
||||
# }
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = yes
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
animation = windows, 1, 7, myBezier
|
||||
animation = windowsOut, 1, 7, default, popin 80%
|
||||
animation = border, 1, 10, default
|
||||
animation = borderangle, 1, 8, default
|
||||
animation = fade, 1, 7, default
|
||||
animation = workspaces, 1, 6, default
|
||||
}
|
||||
|
||||
# Ref https://wiki.hypr.land/Configuring/Workspace-Rules/
|
||||
# "Smart gaps" / "No gaps when only"
|
||||
# uncomment all if you wish to use that.
|
||||
# workspace = w[tv1], gapsout:0, gapsin:0
|
||||
# workspace = f[1], gapsout:0, gapsin:0
|
||||
# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrule = bordersize 0, floating:0, onworkspace:f[1]
|
||||
# windowrule = rounding 0, floating:0, onworkspace:f[1]
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
pseudotile = true# Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true # You probably want this
|
||||
}
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Master-Layout/ for more
|
||||
master {
|
||||
new_status = master
|
||||
new_on_top = true
|
||||
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#misc
|
||||
misc {
|
||||
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = true# If true disables the random hyprland logo / anime girl background. :(
|
||||
disable_splash_rendering = true
|
||||
|
||||
mouse_move_enables_dpms = true
|
||||
key_press_enables_dpms = true
|
||||
|
||||
vrr = 0 # Disable adaptive sync
|
||||
}
|
||||
|
||||
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#input
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad {
|
||||
natural_scroll = false
|
||||
}
|
||||
|
||||
repeat_delay = 300
|
||||
repeat_rate = 50
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#gestures
|
||||
gestures {
|
||||
workspace_swipe = false
|
||||
}
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more
|
||||
device {
|
||||
name = epic-mouse-v1
|
||||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
|
||||
###################
|
||||
### KEYBINDINGS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Keywords/
|
||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||
|
||||
# Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more
|
||||
bind = $mainMod, Return, exec, $terminal
|
||||
bind = $mainMod SHIFT, X, killactive,
|
||||
bind = $mainMod SHIFT, Q, exit,
|
||||
bind = $mainMod, F, Fullscreen
|
||||
bind = $mainMod SHIFT, R, togglefloating,
|
||||
bind = $mainMod, R, exec, $menu
|
||||
bind = $mainMod SHIFT, P, pseudo, # dwindle
|
||||
bind = $mainMod, J, togglesplit, # dwindle
|
||||
binde = $mainMod, tab, cyclenext, prev
|
||||
bind = $mainMod, b, exec, killall waybar || waybar
|
||||
bind = $mainMod, grave, exec, rofiunicode
|
||||
bind = $mainMod, escape, exec, sysact
|
||||
|
||||
# Applications
|
||||
bind = $mainMod, W, exec, $browser
|
||||
|
||||
# Music Controls
|
||||
bind = $mainMod, m, exec, $terminal -e "ncmpcpp"
|
||||
bind = $mainMod, p, exec, mpc toggle
|
||||
binde = $mainMod, comma, exec, mpc seek -10
|
||||
binde = $mainMod, period, exec, mpc seek +10
|
||||
|
||||
# Swap current focused window with master
|
||||
bind = $mainMod, space, layoutmsg, swapwithmaster
|
||||
|
||||
# Resize windows with h/j/k/l
|
||||
binde = $mainMod, h, resizeactive, -30 0
|
||||
binde = $mainMod, l, resizeactive, 30 0
|
||||
binde = $mainMod, k, resizeactive, 0 -30
|
||||
binde = $mainMod, j, resizeactive, 0 30
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, split-workspace, 1
|
||||
bind = $mainMod, 2, split-workspace, 2
|
||||
bind = $mainMod, 3, split-workspace, 3
|
||||
bind = $mainMod, 4, split-workspace, 4
|
||||
bind = $mainMod, 5, split-workspace, 5
|
||||
bind = $mainMod, 6, split-workspace, 6
|
||||
bind = $mainMod, 7, split-workspace, 7
|
||||
bind = $mainMod, 8, split-workspace, 8
|
||||
bind = $mainMod, 9, split-workspace, 9
|
||||
bind = $mainMod, 0, split-workspace, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, split-movetoworkspacesilent, 1
|
||||
bind = $mainMod SHIFT, 2, split-movetoworkspacesilent, 2
|
||||
bind = $mainMod SHIFT, 3, split-movetoworkspacesilent, 3
|
||||
bind = $mainMod SHIFT, 4, split-movetoworkspacesilent, 4
|
||||
bind = $mainMod SHIFT, 5, split-movetoworkspacesilent, 5
|
||||
bind = $mainMod SHIFT, 6, split-movetoworkspacesilent, 6
|
||||
bind = $mainMod SHIFT, 7, split-movetoworkspacesilent, 7
|
||||
bind = $mainMod SHIFT, 8, split-movetoworkspacesilent, 8
|
||||
bind = $mainMod SHIFT, 9, split-movetoworkspacesilent, 9
|
||||
bind = $mainMod SHIFT, 0, split-movetoworkspacesilent, 10
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
bind = $mainMod, S, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
# Have scratchpad like DWM which opens alacritty in special workspace
|
||||
workspace = special:h, on-created-empty: alacritty
|
||||
bind = $mainMod SHIFT, Return, togglespecialworkspace, h
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Window-Rules/ for more
|
||||
# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
|
||||
|
||||
# Example windowrule
|
||||
# windowrule = float,class:^(kitty)$,title:^(kitty)$
|
||||
|
||||
# Ignore maximize requests from apps. You'll probably like this.
|
||||
windowrule = suppressevent maximize, class:.*
|
||||
|
||||
# Fix some dragging issues with XWayland
|
||||
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
source = $HOME/.config/hypr/mocha.conf
|
||||
|
||||
$accent = $mauve
|
||||
$accentAlpha = $mauveAlpha
|
||||
$font = JetBrainsMono Nerd Font
|
||||
|
||||
# GENERAL
|
||||
general {
|
||||
hide_cursor = true
|
||||
}
|
||||
|
||||
# BACKGROUND
|
||||
background {
|
||||
monitor =
|
||||
path = $HOME/.config/background
|
||||
blur_passes = 0
|
||||
color = $base
|
||||
}
|
||||
|
||||
# LAYOUT
|
||||
label {
|
||||
monitor =
|
||||
text = Layout: $LAYOUT
|
||||
color = $text
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
position = 30, -30
|
||||
halign = left
|
||||
valign = top
|
||||
}
|
||||
|
||||
# TIME
|
||||
label {
|
||||
monitor =
|
||||
text = $TIME
|
||||
color = $text
|
||||
font_size = 90
|
||||
font_family = $font
|
||||
position = -30, 0
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# DATE
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:43200000] date +"%A, %d %B %Y"
|
||||
color = $text
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
position = -30, -150
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# FINGERPRINT
|
||||
{
|
||||
monitor = "";
|
||||
text = "$FPRINTPROMPT";
|
||||
color = "$text";
|
||||
font_size = 14;
|
||||
font_family = $font;
|
||||
position = "0, -107";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
|
||||
# USER AVATAR
|
||||
image {
|
||||
monitor =
|
||||
path = $HOME/.face
|
||||
size = 100
|
||||
border_color = $accent
|
||||
position = 0, 75
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# INPUT FIELD
|
||||
input-field {
|
||||
monitor =
|
||||
size = 300, 60
|
||||
outline_thickness = 4
|
||||
dots_size = 0.2
|
||||
dots_spacing = 0.2
|
||||
dots_center = true
|
||||
outer_color = $accent
|
||||
inner_color = $surface0
|
||||
font_color = $text
|
||||
fade_on_empty = false
|
||||
placeholder_text = <span foreground="##$textAlpha"><i> Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>
|
||||
hide_input = false
|
||||
check_color = $accent
|
||||
fail_color = $red
|
||||
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
|
||||
capslock_color = $yellow
|
||||
position = 0, -47
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
preload = /home/krolyxon/pix/wallpapers/onedarkwallpapers/19.png
|
||||
wallpaper = ,/home/krolyxon/pix/wallpapers/onedarkwallpapers/19.png
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
|
||||
$rosewater = rgb(f5e0dc)
|
||||
$rosewaterAlpha = f5e0dc
|
||||
|
||||
$flamingo = rgb(f2cdcd)
|
||||
$flamingoAlpha = f2cdcd
|
||||
|
||||
$pink = rgb(f5c2e7)
|
||||
$pinkAlpha = f5c2e7
|
||||
|
||||
$mauve = rgb(cba6f7)
|
||||
$mauveAlpha = cba6f7
|
||||
|
||||
$red = rgb(f38ba8)
|
||||
$redAlpha = f38ba8
|
||||
|
||||
$maroon = rgb(eba0ac)
|
||||
$maroonAlpha = eba0ac
|
||||
|
||||
$peach = rgb(fab387)
|
||||
$peachAlpha = fab387
|
||||
|
||||
$yellow = rgb(f9e2af)
|
||||
$yellowAlpha = f9e2af
|
||||
|
||||
$green = rgb(a6e3a1)
|
||||
$greenAlpha = a6e3a1
|
||||
|
||||
$teal = rgb(94e2d5)
|
||||
$tealAlpha = 94e2d5
|
||||
|
||||
$sky = rgb(89dceb)
|
||||
$skyAlpha = 89dceb
|
||||
|
||||
$sapphire = rgb(74c7ec)
|
||||
$sapphireAlpha = 74c7ec
|
||||
|
||||
$blue = rgb(89b4fa)
|
||||
$blueAlpha = 89b4fa
|
||||
|
||||
$lavender = rgb(b4befe)
|
||||
$lavenderAlpha = b4befe
|
||||
|
||||
$text = rgb(cdd6f4)
|
||||
$textAlpha = cdd6f4
|
||||
|
||||
$subtext1 = rgb(bac2de)
|
||||
$subtext1Alpha = bac2de
|
||||
|
||||
$subtext0 = rgb(a6adc8)
|
||||
$subtext0Alpha = a6adc8
|
||||
|
||||
$overlay2 = rgb(9399b2)
|
||||
$overlay2Alpha = 9399b2
|
||||
|
||||
$overlay1 = rgb(7f849c)
|
||||
$overlay1Alpha = 7f849c
|
||||
|
||||
$overlay0 = rgb(6c7086)
|
||||
$overlay0Alpha = 6c7086
|
||||
|
||||
$surface2 = rgb(585b70)
|
||||
$surface2Alpha = 585b70
|
||||
|
||||
$surface1 = rgb(45475a)
|
||||
$surface1Alpha = 45475a
|
||||
|
||||
$surface0 = rgb(313244)
|
||||
$surface0Alpha = 313244
|
||||
|
||||
$base = rgb(1e1e2e)
|
||||
$baseAlpha = 1e1e2e
|
||||
|
||||
$mantle = rgb(181825)
|
||||
$mantleAlpha = 181825
|
||||
|
||||
$crust = rgb(11111b)
|
||||
$crustAlpha = 11111b
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
profile laptop-only {
|
||||
output eDP-1 {
|
||||
enable
|
||||
mode 1920x1080
|
||||
scale 1
|
||||
position 0,0
|
||||
}
|
||||
}
|
||||
|
||||
profile docked {
|
||||
output eDP-1 {
|
||||
mode 1920x1080
|
||||
scale 1
|
||||
position 0,0
|
||||
}
|
||||
|
||||
output HDMI-A-1 {
|
||||
mode 1920x1080
|
||||
scale 1
|
||||
position 1920,0
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
[Default Applications]
|
||||
text/x-shellscript=text.desktop;
|
||||
x-scheme-handler/magnet=torrent.desktop;
|
||||
application/x-bittorrent=torrent.desktop;
|
||||
text/plain=nvim.desktop
|
||||
application/postscript=pdf.desktop;
|
||||
application/pdf=pdf.desktop;
|
||||
image/png=img.desktop;
|
||||
image/jpeg=img.desktop;
|
||||
image/gif=img.desktop;
|
||||
application/rss+xml=rss.desktop
|
||||
video/x-matroska=video.desktop
|
||||
x-scheme-handler/lbry=lbry.desktop
|
||||
inode/directory=file.desktop
|
||||
x-scheme-handler/tonsite=org.telegram.desktop.desktop
|
||||
x-scheme-handler/http=zen.desktop
|
||||
x-scheme-handler/https=zen.desktop
|
||||
x-scheme-handler/chrome=zen.desktop
|
||||
text/html=zen.desktop
|
||||
application/x-extension-htm=zen.desktop
|
||||
application/x-extension-html=zen.desktop
|
||||
application/x-extension-shtml=zen.desktop
|
||||
application/xhtml+xml=zen.desktop
|
||||
application/x-extension-xhtml=zen.desktop
|
||||
application/x-extension-xht=zen.desktop
|
||||
|
||||
[Added Associations]
|
||||
x-scheme-handler/tonsite=org.telegram.desktop.desktop;
|
||||
x-scheme-handler/http=zen.desktop;
|
||||
x-scheme-handler/https=zen.desktop;
|
||||
x-scheme-handler/chrome=zen.desktop;
|
||||
text/html=zen.desktop;
|
||||
application/x-extension-htm=zen.desktop;
|
||||
application/x-extension-html=zen.desktop;
|
||||
application/x-extension-shtml=zen.desktop;
|
||||
application/xhtml+xml=zen.desktop;
|
||||
application/x-extension-xhtml=zen.desktop;
|
||||
application/x-extension-xht=zen.desktop;
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
db_file "~/.config/mpd/database"
|
||||
music_directory "~/music"
|
||||
playlist_directory "~/.config/mpd/playlists"
|
||||
|
||||
auto_update "yes"
|
||||
bind_to_address "127.0.0.1"
|
||||
port "6600"
|
||||
restore_paused "yes"
|
||||
max_output_buffer_size "16384"
|
||||
|
||||
audio_output {
|
||||
# type "pulse"
|
||||
# name "pulse"
|
||||
#type "alsa"
|
||||
#name "ALSA"
|
||||
type "pipewire"
|
||||
name "PipeWire Sound Server"
|
||||
}
|
||||
|
||||
audio_output {
|
||||
type "fifo"
|
||||
name "Visualizer feed"
|
||||
path "/tmp/mpd.fifo"
|
||||
format "44100:16:2"
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
# Normalize audio.
|
||||
F1 af toggle "dynaudnorm=g=5:f=250:r=0.9:p=0.5"
|
||||
|
||||
# seek commands
|
||||
l seek 5
|
||||
h seek -5
|
||||
j seek -60
|
||||
k seek 60
|
||||
S cycle sub
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
# PLAYER
|
||||
# ---
|
||||
# Use GPU-accelerated video output by default.
|
||||
vo=gpu
|
||||
# Enable best HW decoder, turn off software decoding.
|
||||
hwdec=auto
|
||||
# Keep the player open when a file's end is reached.
|
||||
keep-open=yes
|
||||
# Color log messages on the terminal.
|
||||
msg-color=yes
|
||||
# Prepend module name to log messages.
|
||||
msg-module=yes
|
||||
# Display progress bar on the terminal.
|
||||
term-osd-bar=yes
|
||||
# Autohide cursor after 1s.
|
||||
cursor-autohide=1000
|
||||
# Use large seekable RAM cache even for local input.
|
||||
#cache=yes
|
||||
#cache-secs=300
|
||||
# Use extra large RAM cache, needs "cache=yes" to make it useful.
|
||||
#demuxer-max-bytes=1800M
|
||||
#demuxer-max-back-bytes=1200M
|
||||
# Disabling of decoder framedrop during hr-seek.
|
||||
hr-seek-framedrop=no
|
||||
|
||||
# AUDIO
|
||||
# ---
|
||||
volume=100
|
||||
volume-max=200
|
||||
|
||||
# SCREENSHOT
|
||||
screenshot-format=png
|
||||
# screenshot-directory="~/pix/ss/mpv" # Output directory
|
||||
screenshot-template="%f-%wH.%wM.%wS.%wT-#%#00n"
|
||||
|
||||
# SUBTITLES
|
||||
# ---
|
||||
# Detect all subtitles.
|
||||
sub-auto=all
|
||||
# External subs don't have to match file name exactly to autoload.
|
||||
sub-auto=fuzzy
|
||||
# Blend subtitles directly onto upscaled video frames.
|
||||
blend-subtitles=yes
|
||||
# Try to correctly show embedded subs when seeking.
|
||||
demuxer-mkv-subtitle-preroll=yes
|
||||
# Use embedded fonts for SSA/ASS subs.
|
||||
embeddedfonts=yes
|
||||
# Backward compatibility for vsfilter fansubs.
|
||||
sub-ass-use-video-data=all
|
||||
# Search for external subs in these relative subdirectories.
|
||||
sub-file-paths-append=ass
|
||||
sub-file-paths-append=srt
|
||||
sub-file-paths-append=sub
|
||||
sub-file-paths-append=subs
|
||||
sub-file-paths-append=subtitles
|
||||
|
||||
# FILE-TYPE PROFILES
|
||||
# ---
|
||||
[extension.gif]
|
||||
cache=no
|
||||
loop-file=yes
|
||||
no-pause
|
||||
|
|
@ -0,0 +1,475 @@
|
|||
##############################################################
|
||||
## This is the example bindings file. Copy it to ##
|
||||
## ~/.ncmpcpp/bindings or $XDG_CONFIG_HOME/ncmpcpp/bindings ##
|
||||
## and set up your preferences ##
|
||||
##############################################################
|
||||
#
|
||||
#def_key "mouse"
|
||||
# mouse_event
|
||||
#
|
||||
#def_key "up"
|
||||
# scroll_up
|
||||
#
|
||||
#def_key "shift-up"
|
||||
# select_item
|
||||
# scroll_up
|
||||
#
|
||||
#def_key "down"
|
||||
# scroll_down
|
||||
#
|
||||
#def_key "shift-down"
|
||||
# select_item
|
||||
# scroll_down
|
||||
#
|
||||
#def_key "["
|
||||
# scroll_up_album
|
||||
#
|
||||
#def_key "]"
|
||||
# scroll_down_album
|
||||
#
|
||||
#def_key "{"
|
||||
# scroll_up_artist
|
||||
#
|
||||
#def_key "}"
|
||||
# scroll_down_artist
|
||||
#
|
||||
#def_key "page_up"
|
||||
# page_up
|
||||
#
|
||||
#def_key "page_down"
|
||||
# page_down
|
||||
#
|
||||
#def_key "home"
|
||||
# move_home
|
||||
#
|
||||
#def_key "end"
|
||||
# move_end
|
||||
#
|
||||
#def_key "insert"
|
||||
# select_item
|
||||
#
|
||||
#def_key "enter"
|
||||
# enter_directory
|
||||
#
|
||||
#def_key "enter"
|
||||
# toggle_output
|
||||
#
|
||||
#def_key "enter"
|
||||
# run_action
|
||||
#
|
||||
#def_key "enter"
|
||||
# play_item
|
||||
#
|
||||
#def_key "space"
|
||||
# add_item_to_playlist
|
||||
#
|
||||
#def_key "space"
|
||||
# toggle_lyrics_update_on_song_change
|
||||
#
|
||||
#def_key "space"
|
||||
# toggle_visualization_type
|
||||
#
|
||||
#def_key "delete"
|
||||
# delete_playlist_items
|
||||
#
|
||||
#def_key "delete"
|
||||
# delete_browser_items
|
||||
#
|
||||
#def_key "delete"
|
||||
# delete_stored_playlist
|
||||
#
|
||||
#def_key "right"
|
||||
# next_column
|
||||
#
|
||||
#def_key "right"
|
||||
# slave_screen
|
||||
#
|
||||
#def_key "right"
|
||||
# volume_up
|
||||
#
|
||||
#def_key "+"
|
||||
# volume_up
|
||||
#
|
||||
#def_key "left"
|
||||
# previous_column
|
||||
#
|
||||
#def_key "left"
|
||||
# master_screen
|
||||
#
|
||||
#def_key "left"
|
||||
# volume_down
|
||||
#
|
||||
#def_key "-"
|
||||
# volume_down
|
||||
#
|
||||
#def_key ":"
|
||||
# execute_command
|
||||
#
|
||||
#def_key "tab"
|
||||
# next_screen
|
||||
#
|
||||
#def_key "shift-tab"
|
||||
# previous_screen
|
||||
#
|
||||
#def_key "f1"
|
||||
# show_help
|
||||
#
|
||||
#def_key "1"
|
||||
# show_playlist
|
||||
#
|
||||
#def_key "2"
|
||||
# show_browser
|
||||
#
|
||||
#def_key "2"
|
||||
# change_browse_mode
|
||||
#
|
||||
#def_key "3"
|
||||
# show_search_engine
|
||||
#
|
||||
#def_key "3"
|
||||
# reset_search_engine
|
||||
#
|
||||
#def_key "4"
|
||||
# show_media_library
|
||||
#
|
||||
#def_key "4"
|
||||
# toggle_media_library_columns_mode
|
||||
#
|
||||
#def_key "5"
|
||||
# show_playlist_editor
|
||||
#
|
||||
#def_key "6"
|
||||
# show_tag_editor
|
||||
#
|
||||
#def_key "7"
|
||||
# show_outputs
|
||||
#
|
||||
#def_key "8"
|
||||
# show_visualizer
|
||||
#
|
||||
#def_key "="
|
||||
# show_clock
|
||||
#
|
||||
#def_key "@"
|
||||
# show_server_info
|
||||
#
|
||||
#def_key "s"
|
||||
# stop
|
||||
#
|
||||
#def_key "p"
|
||||
# pause
|
||||
#
|
||||
#def_key ">"
|
||||
# next
|
||||
#
|
||||
#def_key "<"
|
||||
# previous
|
||||
#
|
||||
#def_key "ctrl-h"
|
||||
# jump_to_parent_directory
|
||||
#
|
||||
#def_key "ctrl-h"
|
||||
# replay_song
|
||||
#
|
||||
#def_key "backspace"
|
||||
# jump_to_parent_directory
|
||||
#
|
||||
#def_key "backspace"
|
||||
# replay_song
|
||||
#
|
||||
#def_key "f"
|
||||
# seek_forward
|
||||
#
|
||||
#def_key "b"
|
||||
# seek_backward
|
||||
#
|
||||
#def_key "r"
|
||||
# toggle_repeat
|
||||
#
|
||||
#def_key "z"
|
||||
# toggle_random
|
||||
#
|
||||
#def_key "y"
|
||||
# save_tag_changes
|
||||
#
|
||||
#def_key "y"
|
||||
# start_searching
|
||||
#
|
||||
#def_key "y"
|
||||
# toggle_single
|
||||
#
|
||||
#def_key "R"
|
||||
# toggle_consume
|
||||
#
|
||||
#def_key "Y"
|
||||
# toggle_replay_gain_mode
|
||||
#
|
||||
#def_key "T"
|
||||
# toggle_add_mode
|
||||
#
|
||||
#def_key "|"
|
||||
# toggle_mouse
|
||||
#
|
||||
#def_key "#"
|
||||
# toggle_bitrate_visibility
|
||||
#
|
||||
#def_key "Z"
|
||||
# shuffle
|
||||
#
|
||||
#def_key "x"
|
||||
# toggle_crossfade
|
||||
#
|
||||
#def_key "X"
|
||||
# set_crossfade
|
||||
#
|
||||
#def_key "u"
|
||||
# update_database
|
||||
#
|
||||
#def_key "ctrl-s"
|
||||
# sort_playlist
|
||||
#
|
||||
#def_key "ctrl-s"
|
||||
# toggle_browser_sort_mode
|
||||
#
|
||||
#def_key "ctrl-s"
|
||||
# toggle_media_library_sort_mode
|
||||
#
|
||||
#def_key "ctrl-r"
|
||||
# reverse_playlist
|
||||
#
|
||||
#def_key "ctrl-f"
|
||||
# apply_filter
|
||||
#
|
||||
#def_key "ctrl-_"
|
||||
# select_found_items
|
||||
#
|
||||
#def_key "/"
|
||||
# find
|
||||
#
|
||||
#def_key "/"
|
||||
# find_item_forward
|
||||
#
|
||||
#def_key "?"
|
||||
# find
|
||||
#
|
||||
#def_key "?"
|
||||
# find_item_backward
|
||||
#
|
||||
#def_key "."
|
||||
# next_found_item
|
||||
#
|
||||
#def_key ","
|
||||
# previous_found_item
|
||||
#
|
||||
#def_key "w"
|
||||
# toggle_find_mode
|
||||
#
|
||||
#def_key "e"
|
||||
# edit_song
|
||||
#
|
||||
#def_key "e"
|
||||
# edit_library_tag
|
||||
#
|
||||
#def_key "e"
|
||||
# edit_library_album
|
||||
#
|
||||
#def_key "e"
|
||||
# edit_directory_name
|
||||
#
|
||||
#def_key "e"
|
||||
# edit_playlist_name
|
||||
#
|
||||
#def_key "e"
|
||||
# edit_lyrics
|
||||
#
|
||||
#def_key "i"
|
||||
# show_song_info
|
||||
#
|
||||
#def_key "I"
|
||||
# show_artist_info
|
||||
#
|
||||
#def_key "g"
|
||||
# jump_to_position_in_song
|
||||
#
|
||||
#def_key "l"
|
||||
# show_lyrics
|
||||
#
|
||||
#def_key "ctrl-v"
|
||||
# select_range
|
||||
#
|
||||
#def_key "v"
|
||||
# reverse_selection
|
||||
#
|
||||
#def_key "V"
|
||||
# remove_selection
|
||||
#
|
||||
#def_key "B"
|
||||
# select_album
|
||||
#
|
||||
#def_key "a"
|
||||
# add_selected_items
|
||||
#
|
||||
#def_key "c"
|
||||
# clear_playlist
|
||||
#
|
||||
#def_key "c"
|
||||
# clear_main_playlist
|
||||
#
|
||||
#def_key "C"
|
||||
# crop_playlist
|
||||
#
|
||||
#def_key "C"
|
||||
# crop_main_playlist
|
||||
#
|
||||
#def_key "m"
|
||||
# move_sort_order_up
|
||||
#
|
||||
#def_key "m"
|
||||
# move_selected_items_up
|
||||
#
|
||||
#def_key "n"
|
||||
# move_sort_order_down
|
||||
#
|
||||
#def_key "n"
|
||||
# move_selected_items_down
|
||||
#
|
||||
#def_key "M"
|
||||
# move_selected_items_to
|
||||
#
|
||||
#def_key "A"
|
||||
# add
|
||||
#
|
||||
#def_key "S"
|
||||
# save_playlist
|
||||
#
|
||||
#def_key "o"
|
||||
# jump_to_playing_song
|
||||
#
|
||||
#def_key "G"
|
||||
# jump_to_browser
|
||||
#
|
||||
#def_key "G"
|
||||
# jump_to_playlist_editor
|
||||
#
|
||||
#def_key "~"
|
||||
# jump_to_media_library
|
||||
#
|
||||
#def_key "E"
|
||||
# jump_to_tag_editor
|
||||
#
|
||||
#def_key "U"
|
||||
# toggle_playing_song_centering
|
||||
#
|
||||
#def_key "P"
|
||||
# toggle_display_mode
|
||||
#
|
||||
#def_key "\\"
|
||||
# toggle_interface
|
||||
#
|
||||
#def_key "!"
|
||||
# toggle_separators_between_albums
|
||||
#
|
||||
#def_key "L"
|
||||
# toggle_lyrics_fetcher
|
||||
#
|
||||
#def_key "F"
|
||||
# fetch_lyrics_in_background
|
||||
#
|
||||
#def_key "alt-l"
|
||||
# toggle_fetching_lyrics_in_background
|
||||
#
|
||||
#def_key "ctrl-l"
|
||||
# toggle_screen_lock
|
||||
#
|
||||
#def_key "`"
|
||||
# toggle_library_tag_type
|
||||
#
|
||||
#def_key "`"
|
||||
# refetch_lyrics
|
||||
#
|
||||
#def_key "`"
|
||||
# add_random_items
|
||||
#
|
||||
#def_key "ctrl-p"
|
||||
# set_selected_items_priority
|
||||
#
|
||||
#def_key "q"
|
||||
# quit
|
||||
#
|
||||
#
|
||||
#def_key "f"
|
||||
# find
|
||||
#def_key "f"
|
||||
# find_item_forward
|
||||
|
||||
def_key "+"
|
||||
show_clock
|
||||
def_key "="
|
||||
volume_up
|
||||
|
||||
def_key "j"
|
||||
scroll_down
|
||||
def_key "k"
|
||||
scroll_up
|
||||
|
||||
def_key "ctrl-u"
|
||||
page_up
|
||||
#push_characters "kkkkkkkkkkkkkkk"
|
||||
def_key "ctrl-d"
|
||||
page_down
|
||||
#push_characters "jjjjjjjjjjjjjjj"
|
||||
def_key "u"
|
||||
page_up
|
||||
#push_characters "kkkkkkkkkkkkkkk"
|
||||
def_key "d"
|
||||
page_down
|
||||
#push_characters "jjjjjjjjjjjjjjj"
|
||||
def_key "h"
|
||||
previous_column
|
||||
def_key "l"
|
||||
next_column
|
||||
|
||||
def_key "."
|
||||
show_lyrics
|
||||
|
||||
def_key "n"
|
||||
next_found_item
|
||||
def_key "N"
|
||||
previous_found_item
|
||||
|
||||
# not used but bound
|
||||
def_key "J"
|
||||
move_sort_order_down
|
||||
def_key "K"
|
||||
move_sort_order_up
|
||||
def_key "h"
|
||||
jump_to_parent_directory
|
||||
def_key "l"
|
||||
enter_directory
|
||||
def_key "l"
|
||||
run_action
|
||||
def_key "l"
|
||||
play_item
|
||||
def_key "m"
|
||||
show_media_library
|
||||
def_key "m"
|
||||
toggle_media_library_columns_mode
|
||||
def_key "t"
|
||||
show_tag_editor
|
||||
def_key "v"
|
||||
show_visualizer
|
||||
def_key "G"
|
||||
move_end
|
||||
def_key "g"
|
||||
move_home
|
||||
#jump_to_position_in_song
|
||||
def_key "U"
|
||||
update_database
|
||||
def_key "s"
|
||||
reset_search_engine
|
||||
def_key "s"
|
||||
show_search_engine
|
||||
def_key "x"
|
||||
delete_playlist_items
|
||||
def_key "P"
|
||||
show_playlist
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
ncmpcpp_directory = "~/.config/ncmpcpp"
|
||||
lyrics_directory = "~/.local/share/lyrics"
|
||||
lyrics_fetchers = tekstowo, justsomelyrics, internet, musixmatch, genius, sing365, metrolyrics, jahlyrics, plyrics, zeneszoveg
|
||||
message_delay_time = "1"
|
||||
visualizer_type = "spectrum"
|
||||
song_list_format = {$4%a - }{%t}|{$8%f$9}$R{$3(%l)$9}
|
||||
song_status_format = $b{{$8"%t"}} $3by {$4%a{ $3in $7%b{ (%y)}} $3}|{$8%f}
|
||||
song_library_format = {%n - }{%t}|{%f}
|
||||
current_item_prefix = $(cyan)$r$b
|
||||
current_item_suffix = $/r$(end)$/b
|
||||
current_item_inactive_column_prefix = $(magenta)$r
|
||||
current_item_inactive_column_suffix = $/r$(end)
|
||||
browser_display_mode = columns
|
||||
media_library_primary_tag = album_artist
|
||||
media_library_albums_split_by_date = no
|
||||
startup_screen = "media_library"
|
||||
jump_to_now_playing_song_at_start = "yes"
|
||||
display_volume_level = yes
|
||||
ignore_leading_the = yes
|
||||
external_editor = nvim
|
||||
use_console_editor = yes
|
||||
|
||||
## Playlist ##
|
||||
playlist_display_mode = columns
|
||||
ask_before_clearing_playlists = no
|
||||
|
||||
## Progress bar ##
|
||||
progressbar_look = "▂▂▂"
|
||||
progressbar_color = black:b
|
||||
progressbar_elapsed_color = blue:b
|
||||
|
||||
## Colors ##
|
||||
colors_enabled = "yes"
|
||||
empty_tag_color = magenta
|
||||
main_window_color = white
|
||||
statusbar_color = red
|
||||
volume_color = "green"
|
||||
statusbar_time_color = cyan:b
|
||||
execute_on_song_change="pkill -RTMIN+11 dwmblocks"
|
||||
|
||||
## Selected tracks ##
|
||||
selected_item_prefix = "* "
|
||||
|
||||
## Seeking ##
|
||||
incremental_seeking = "yes"
|
||||
seek_time = "1"
|
||||
|
||||
## Alternative Interface ##
|
||||
# user_interface = "alternative"
|
||||
alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b
|
||||
alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}
|
||||
|
||||
## Visibility ##
|
||||
header_visibility = "yes"
|
||||
statusbar_visibility = "yes"
|
||||
titles_visibility = "yes"
|
||||
|
||||
## Now Playing ##
|
||||
now_playing_prefix = "> "
|
||||
centered_cursor = "yes"
|
||||
|
||||
# Misc
|
||||
display_bitrate = "yes"
|
||||
enable_window_title = "yes"
|
||||
empty_tag_marker = ""
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
auto-reload yes
|
||||
|
||||
unbind-key j
|
||||
unbind-key k
|
||||
unbind-key h
|
||||
unbind-key H
|
||||
unbind-key L
|
||||
unbind-key c
|
||||
unbind-key ,
|
||||
browser "brave -incognito %u"
|
||||
|
||||
# Feed settings
|
||||
prepopulate-query-feeds yes
|
||||
refresh-on-startup yes
|
||||
|
||||
macro w set browser "mpv %u" ; open-in-browser ; set browser "librewolf %u"
|
||||
|
||||
# bind keys
|
||||
bind-key ; macro-prefix
|
||||
bind-key h quit
|
||||
bind-key BACKSPACE quit
|
||||
bind-key j down
|
||||
bind-key k up
|
||||
bind-key l open
|
||||
bind-key H prev-feed
|
||||
bind-key L next-feed
|
||||
bind-key c toggle-show-read-feeds
|
||||
|
||||
color listnormal color15 default
|
||||
color listnormal_unread color2 default
|
||||
color listfocus_unread color2 color0
|
||||
color listfocus default color0
|
||||
color background default default
|
||||
color article default default
|
||||
color end-of-text-marker color8 default
|
||||
color info color4 color8
|
||||
color hint-separator default color8
|
||||
color hint-description default color8
|
||||
color title color14 color8
|
||||
|
||||
highlight article "^(Feed|Title|Author|Link|Date): .+" color4 default bold
|
||||
highlight article "^(Feed|Title|Author|Link|Date):" color14 default bold
|
||||
|
||||
highlight article "\\((link|image|video)\\)" color8 default
|
||||
highlight article "https?://[^ ]+" color4 default
|
||||
highlight article "\[[0-9]+\]" color6 default bold
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
"---NEWS---"
|
||||
https://news.ycombinator.com/rss
|
||||
https://blog.rust-lang.org/feed.xml "programming"
|
||||
https://www.archlinux.org/feeds/news/ "tech"
|
||||
https://artixlinux.org/feed.php "tech"
|
||||
|
||||
|
||||
https://matklad.github.io/feed.xml "programming"
|
||||
https://fasterthanli.me/index.xml "programming"
|
||||
https://thesquareplanet.com/feed.xml
|
||||
https://gnulinuxindia.org/index.xml
|
||||
https://cedaei.com/index.xml
|
||||
https://krolyxon.xyz/rss.xml
|
||||
https://lukesmith.xyz/rss.xml
|
||||
https://landchad.net/rss
|
||||
https://togglebit.io/atom.xml
|
||||
https://ben.page/rss
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
cache=~/.cache/npm
|
||||
prefix=$~/.local/share/npm
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
import readline
|
||||
readline.write_history_file = lambda *args: None
|
||||
|
|
@ -0,0 +1,209 @@
|
|||
configuration {
|
||||
modi: "run,drun,window";
|
||||
matching: "fuzzy";
|
||||
terminal: "foot";
|
||||
sort: true;
|
||||
case-sensitive: false;
|
||||
disable-history: true;
|
||||
font: "Fira Code 11";
|
||||
window-format: "{w} · {c} · {t}";
|
||||
}
|
||||
|
||||
* {
|
||||
rosewater: #f5e0dc;
|
||||
flamingo: #f2cdcd;
|
||||
pink: #f5c2e7;
|
||||
mauve: #cba6f7;
|
||||
red: #f38ba8;
|
||||
maroon: #eba0ac;
|
||||
peach: #fab387;
|
||||
yellow: #f9e2af;
|
||||
green: #a6e3a1;
|
||||
teal: #94e2d5;
|
||||
sky: #89dceb;
|
||||
sapphire: #74c7ec;
|
||||
blue: #89b4fa;
|
||||
lavender: #b4befe;
|
||||
text: #cdd6f4;
|
||||
subtext1: #bac2de;
|
||||
subtext0: #a6adc8;
|
||||
overlay2: #9399b2;
|
||||
overlay1: #7f849c;
|
||||
overlay0: #6c7086;
|
||||
surface2: #585b70;
|
||||
surface1: #45475a;
|
||||
surface0: #313244;
|
||||
base: #1e1e2e;
|
||||
mantle: #181825;
|
||||
crust: #11111b;
|
||||
}
|
||||
|
||||
* {
|
||||
selected-active-foreground: @background;
|
||||
lightfg: @text;
|
||||
separatorcolor: @foreground;
|
||||
urgent-foreground: @red;
|
||||
alternate-urgent-background: @lightbg;
|
||||
lightbg: @mantle;
|
||||
background-color: transparent;
|
||||
border-color: @foreground;
|
||||
normal-background: @background;
|
||||
selected-urgent-background: @red;
|
||||
alternate-active-background: @lightbg;
|
||||
spacing: 2;
|
||||
alternate-normal-foreground: @foreground;
|
||||
urgent-background: @background;
|
||||
selected-normal-foreground: @lightbg;
|
||||
active-foreground: @blue;
|
||||
background: @base;
|
||||
selected-active-background: @blue;
|
||||
active-background: @background;
|
||||
selected-normal-background: @lightfg;
|
||||
alternate-normal-background: @lightbg;
|
||||
foreground: @text;
|
||||
selected-urgent-foreground: @background;
|
||||
normal-foreground: @foreground;
|
||||
alternate-urgent-foreground: @red;
|
||||
alternate-active-foreground: @blue;
|
||||
|
||||
}
|
||||
element {
|
||||
cursor: pointer;
|
||||
spacing: 5px ;
|
||||
border: 0;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: @normal-background;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: @urgent-background;
|
||||
text-color: @urgent-foreground;
|
||||
}
|
||||
element normal.active {
|
||||
background-color: @active-background;
|
||||
text-color: @active-foreground;
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: @selected-normal-background;
|
||||
text-color: @selected-normal-foreground;
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: @selected-urgent-background;
|
||||
text-color: @selected-urgent-foreground;
|
||||
}
|
||||
element selected.active {
|
||||
background-color: @selected-active-background;
|
||||
text-color: @selected-active-foreground;
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: @alternate-normal-background;
|
||||
text-color: @alternate-normal-foreground;
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: @alternate-urgent-background;
|
||||
text-color: @alternate-urgent-foreground;
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: @alternate-active-background;
|
||||
text-color: @alternate-active-foreground;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
cursor: inherit;
|
||||
highlight: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
size: 1.0000em ;
|
||||
cursor: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
window {
|
||||
padding: 5;
|
||||
background-color: @background;
|
||||
border: 1;
|
||||
// width: 100%;
|
||||
}
|
||||
mainbox {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
message {
|
||||
padding: 1px ;
|
||||
border-color: @separatorcolor;
|
||||
border: 2px dash 0px 0px ;
|
||||
}
|
||||
textbox {
|
||||
text-color: @foreground;
|
||||
}
|
||||
listview {
|
||||
padding: 2px 0px 0px ;
|
||||
scrollbar: true;
|
||||
border-color: @separatorcolor;
|
||||
spacing: 2px ;
|
||||
fixed-height: 0;
|
||||
border: 2px dash 0px 0px ;
|
||||
}
|
||||
scrollbar {
|
||||
width: 4px ;
|
||||
padding: 0;
|
||||
handle-width: 8px ;
|
||||
border: 0;
|
||||
handle-color: @normal-foreground;
|
||||
}
|
||||
sidebar {
|
||||
border-color: @separatorcolor;
|
||||
border: 2px dash 0px 0px ;
|
||||
}
|
||||
button {
|
||||
cursor: pointer;
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
button selected {
|
||||
background-color: @selected-normal-background;
|
||||
text-color: @selected-normal-foreground;
|
||||
}
|
||||
num-filtered-rows {
|
||||
expand: false;
|
||||
text-color: Gray;
|
||||
}
|
||||
num-rows {
|
||||
expand: false;
|
||||
text-color: Gray;
|
||||
}
|
||||
textbox-num-sep {
|
||||
expand: false;
|
||||
str: "/";
|
||||
text-color: Gray;
|
||||
}
|
||||
inputbar {
|
||||
padding: 1px ;
|
||||
spacing: 0px ;
|
||||
text-color: @normal-foreground;
|
||||
children: [ "prompt","textbox-prompt-colon","entry","num-filtered-rows","textbox-num-sep","num-rows","case-indicator" ];
|
||||
}
|
||||
case-indicator {
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
entry {
|
||||
text-color: @normal-foreground;
|
||||
cursor: text;
|
||||
spacing: 0;
|
||||
placeholder-color: Gray;
|
||||
placeholder: "Type to filter";
|
||||
}
|
||||
prompt {
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
margin: 0px 0.3000em 0.0000em 0.0000em ;
|
||||
expand: false;
|
||||
str: ":";
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Use neovim for vim if present
|
||||
[ -x "$(command -v nvim)" ] && alias vim="nvim" vimdiff="nvim -d"
|
||||
|
||||
alias \
|
||||
ls='ls -hN --group-directories-first --color=auto' \
|
||||
lsa='ls -lAhN --group-directories-first --color=auto' \
|
||||
dots='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME' \
|
||||
lf="yazi" \
|
||||
nb="newsboat" \
|
||||
sxiv="nsxiv" \
|
||||
hst="history 1 -1 | cut -c 8- | sort | uniq | fzf | tr -d '\n' | wl-copy" \
|
||||
|
||||
# Verbosity and settings that you pretty much just always are going to want.
|
||||
alias \
|
||||
cp="cp -iv" \
|
||||
mv="mv -iv" \
|
||||
rm="rm -vI" \
|
||||
yt="yt-dlp --embed-metadata -i -o '%(title)s.%(ext)s'" \
|
||||
yta="yt -x -f bestaudio/best" \
|
||||
ytbdl="yt-dlp -f bestvideo+bestaudio -o '%(title)s.%(ext)s' --external-downloader=aria2c" \
|
||||
ytdl="yt-dlp -f best -o '%(title)s.%(ext)s' --external-downloader=aria2c" \
|
||||
tsm="transmission-remote" \
|
||||
tsmd="transmission-daemon"
|
||||
|
||||
# yt="yt-dlp --embed-metadata -i -o '%(title)s.%(ext)s' --external-downloader=aria2c" \
|
||||
|
||||
alias on="tmux new-session -s notes -c ~/dox/brain 'nvim .'"
|
||||
alias todo="nvim ~/dox/brain/Todo.md"
|
||||
|
||||
# Colorize commands when possible.
|
||||
alias \
|
||||
grep="grep --color=auto" \
|
||||
diff="diff --color=auto" \
|
||||
ip="ip -color=auto"
|
||||
|
||||
|
||||
# git aliases
|
||||
alias \
|
||||
ga='git add' \
|
||||
gc='git commit' \
|
||||
gp='git push' \
|
||||
gC='git clone'
|
||||
|
||||
ec() {find ~/.config -type f | fzf | xargs -r $EDITOR ;}
|
||||
es() { cd ~/.local/bin; $EDITOR $(fzf) ;}
|
||||
ef() {fzf | xargs -r -I % $EDITOR % ;}
|
||||
of() {fzf | xargs -r -I % xdg-open % ; }
|
||||
colors() {
|
||||
for COLOR in {1..255}; do
|
||||
echo -en "\e[38;5;${COLOR}m"
|
||||
echo -n "${COLOR} "
|
||||
done
|
||||
echo
|
||||
}
|
||||
# movie() {
|
||||
# filename="$(find ~/movies/ -type f -regex ".*\.\(mkv\|mp4\|mpeg\|avi\|mov\|webm\)" -printf "%f\n" | fzf)"
|
||||
# filepath="$(find ~/movies/ -type f -regex ".*\.\(mkv\|mp4\|mpeg\|avi\|mov\|webm\)")"
|
||||
# mpv "$(grep "$filename" <<< "$filepath")"
|
||||
# }
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
#!/bin/sh
|
||||
|
||||
export EDITOR="nvim"
|
||||
export TERMINAL="alacritty"
|
||||
export TERMINAL_PROG="alacritty"
|
||||
export BROWSER="zen-browser"
|
||||
|
||||
export XDG_CONFIG_HOME="$HOME/.config"
|
||||
export XDG_DATA_HOME="$HOME/.local/share"
|
||||
export XDG_STATE_HOME="$HOME/.local/state"
|
||||
export XDG_CACHE_HOME="$HOME/.cache"
|
||||
|
||||
export XAUTHORITY=/tmp/Xauthority # This causes other window managers to break, who cares anyways?
|
||||
export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc"
|
||||
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
|
||||
export INPUTRC="$XDG_CONFIG_HOME/shell/inputrc"
|
||||
# export GNUPGHOME="$XDG_DATA_HOME/gnupg"
|
||||
export PASSWORD_STORE_DIR="$XDG_DATA_HOME/password-store"
|
||||
export KODI_DATA="$XDG_DATA_HOME/kodi"
|
||||
export CARGO_HOME="$XDG_DATA_HOME/cargo"
|
||||
export RUSTUP_HOME="$XDG_DATA_HOME/rustup"
|
||||
export GTK2_RC_FILES="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-2.0/gtkrc-2.0"
|
||||
#export LESSHISTFILE="-"
|
||||
export WGETRC="${XDG_CONFIG_HOME:-$HOME/.config}/wget/wgetrc"
|
||||
export MANPAGER='nvim +Man!'
|
||||
# export QT_QPA_PLATFORMTHEME="gtk2" # Have QT use gtk2 theme.
|
||||
export __GL_SHADER_DISK_CACHE_PATH=~/.cache/
|
||||
export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc"
|
||||
export PYTHON_HISTORY="$XDG_STATE_HOME/python_history"
|
||||
export JUPYTER_PLATFORM_DIRS="$XDG_CONFIG_HOME/jupyter"
|
||||
export MYSQL_HISTFILE="$XDG_CACHE_HOME/.mariadb_history"
|
||||
export CUDA_CACHE_PATH="$XDG_CACHE_HOME/nv"
|
||||
|
||||
# Other program settings
|
||||
export SUDO_ASKPASS="$HOME/.local/bin/rofipass"
|
||||
export FZF_DEFAULT_OPTS="--layout=reverse --height 40%"
|
||||
export ANDROID_SDK_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android"
|
||||
export ANDROID_HOME="$HOME/Android/Sdk/"
|
||||
export PATH=$PATH:$ANDROID_HOME/tools
|
||||
export PATH=$PATH:$ANDROID_HOME/platform-tools
|
||||
export _JAVA_AWT_WM_NONREPARENTING=1 # Fix for Java applications in dwm
|
||||
export MOZ_USE_XINPUT2="1" # Mozilla smooth scrolling/touchpads.
|
||||
export NPM_CONFIG_USERCONFIG="$HOME/.config/npm/npmrc"
|
||||
export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history
|
||||
|
||||
# Adds `~/.local/bin` to $PATH
|
||||
export PATH="$PATH:${$(find ~/.local/bin -type d -printf %p:)%%:}"
|
||||
# export PATH=$PATH:$HOME/.local/bin
|
||||
export PATH=$PATH:$HOME/.local/pbin # private bin
|
||||
export PATH="$PATH:$XDG_DATA_HOME/cargo/bin"
|
||||
|
||||
export MPD_HOST="localhost"
|
||||
export MPD_PORT="6600"
|
||||
|
||||
# Mpd daemon start
|
||||
[ ! -s ~/.config/mpd/pid ] && mpd
|
||||
|
||||
# Start graphical server on user's current tty if not already running.
|
||||
[ "$(tty)" = "/dev/tty1" ] && ! pidof -s hyprland >/dev/null 2>&1 && exec hyprland
|
||||
|
|
@ -0,0 +1,324 @@
|
|||
* {
|
||||
all: unset;
|
||||
font-size: 14px;
|
||||
font-family: "Ubuntu Nerd Font";
|
||||
transition: 200ms;
|
||||
}
|
||||
|
||||
trough highlight {
|
||||
background: #cdd6f4;
|
||||
}
|
||||
|
||||
scale {
|
||||
margin: 0 7px;
|
||||
}
|
||||
|
||||
scale trough {
|
||||
margin: 0rem 1rem;
|
||||
min-height: 8px;
|
||||
min-width: 70px;
|
||||
border-radius: 12.6px;
|
||||
}
|
||||
|
||||
trough slider {
|
||||
margin: -10px;
|
||||
border-radius: 12.6px;
|
||||
box-shadow: 0 0 2px rgba(0, 0, 0, 0.8);
|
||||
transition: all 0.2s ease;
|
||||
background-color: #89b4fa;
|
||||
}
|
||||
|
||||
trough slider:hover {
|
||||
box-shadow: 0 0 2px rgba(0, 0, 0, 0.8), 0 0 8px #89b4fa;
|
||||
}
|
||||
|
||||
trough {
|
||||
background-color: #313244;
|
||||
}
|
||||
|
||||
/* notifications */
|
||||
.notification-background {
|
||||
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #45475a;
|
||||
border-radius: 12.6px;
|
||||
margin: 18px;
|
||||
background: #181825;
|
||||
color: #cdd6f4;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.notification-background .notification {
|
||||
padding: 7px;
|
||||
border-radius: 12.6px;
|
||||
}
|
||||
|
||||
.notification-background .notification.critical {
|
||||
box-shadow: inset 0 0 7px 0 #f38ba8;
|
||||
}
|
||||
|
||||
.notification .notification-content {
|
||||
margin: 7px;
|
||||
}
|
||||
|
||||
.notification .notification-content overlay {
|
||||
/* icons */
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
.notification-content .summary {
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.notification-content .time {
|
||||
color: #a6adc8;
|
||||
}
|
||||
|
||||
.notification-content .body {
|
||||
color: #bac2de;
|
||||
}
|
||||
|
||||
.notification > *:last-child > * {
|
||||
min-height: 3.4em;
|
||||
}
|
||||
|
||||
.notification-background .close-button {
|
||||
margin: 7px;
|
||||
padding: 2px;
|
||||
border-radius: 6.3px;
|
||||
color: #1e1e2e;
|
||||
background-color: #f38ba8;
|
||||
}
|
||||
|
||||
.notification-background .close-button:hover {
|
||||
background-color: #eba0ac;
|
||||
}
|
||||
|
||||
.notification-background .close-button:active {
|
||||
background-color: #f5c2e7;
|
||||
}
|
||||
|
||||
.notification .notification-action {
|
||||
border-radius: 7px;
|
||||
color: #cdd6f4;
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
margin: 4px;
|
||||
padding: 8px;
|
||||
font-size: 0.2rem; /* controls the button size not text size*/
|
||||
}
|
||||
|
||||
.notification .notification-action {
|
||||
background-color: #313244;
|
||||
}
|
||||
|
||||
.notification .notification-action:hover {
|
||||
background-color: #45475a;
|
||||
}
|
||||
|
||||
.notification .notification-action:active {
|
||||
background-color: #585b70;
|
||||
}
|
||||
|
||||
.notification.critical progress {
|
||||
background-color: #f38ba8;
|
||||
}
|
||||
|
||||
.notification.low progress,
|
||||
.notification.normal progress {
|
||||
background-color: #89b4fa;
|
||||
}
|
||||
|
||||
.notification progress,
|
||||
.notification trough,
|
||||
.notification progressbar {
|
||||
border-radius: 12.6px;
|
||||
padding: 3px 0;
|
||||
}
|
||||
|
||||
/* control center */
|
||||
.control-center {
|
||||
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #313244;
|
||||
border-radius: 12.6px;
|
||||
background-color: #1e1e2e;
|
||||
color: #cdd6f4;
|
||||
padding: 14px;
|
||||
}
|
||||
|
||||
.control-center .notification-background {
|
||||
border-radius: 7px;
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
margin: 4px 10px;
|
||||
}
|
||||
|
||||
.control-center .notification-background .notification {
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
.control-center .notification-background .notification.low {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.control-center .widget-title > label {
|
||||
color: #cdd6f4;
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
.control-center .widget-title button {
|
||||
border-radius: 7px;
|
||||
color: #cdd6f4;
|
||||
background-color: #313244;
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.control-center .widget-title button:hover {
|
||||
background-color: #45475a;
|
||||
}
|
||||
|
||||
.control-center .widget-title button:active {
|
||||
background-color: #585b70;
|
||||
}
|
||||
|
||||
.control-center .notification-group {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
scrollbar slider {
|
||||
margin: -3px;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
scrollbar trough {
|
||||
margin: 2px 0;
|
||||
}
|
||||
|
||||
/* dnd */
|
||||
.widget-dnd {
|
||||
margin-top: 5px;
|
||||
border-radius: 8px;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.widget-dnd > switch {
|
||||
font-size: initial;
|
||||
border-radius: 8px;
|
||||
background: #313244;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.widget-dnd > switch:checked {
|
||||
background: #89b4fa;
|
||||
}
|
||||
|
||||
.widget-dnd > switch slider {
|
||||
background: #45475a;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
/* mpris */
|
||||
.widget-mpris-player {
|
||||
background: #313244;
|
||||
border-radius: 12.6px;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.mpris-overlay {
|
||||
background-color: #313244;
|
||||
opacity: 0.9;
|
||||
padding: 15px 10px;
|
||||
}
|
||||
|
||||
.widget-mpris-album-art {
|
||||
-gtk-icon-size: 100px;
|
||||
border-radius: 12.6px;
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
.widget-mpris-title {
|
||||
font-size: 1.2rem;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.widget-mpris-subtitle {
|
||||
font-size: 1rem;
|
||||
color: #bac2de;
|
||||
}
|
||||
|
||||
.widget-mpris button {
|
||||
border-radius: 12.6px;
|
||||
color: #cdd6f4;
|
||||
margin: 0 5px;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.widget-mpris button image {
|
||||
-gtk-icon-size: 1.8rem;
|
||||
}
|
||||
|
||||
.widget-mpris button:hover {
|
||||
background-color: #313244;
|
||||
}
|
||||
|
||||
.widget-mpris button:active {
|
||||
background-color: #45475a;
|
||||
}
|
||||
|
||||
.widget-mpris button:disabled {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.widget-menubar > box > .menu-button-bar > button > label {
|
||||
font-size: 3rem;
|
||||
padding: 0.5rem 2rem;
|
||||
}
|
||||
|
||||
.widget-menubar > box > .menu-button-bar > :last-child {
|
||||
color: #f38ba8;
|
||||
}
|
||||
|
||||
.power-buttons button:hover,
|
||||
.powermode-buttons button:hover,
|
||||
.screenshot-buttons button:hover {
|
||||
background: #313244;
|
||||
}
|
||||
|
||||
.control-center .widget-label > label {
|
||||
color: #cdd6f4;
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
.widget-buttons-grid {
|
||||
padding-top: 1rem;
|
||||
}
|
||||
|
||||
.widget-buttons-grid > flowbox > flowboxchild > button label {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
|
||||
.widget-volume {
|
||||
padding: 1rem 0;
|
||||
}
|
||||
|
||||
.widget-volume label {
|
||||
color: #74c7ec;
|
||||
padding: 0 1rem;
|
||||
}
|
||||
|
||||
.widget-volume trough highlight {
|
||||
background: #74c7ec;
|
||||
}
|
||||
|
||||
.widget-backlight trough highlight {
|
||||
background: #f9e2af;
|
||||
}
|
||||
|
||||
.widget-backlight label {
|
||||
font-size: 1.5rem;
|
||||
color: #f9e2af;
|
||||
}
|
||||
|
||||
.widget-backlight .KB {
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
.image {
|
||||
padding-right: 0.5rem;
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
# True color settings
|
||||
set -g default-terminal "$TERM"
|
||||
set -ag terminal-overrides ",$TERM:Tc"
|
||||
set -s escape-time 0
|
||||
|
||||
set -g prefix2 C-s
|
||||
unbind C-b
|
||||
set -g prefix2 C-Space
|
||||
|
||||
set -g status-style 'bg=#16161E fg=#ffffff'
|
||||
set-option -g history-limit 5000
|
||||
|
||||
# Numbering Windows and panes
|
||||
set -g base-index 1
|
||||
setw -g pane-base-index 1
|
||||
set -g renumber-windows on
|
||||
|
||||
bind r source-file ~/.config/tmux/tmux.conf;
|
||||
|
||||
# vim keys
|
||||
# setw -g mode-keys vi
|
||||
set-window-option -g mode-keys vi
|
||||
bind -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
|
||||
|
||||
# # Remapping movement keys
|
||||
bind h select-pane -L # Move focus to pane on the left
|
||||
bind j select-pane -D # Move focus to pane above the current one
|
||||
bind k select-pane -U # Move focus to pane below the current one
|
||||
bind l select-pane -R # Move focus to pane on the right
|
||||
bind Space last-window # Toggle between previously focused window
|
||||
|
||||
bind c new-window -c "#{pane_current_path}" # Keep current path
|
||||
|
||||
bind-key -r i run-shell "tmux neww tms"
|
||||
|
||||
# Resizing panes (notes that is using the uppercase here and resize by 5 chars)
|
||||
bind -r C-h resize-pane -L 5
|
||||
bind -r C-j resize-pane -D 5
|
||||
bind -r C-k resize-pane -U 5
|
||||
bind -r C-l resize-pane -R 5
|
||||
|
||||
# TPM
|
||||
## Setup: git clone https://github.com/tmux-plugins/tpm plugins/tpm
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'fabioluciano/tmux-tokyo-night'
|
||||
run '~/.config/tmux/plugins/tpm/tpm'
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
# This file is written by xdg-user-dirs-update
|
||||
# If you want to change or add directories, just edit the line you're
|
||||
# interested in. All local changes will be retained on the next run.
|
||||
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
|
||||
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
||||
# absolute path. No other format is supported.
|
||||
#
|
||||
XDG_DESKTOP_DIR="$HOME/"
|
||||
XDG_DOWNLOAD_DIR="$HOME/dl"
|
||||
XDG_TEMPLATES_DIR="$HOME/"
|
||||
XDG_PUBLICSHARE_DIR="$HOME/"
|
||||
XDG_DOCUMENTS_DIR="$HOME/dox"
|
||||
XDG_MUSIC_DIR="$HOME/music"
|
||||
XDG_PICTURES_DIR="$HOME/pix"
|
||||
XDG_VIDEOS_DIR="$HOME/vids"
|
||||
|
|
@ -0,0 +1,157 @@
|
|||
{
|
||||
// "layer": "top", // Waybar at top layer
|
||||
"position": "top", // Waybar position (top|bottom|left|right)
|
||||
"height": 0, // Waybar height (to be removed for auto height)
|
||||
"width": 0, // Waybar width (0 == auto)
|
||||
"spacing": 0, // Gaps between modules
|
||||
// "output": ["HDMI-A-1", "DP-2", "eDP-1"],
|
||||
// Choose the order of the modules
|
||||
"modules-left": [
|
||||
"hyprland/workspaces"
|
||||
// "hyprland/window",
|
||||
],
|
||||
"modules-center" : [
|
||||
"hyprland/window"
|
||||
],
|
||||
"modules-right": [
|
||||
"custom/gpumode",
|
||||
"tray",
|
||||
"pulseaudio",
|
||||
"battery",
|
||||
"backlight",
|
||||
"cpu",
|
||||
"memory",
|
||||
// "network",
|
||||
"custom/date",
|
||||
"clock",
|
||||
],
|
||||
// Modules configuration
|
||||
"hyprland/workspaces": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"1": "",
|
||||
"2": "",
|
||||
"3": "",
|
||||
"4": "",
|
||||
"5": "",
|
||||
"6": "",
|
||||
"7": "",
|
||||
"8": "",
|
||||
"9": "",
|
||||
"10": "",
|
||||
"11": "",
|
||||
"12": "",
|
||||
"13": "",
|
||||
"14": "",
|
||||
"15": "",
|
||||
"16": "",
|
||||
"17": "",
|
||||
"18": "",
|
||||
"19": "",
|
||||
"20": "",
|
||||
"urgent": "",
|
||||
// "active": "", // focused workspace on current monitor
|
||||
// "visible": "", // focused workspace on other monitors
|
||||
// "default": "",
|
||||
// "default": "", // focused workspace on current monitor
|
||||
// "empty": "" // persistent
|
||||
},
|
||||
"on-scroll-up": "hyprctl dispatch workspace r-1",
|
||||
"on-scroll-down": "hyprctl dispatch workspace r+1",
|
||||
"all-outputs": false,
|
||||
"show-special": false
|
||||
},
|
||||
"hyprland/window": {
|
||||
"format": " {}",
|
||||
"max-length": 50
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 13,
|
||||
"spacing": 10
|
||||
},
|
||||
"clock": {
|
||||
"timezone": "Asia/Kolkata",
|
||||
"tooltip-format": "<tt><big>{calendar}</big></tt>",
|
||||
"format": " {:%H:%M}",
|
||||
"interval": 5
|
||||
},
|
||||
"custom/date": {
|
||||
"timezone": "Asia/Kolkata",
|
||||
"exec": "date +'%a %d %b %Y'",
|
||||
"format": " {}",
|
||||
"interval": 1,
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/gpumode": {
|
||||
"exec": "~/.config/waybar/scripts/gpu_mode.sh",
|
||||
"format": "{}",
|
||||
"interval": "once",
|
||||
"on-click": "~/.config/waybar/scripts/envyswitch.sh",
|
||||
},
|
||||
"cpu": {
|
||||
"format": " {usage:2}%",
|
||||
"interval": 1,
|
||||
"on-click": "$TERMINAL -e htop",
|
||||
},
|
||||
"memory": {
|
||||
"format": " {used:0.1f}G",
|
||||
"interval": 1,
|
||||
"on-click": "$TERMINAL -e htop",
|
||||
},
|
||||
"network": {
|
||||
"interval": 5,
|
||||
"format-wifi": " {essid} ({signalStrength}%)", // Icon: wifi
|
||||
"format-ethernet": " {ifname}: {ipaddr}/{cidr}", // Icon: ethernet
|
||||
"format-disconnected": "⚠ Disconnected",
|
||||
"tooltip-format": "{ifname}: {ipaddr}"
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
"good": 90,
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{icon} {capacity:3}%",
|
||||
"format-charging": " {capacity:3}%",
|
||||
"format-plugged": " {capacity:3}%",
|
||||
"format-alt": "{icon} ",
|
||||
"format-good": "{icon} {capacity:3}%",
|
||||
"format-full": "{icon} {capacity:3}%",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"backlight": {
|
||||
// "device": "intel_backlight",
|
||||
"format": "{icon} {percent}%",
|
||||
"format-icons": ["", "", ""],
|
||||
"on-scroll-up": "brightnessctl set 1%+",
|
||||
"on-scroll-down": "brightnessctl set 1%-",
|
||||
"min-length": 6
|
||||
},
|
||||
"pulseaudio": {
|
||||
"scroll-step": 1, // %, can be a float
|
||||
"format": "{volume:2}% {icon} {format_source}",
|
||||
"format-muted": "{volume:2}% {format_source}",
|
||||
"format-bluetooth": "{volume:2}% {icon} {format_source}",
|
||||
"format-source": "",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"analog": "",
|
||||
"hdmi": "",
|
||||
"headphone": "",
|
||||
"headset": "",
|
||||
"default": [
|
||||
"", // 0 - 25
|
||||
"", // 25 - 50
|
||||
"", // 50 - 75
|
||||
"" // 75 - 100
|
||||
]
|
||||
},
|
||||
"on-click": "pavucontrol",
|
||||
},
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
#!/bin/env bash
|
||||
|
||||
mode="$(printf "Integrated\nHybrid\nNvidia" | rofi -dmenu -case-smart -matching "fuzzy" -p "Select the graphics mode:")"
|
||||
|
||||
# Exit if no selection was made
|
||||
[ -z "$mode" ] && exit 1
|
||||
|
||||
notify-send "Switching to $mode mode..."
|
||||
|
||||
# Map mode to envycontrol argument
|
||||
arg=$(echo "$mode" | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
if sudo -A envycontrol -s "$arg"; then
|
||||
notify-send "Graphics mode set to $mode"
|
||||
else
|
||||
notify-send "Failed to set graphics mode to $mode"
|
||||
fi
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/bash
|
||||
mode=$(envycontrol -q | awk '{print $NF}')
|
||||
|
||||
case "$mode" in
|
||||
integrated)
|
||||
icon=""
|
||||
;;
|
||||
hybrid)
|
||||
icon=""
|
||||
;;
|
||||
nvidia)
|
||||
icon=""
|
||||
;;
|
||||
*)
|
||||
icon=""
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "$icon $mode"
|
||||
|
|
@ -0,0 +1,272 @@
|
|||
/*
|
||||
*
|
||||
* Catppuccin Mocha palette
|
||||
* Maintainer: rubyowo
|
||||
*
|
||||
*/
|
||||
@define-color base #1e1e2e;
|
||||
@define-color mantle #181825;
|
||||
@define-color crust #11111b;
|
||||
|
||||
@define-color text #cdd6f4;
|
||||
@define-color subtext0 #a6adc8;
|
||||
@define-color subtext1 #bac2de;
|
||||
|
||||
@define-color surface0 #313244;
|
||||
@define-color surface1 #45475a;
|
||||
@define-color surface2 #585b70;
|
||||
|
||||
@define-color overlay0 #6c7086;
|
||||
@define-color overlay1 #7f849c;
|
||||
@define-color overlay2 #9399b2;
|
||||
|
||||
@define-color blue #89b4fa;
|
||||
@define-color lavender #b4befe;
|
||||
@define-color sapphire #74c7ec;
|
||||
@define-color sky #89dceb;
|
||||
@define-color teal #94e2d5;
|
||||
@define-color green #a6e3a1;
|
||||
@define-color yellow #f9e2af;
|
||||
@define-color peach #fab387;
|
||||
@define-color maroon #eba0ac;
|
||||
@define-color red #f38ba8;
|
||||
@define-color mauve #cba6f7;
|
||||
@define-color pink #f5c2e7;
|
||||
@define-color flamingo #f2cdcd;
|
||||
@define-color rosewater #f5e0dc;
|
||||
|
||||
* {
|
||||
font-family: "Fira Code", "FontAwesome";
|
||||
font-weight: bold;
|
||||
min-height: 0;
|
||||
/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
|
||||
font-size: 97%;
|
||||
font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
|
||||
padding: 0.03125rem;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
transition-property: background-color;
|
||||
transition-duration: 0.5s;
|
||||
background: transparent;
|
||||
/*border: 2px solid @overlay0;*/
|
||||
/*background: @theme_base_color;*/
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
window#waybar.hidden {
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
#waybar.empty #window {
|
||||
background: none;
|
||||
}
|
||||
|
||||
|
||||
/**************/
|
||||
/* Workspaces */
|
||||
/**************/
|
||||
|
||||
#workspaces {
|
||||
/* border-radius: 8px; */
|
||||
padding: 0 3px 0 8px;
|
||||
margin: 5px 5px 5px 0;
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
/* non-empty workspaces */
|
||||
#workspaces button {
|
||||
background-color: @base;
|
||||
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
|
||||
color: @text;
|
||||
transition: all 0.2s ease;
|
||||
text-shadow: none;
|
||||
|
||||
/* center the icon, no clue why this is necessary */
|
||||
padding-left: 5px;
|
||||
padding-right: 10px;
|
||||
padding-top: 1px;
|
||||
|
||||
box-shadow: inset 0 -1px #e3e3e3;
|
||||
}
|
||||
|
||||
/* the first and last buttons should be rounded */
|
||||
#workspaces button:first-child {
|
||||
border-top-left-radius: 8px;
|
||||
border-bottom-left-radius: 8px;
|
||||
}
|
||||
#workspaces button:last-child {
|
||||
border-top-right-radius: 8px;
|
||||
border-bottom-right-radius: 8px;
|
||||
}
|
||||
|
||||
/* empty persistent workspaces */
|
||||
#workspaces button.empty {
|
||||
background-color: @base;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
/* transition-duration: .3s; */
|
||||
color: @base;
|
||||
background-color: #7da6ff;
|
||||
box-shadow: inset 0 -1px #ffffff;
|
||||
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||
text-shadow: inherit;
|
||||
}
|
||||
|
||||
/* non-empty persistent workspaces */
|
||||
#workspaces button.persistent {
|
||||
background-color: #4c566a;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* active or visible workspaces */
|
||||
#workspaces button.active,
|
||||
#workspaces button.visible {
|
||||
/* background-color: #4c566a; */
|
||||
color: @surface0;
|
||||
background-color: #7da6ff;
|
||||
/* box-shadow: inset 0 -4px #eceff4; */
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
color: #bf616a;
|
||||
}
|
||||
|
||||
/**************/
|
||||
|
||||
#mode {
|
||||
background-color: #64727D;
|
||||
border-bottom: 3px solid #ffffff;
|
||||
}
|
||||
|
||||
#clock,
|
||||
#custom-date,
|
||||
#custom-gpumode,
|
||||
#battery,
|
||||
#backlight,
|
||||
#cpu,
|
||||
#memory,
|
||||
#disk,
|
||||
#temperature,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#wireplumber,
|
||||
#mpris,
|
||||
#custom-media,
|
||||
#tray,
|
||||
#window,
|
||||
#custom-notification,
|
||||
#mpd {
|
||||
background-color: @base;
|
||||
border-radius: 8px;
|
||||
padding: 0 12px 0 12px;
|
||||
margin: 5px 5px 5px 0;
|
||||
}
|
||||
|
||||
/* If workspaces is the leftmost module, omit left margin */
|
||||
.modules-left>widget:first-child>#workspaces {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
/* If workspaces is the rightmost module, omit right margin */
|
||||
.modules-right>widget:last-child>#workspaces {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
#window {
|
||||
color: @text
|
||||
}
|
||||
|
||||
#clock {
|
||||
color: #eceff4;
|
||||
}
|
||||
|
||||
#custom-date {
|
||||
color: #b48ead;
|
||||
}
|
||||
|
||||
#battery {
|
||||
color: #ebcb8b;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
color: @teal
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: #ffffff;
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
background-color: #bf616a;
|
||||
color: #ffffff;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
label:focus {
|
||||
background-color: black;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
color: #bf616a;
|
||||
}
|
||||
|
||||
#memory {
|
||||
color: #a3be8c;
|
||||
}
|
||||
|
||||
/* #disk {
|
||||
background-color: #964B00;
|
||||
} */
|
||||
|
||||
#network {
|
||||
color: #5e81ac;
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
color: #81a1c1;
|
||||
}
|
||||
|
||||
#network.linked {
|
||||
color: #bf616a;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
color: @text;
|
||||
}
|
||||
|
||||
|
||||
#temperature {
|
||||
color: #d08770;
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
color: #bf616a;
|
||||
}
|
||||
|
||||
#tray {
|
||||
color: @subtext0;
|
||||
|
||||
}
|
||||
|
||||
#tray>.passive {
|
||||
-gtk-icon-effect: dim;
|
||||
}
|
||||
|
||||
#tray>.needs-attention {
|
||||
-gtk-icon-effect: highlight;
|
||||
background-color: #bf616a;
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
hsts-file=~/.cache/wget-hsts
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
set sandbox none
|
||||
set statusbar-h-padding 0
|
||||
set statusbar-v-padding 0
|
||||
set page-padding 1
|
||||
set selection-clipboard clipboard
|
||||
map u scroll half-up
|
||||
map d scroll half-down
|
||||
map D toggle_page_mode
|
||||
map r reload
|
||||
map R rotate
|
||||
map K zoom in
|
||||
map J zoom out
|
||||
map i recolor
|
||||
map p print
|
||||
map b toggle_statusbar
|
||||
|
||||
set default-fg rgba(205,214,244,1)
|
||||
set default-bg rgba(30,30,46,1)
|
||||
|
||||
set completion-bg rgba(49,50,68,1)
|
||||
set completion-fg rgba(205,214,244,1)
|
||||
set completion-highlight-bg rgba(203,166,247,1)
|
||||
set completion-highlight-fg rgba(30,30,46,1)
|
||||
set completion-group-bg rgba(24,24,37,1)
|
||||
set completion-group-fg rgba(205,214,244,1)
|
||||
|
||||
set statusbar-fg rgba(205,214,244,1)
|
||||
set statusbar-bg rgba(17,17,27,1)
|
||||
set inputbar-fg rgba(205,214,244,1)
|
||||
set inputbar-bg rgba(30,30,46,1)
|
||||
|
||||
set notification-bg rgba(30,30,46,1)
|
||||
set notification-fg rgba(205,214,244,1)
|
||||
set notification-error-bg rgba(30,30,46,1)
|
||||
set notification-error-fg rgba(243,139,168,1)
|
||||
set notification-warning-bg rgba(30,30,46,1)
|
||||
set notification-warning-fg rgba(249,226,175,1)
|
||||
|
||||
# set recolor "true"
|
||||
set recolor-lightcolor rgba(30,30,46,1)
|
||||
set recolor-darkcolor rgba(205,214,244,1)
|
||||
|
||||
set index-fg rgba(205,214,244,1)
|
||||
set index-bg rgba(30,30,46,1)
|
||||
set index-active-fg rgba(205,214,244,1)
|
||||
set index-active-bg rgba(49,50,68,1)
|
||||
|
||||
set render-loading-bg rgba(30,30,46,1)
|
||||
set render-loading-fg rgba(205,214,244,1)
|
||||
|
||||
set highlight-color rgba(147,153,178,0.3)
|
||||
set highlight-fg rgba(205,214,244,1)
|
||||
set highlight-active-color rgba(203,166,247,0.3)
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
autoload -U colors && colors # Load colors
|
||||
PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b "
|
||||
setopt autocd # Automatically cd into typed directory.
|
||||
stty stop undef # Disable ctrl-s to freeze terminal.
|
||||
|
||||
# History in cache directory:
|
||||
HISTSIZE=10000
|
||||
SAVEHIST=10000
|
||||
HISTFILE=~/.cache/history
|
||||
|
||||
# Load aliases if existent.
|
||||
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc"
|
||||
|
||||
# Basic auto/tab complete:
|
||||
autoload -U compinit
|
||||
zstyle ':completion:*' menu select
|
||||
zmodload zsh/complist
|
||||
compinit
|
||||
_comp_options+=(globdots) # Include hidden files.
|
||||
|
||||
# vi mode
|
||||
bindkey -v
|
||||
export KEYTIMEOUT=1
|
||||
|
||||
# Use vim keys in tab complete menu:
|
||||
bindkey -M menuselect 'h' vi-backward-char
|
||||
bindkey -M menuselect 'k' vi-up-line-or-history
|
||||
bindkey -M menuselect 'l' vi-forward-char
|
||||
bindkey -M menuselect 'j' vi-down-line-or-history
|
||||
bindkey -v '^?' backward-delete-char
|
||||
|
||||
# Change cursor shape for different vi modes.
|
||||
function zle-keymap-select () {
|
||||
case $KEYMAP in
|
||||
vicmd) echo -ne '\e[1 q';; # block
|
||||
viins|main) echo -ne '\e[5 q';; # beam
|
||||
esac
|
||||
}
|
||||
zle -N zle-keymap-select
|
||||
zle-line-init() {
|
||||
zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere)
|
||||
echo -ne "\e[5 q"
|
||||
}
|
||||
zle -N zle-line-init
|
||||
echo -ne '\e[5 q' # Use beam shape cursor on startup.
|
||||
preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt.
|
||||
|
||||
# Edit line in vim with ctrl-e:
|
||||
autoload edit-command-line; zle -N edit-command-line
|
||||
bindkey '^e' edit-command-line
|
||||
|
||||
# Enable searching through history
|
||||
bindkey '^R' history-incremental-pattern-search-backward
|
||||
|
||||
#loeading syntax highlighter and autosgguestions plugin. should be last.
|
||||
source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh 2>/dev/null
|
||||
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
#!/bin/bash
|
||||
|
||||
#bcn, Bluetooth Connect
|
||||
|
||||
|
||||
device_amount=$(bluetoothctl devices | wc -l)
|
||||
|
||||
if [[ $device_amount = 1 ]]; then
|
||||
MAC=$(bluetoothctl devices | awk {'print $2'})
|
||||
[ -z $MAC ] && MAC=NoDeviceFound # Prevents accidental disconnect error
|
||||
else
|
||||
select=$(bluetoothctl devices | awk {'print $3'} | rofi -dmenu -l 10 -fn Monospace-15)
|
||||
MAC=$(bluetoothctl devices | grep $select | awk {'print $2'})
|
||||
[ -z $MAC ] && MAC=NoDeviceFound # Prevents accidental disconnect error
|
||||
fi
|
||||
|
||||
connect=$(bluetoothctl info $MAC | grep Connected: | awk '{print $2}')
|
||||
if [[ $connect = no ]]; then
|
||||
notify-send "Attempting to connect to $select"
|
||||
bluetoothctl connect $MAC || notify-send "Failed to Connect"
|
||||
elif [[ $connect = yes ]]; then
|
||||
notify-send "Attempting to disconnect $select"
|
||||
bluetoothctl disconnect $MAC
|
||||
fi
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/sh
|
||||
mpv --untimed --no-cache --no-osc --no-input-default-bindings --profile=low-latency --input-conf=/dev/null --title=webcam /dev/video0
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
tmpdir=$(mktemp -d)
|
||||
pdflatex -output-directory="$tmpdir" "$1"
|
||||
mv "$tmpdir"/*.pdf .
|
||||
rm -rf "$tmpdir"
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
#!/bin/sh
|
||||
|
||||
# A general, all-purpose extraction script. Not all extraction programs here
|
||||
# are installed by LARBS automatically.
|
||||
#
|
||||
# Default behavior: Extract archive into new directory
|
||||
# Behavior with `-c` option: Extract contents into current directory
|
||||
|
||||
while getopts "hc" o; do case "${o}" in
|
||||
c) extracthere="True" ;;
|
||||
*) printf "Options:\\n -c: Extract archive into current directory rather than a new one.\\n" && exit 1 ;;
|
||||
esac done
|
||||
|
||||
if [ -z "$extracthere" ]; then
|
||||
archive="$(readlink -f "$*")" &&
|
||||
directory="$(echo "$archive" | sed 's/\.[^\/.]*$//')" &&
|
||||
mkdir -p "$directory" &&
|
||||
cd "$directory" || exit 1
|
||||
else
|
||||
archive="$(readlink -f "$(echo "$*" | cut -d' ' -f2)" 2>/dev/null)"
|
||||
fi
|
||||
|
||||
[ -z "$archive" ] && printf "Give archive to extract as argument.\\n" && exit 1
|
||||
|
||||
if [ -f "$archive" ] ; then
|
||||
case "$archive" in
|
||||
*.tar.bz2|*.tbz2) bsdtar -xf "$archive" ;;
|
||||
*.tar.xz) bsdtar -xf "$archive" ;;
|
||||
*.tar.gz|*.tgz) bsdtar -xf "$archive" ;;
|
||||
*.tar.zst) bsdtar -xf "$archive" ;;
|
||||
*.tar) bsdtar -xf "$archive" ;;
|
||||
*.lzma) unlzma "$archive" ;;
|
||||
*.bz2) bunzip2 "$archive" ;;
|
||||
*.rar) unrar x -ad "$archive" ;;
|
||||
*.gz) gunzip "$archive" ;;
|
||||
*.zip) unzip "$archive" ;;
|
||||
*.Z) uncompress "$archive" ;;
|
||||
*.7z) 7z x "$archive" ;;
|
||||
*.xz) unxz "$archive" ;;
|
||||
*.exe) cabextract "$archive" ;;
|
||||
*) printf "extract: '%s' - unknown archive method\\n" "$archive" ;;
|
||||
esac
|
||||
else
|
||||
printf "File \"%s\" not found.\\n" "$archive"
|
||||
fi
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
#!/bin/sh
|
||||
|
||||
madd() {
|
||||
queue="$(mpc playlist)"
|
||||
if [ -z "$queue" ]; then
|
||||
mpc insert "$filename"
|
||||
mpc play
|
||||
else
|
||||
mpc insert "$filename"
|
||||
mpc next
|
||||
fi
|
||||
}
|
||||
|
||||
if [ -t 0 ]; then
|
||||
filename=$(mpc listall | fzf)
|
||||
else
|
||||
filename=$(mpc listall | rofi -dmenu -l 30 -case-smart)
|
||||
fi
|
||||
|
||||
if [ -n "$filename" ]; then
|
||||
madd
|
||||
fi
|
||||
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Gives a rofi -dmenu prompt to mount unmounted drives. If
|
||||
# they're in /etc/fstab, they'll be mounted automatically. Otherwise, you'll
|
||||
# be prompted to give a mountpoint from already existsing directories. If you
|
||||
# input a novel directory, it will prompt you to create that directory.
|
||||
|
||||
getmount() { \
|
||||
[ -z "$chosen" ] && exit 1
|
||||
# shellcheck disable=SC2086
|
||||
mp="$(find $1 2>/dev/null | rofi -dmenu -i -p "Type in mount point.")" || exit 1
|
||||
test -z "$mp" && exit 1
|
||||
if [ ! -d "$mp" ]; then
|
||||
mkdiryn=$(printf "No\\nYes" | rofi -dmenu -i -p "$mp does not exist. Create it?") || exit 1
|
||||
[ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || sudo -A mkdir -p "$mp")
|
||||
fi
|
||||
}
|
||||
|
||||
mountusb() { \
|
||||
chosen="$(echo "$usbdrives" | rofi -dmenu -i -p "Mount which drive?")" || exit 1
|
||||
chosen="$(echo "$chosen" | awk '{print $1}')"
|
||||
sudo -A mount "$chosen" 2>/dev/null && notify-send "💻 USB mounting" "$chosen mounted." && exit 0
|
||||
alreadymounted=$(lsblk -nrpo "name,type,mountpoint" | awk '$3!~/\/boot|\/home$|SWAP/&&length($3)>1{printf "-not ( -path *%s -prune ) ",$3}')
|
||||
getmount "/mnt /media /mount /home -maxdepth 5 -type d $alreadymounted"
|
||||
partitiontype="$(lsblk -no "fstype" "$chosen")"
|
||||
case "$partitiontype" in
|
||||
"vfat") sudo -A mount -t vfat "$chosen" "$mp" -o rw,umask=0000;;
|
||||
"exfat") sudo -A mount "$chosen" "$mp" -o uid="$(id -u)",gid="$(id -g)";;
|
||||
*) sudo -A mount "$chosen" "$mp"; user="$(whoami)"; ug="$(groups | awk '{print $1}')"; sudo -A chown "$user":"$ug" "$mp";;
|
||||
esac
|
||||
notify-send "💻 USB mounting" "$chosen mounted to $mp."
|
||||
}
|
||||
|
||||
usbdrives="$(lsblk -rpo "name,type,size,mountpoint" | grep 'part\|rom' | awk '$4==""{printf "%s (%s)\n",$1,$3}')"
|
||||
|
||||
if [ -z "$usbdrives" ]; then
|
||||
echo "No USB drive detected" && exit
|
||||
else
|
||||
echo "USB drive(s) detected."
|
||||
mountusb
|
||||
fi
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/bash
|
||||
|
||||
|
||||
if [ -t 0 ]; then
|
||||
filename="$(find ~/media/movies/ -type f -regex ".*\.\(mkv\|mp4\|mpeg\|avi\|mov\|webm\)" -printf "%f\n" | sort | fzf)"
|
||||
else
|
||||
filename="$(find ~/media/movies/ -type f -regex ".*\.\(mkv\|mp4\|mpeg\|avi\|mov\|webm\)" -printf "%f\n" | sort | rofi -case-smart -matching "fuzzy" -dmenu -l 25)"
|
||||
fi
|
||||
|
||||
filepath="$(find ~/media/movies/ -type f -regex ".*\.\(mkv\|mp4\|mpeg\|avi\|mov\|webm\)")"
|
||||
mpv "$(grep "$filename" <<< "$filepath")"
|
||||
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Take password prompt from STDIN, print password to STDOUT
|
||||
# the sed piece just removes the colon from the provided
|
||||
# prompt: rofi -p already gives us a colon
|
||||
rofi -dmenu \
|
||||
-password \
|
||||
-no-fixed-num-lines \
|
||||
-p "$(printf "$1" | sed s/://)"
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
|
||||
# The famous "get a menu of emojis to copy" script.
|
||||
|
||||
# Get user selection via dmenu from emoji file.
|
||||
chosen=$(cut -d ';' -f1 ~/.local/share/chars/* | rofi -dmenu -i -l 30 | sed "s/ .*//")
|
||||
|
||||
# Exit if none chosen.
|
||||
[ -z "$chosen" ] && exit
|
||||
|
||||
wtype "$chosen"
|
||||
printf "$chosen" | wl-copy
|
||||
notify-send "'$chosen' copied to clipboard." &
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
#!/bin/sh
|
||||
|
||||
ocr_cmd="wl-copy"
|
||||
|
||||
case "$(printf "a selected area (copy)\ncurrent window (copy)\nfull screen (copy)\na selected area\ncurrent window\nfull screen\na selected area (OCR)" | rofi -dmenu -l 7 -i -p "Screenshot which area?")" in
|
||||
"a selected area (copy)") hyprshot -m region --clipboard-only ;;
|
||||
"current window (copy)") hyprshot -m window --clipboard-only ;;
|
||||
"full screen (copy)") hyprshot -m output --clipboard-only ;;
|
||||
|
||||
"a selected area") hyprshot -m region -o ~/pix/ss -f "pic-selected-$(uuidgen | awk -F- '{printf $2}')-$(date '+%y-%m-%d').png" ;;
|
||||
"current window") hyprshot -m window -o ~/pix/ss -f "pic-window-$(uuidgen | awk -F- '{printf $2}')-$(date '+%y-%m-%d').png" ;;
|
||||
"full screen") hyprshot -m output -o ~/pix/ss -f "pic-full-$(uuidgen | awk -F- '{printf $2}')-$(date '+%y-%m-%d').png" ;;
|
||||
|
||||
"a selected area (OCR)") tmpfile=$(mktemp /tmp/ocr-XXXXXX.png) && \
|
||||
hyprshot -m region -o "$(dirname "$tmpfile")" -f "$(basename "$tmpfile")" && \
|
||||
tesseract "$tmpfile" - -l eng | ${ocr_cmd} && rm "$tmpfile" ;;
|
||||
esac
|
||||
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
#!/bin/bash
|
||||
WALL_DIR="$HOME/pix/wallpapers/onedarkwallpapers/"
|
||||
MODE="random"
|
||||
CUSTOM_PATH=""
|
||||
|
||||
# Parse options
|
||||
while getopts ":mp:" opt; do
|
||||
case $opt in
|
||||
m) MODE="menu" ;;
|
||||
p) MODE="path"; CUSTOM_PATH="$OPTARG" ;;
|
||||
\?) echo "Usage: $0 [-m] [-p /path/to/image]" >&2; exit 1 ;;
|
||||
:) echo "Option -$OPTARG requires an argument." >&2; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Choose wallpaper
|
||||
case $MODE in
|
||||
random)
|
||||
NEW_WALL=$(find "$WALL_DIR" -type f | shuf -n 1)
|
||||
;;
|
||||
path)
|
||||
if [[ -f "$CUSTOM_PATH" ]]; then
|
||||
NEW_WALL="$CUSTOM_PATH"
|
||||
else
|
||||
echo "Error: File not found -> $CUSTOM_PATH" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
menu)
|
||||
WALLPAPER_LIST=$(find "$WALL_DIR" -type f | sort | sed "s|$WALL_DIR||")
|
||||
CHOSEN=$(echo "$WALLPAPER_LIST" | rofi -dmenu -i -p "Choose wallpaper:")
|
||||
if [[ -z "$CHOSEN" ]]; then
|
||||
NEW_WALL=$(find "$WALL_DIR" -type f | shuf -n 1)
|
||||
else
|
||||
NEW_WALL="$WALL_DIR$CHOSEN"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# Apply wallpaper
|
||||
if ! pgrep -x hyprpaper >/dev/null; then
|
||||
# Hyprpaper not running → start with chosen wallpaper
|
||||
cat > ~/.config/hypr/hyprpaper.conf <<EOF
|
||||
preload = $NEW_WALL
|
||||
wallpaper = ,$NEW_WALL
|
||||
EOF
|
||||
hyprpaper &
|
||||
else
|
||||
# Hyprpaper is running → change it live
|
||||
hyprctl hyprpaper preload "$NEW_WALL"
|
||||
hyprctl hyprpaper wallpaper ",$NEW_WALL"
|
||||
fi
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
#!/bin/sh
|
||||
|
||||
export WM="Hyprland"
|
||||
case "$(readlink -f /sbin/init)" in
|
||||
*systemd*) ctl='systemctl' ;;
|
||||
*) ctl='loginctl' ;;
|
||||
esac
|
||||
|
||||
wmpid(){ # Get Hyprland process PID
|
||||
pgrep -o hyprland
|
||||
}
|
||||
|
||||
case "$(printf " lock\n leave $WM\n renew $WM\n hibernate\n reboot\n shutdown\n sleep\n display off" | rofi -dmenu -i -l 15 -p 'Action: ')" in
|
||||
' lock') hyprlock ;;
|
||||
" leave $WM") kill -TERM "$(wmpid)" ;;
|
||||
" renew $WM") hyprctl reload ;;
|
||||
' hibernate') $ctl hibernate -i ;;
|
||||
' sleep') $ctl suspend -i ;;
|
||||
' reboot') $ctl reboot -i ;;
|
||||
' shutdown') $ctl poweroff -i ;;
|
||||
' display off') hyprctl dispatch dpms off ;;
|
||||
*) exit 1 ;;
|
||||
esac
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
#!/bin/env bash
|
||||
|
||||
if [[ $# -eq 1 ]]; then
|
||||
selected=$1;
|
||||
else
|
||||
selected=$(find ~/code/dev ~/code/repos ~/code/rust -mindepth 1 -maxdepth 1 -type d | fzf);
|
||||
fi
|
||||
|
||||
if [[ -z $selected ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
selected_name=$(basename "$selected" | tr . _)
|
||||
tmux_running=$(pgrep tmux)
|
||||
|
||||
if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then
|
||||
tmux new-session -s $selected_name -c $selected
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if ! tmux has-session -t=$selected_name 2> /dev/null; then
|
||||
tmux new-session -ds $selected_name -c $selected
|
||||
fi
|
||||
|
||||
tmux switch-client -t $selected_name
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Starting transmission-daemon if not already running
|
||||
# transmission-daemon sometimes fails to take remote requests in its first moments, hence the sleep.
|
||||
pidof transmission-daemon >/dev/null || (transmission-daemon && notify-send "Starting transmission daemon...")
|
||||
sleep 3
|
||||
|
||||
# adding the Torrent
|
||||
if [ -z "$*" ]; then
|
||||
magnetlink="$(wl-paste)"
|
||||
transmission-remote -a "$magnetlink" && notify-send "🔽 Torrent added."
|
||||
else
|
||||
transmission-remote -a "$@" && notify-send "🔽 Torrent added."
|
||||
fi
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# ufetch-arch - tiny system info for arch
|
||||
|
||||
## INFO
|
||||
|
||||
# user is already defined
|
||||
host="$(cat /etc/hostname)"
|
||||
os='Arch Linux'
|
||||
kernel="$(uname -sr)"
|
||||
uptime="$(uptime -p | sed 's/up //')"
|
||||
packages="$(pacman -Q | wc -l)"
|
||||
shell="$(basename "${SHELL}")"
|
||||
|
||||
## UI DETECTION
|
||||
|
||||
parse_rcs() {
|
||||
for f in "${@}"; do
|
||||
wm="$(tail -n 1 "${f}" 2> /dev/null | cut -d ' ' -f 2)"
|
||||
[ -n "${wm}" ] && echo "${wm}" && return
|
||||
done
|
||||
}
|
||||
|
||||
rcwm="$(parse_rcs "${HOME}/.xinitrc" "${HOME}/.xsession")"
|
||||
|
||||
ui='unknown'
|
||||
uitype='UI'
|
||||
if [ -n "${DE}" ]; then
|
||||
ui="${DE}"
|
||||
uitype='DE'
|
||||
elif [ -n "${WM}" ]; then
|
||||
ui="${WM}"
|
||||
uitype='WM'
|
||||
elif [ -n "${XDG_CURRENT_DESKTOP}" ]; then
|
||||
ui="${XDG_CURRENT_DESKTOP}"
|
||||
uitype='DE'
|
||||
elif [ -n "${DESKTOP_SESSION}" ]; then
|
||||
ui="${DESKTOP_SESSION}"
|
||||
uitype='DE'
|
||||
elif [ -n "${rcwm}" ]; then
|
||||
ui="${rcwm}"
|
||||
uitype='WM'
|
||||
elif [ -n "${XDG_SESSION_TYPE}" ]; then
|
||||
ui="${XDG_SESSION_TYPE}"
|
||||
fi
|
||||
|
||||
ui="$(basename "${ui}")"
|
||||
|
||||
## DEFINE COLORS
|
||||
|
||||
# probably don't change these
|
||||
if [ -x "$(command -v tput)" ]; then
|
||||
bold="$(tput bold)"
|
||||
black="$(tput setaf 0)"
|
||||
red="$(tput setaf 1)"
|
||||
green="$(tput setaf 2)"
|
||||
yellow="$(tput setaf 3)"
|
||||
blue="$(tput setaf 4)"
|
||||
magenta="$(tput setaf 5)"
|
||||
cyan="$(tput setaf 6)"
|
||||
white="$(tput setaf 7)"
|
||||
reset="$(tput sgr0)"
|
||||
fi
|
||||
|
||||
# you can change these
|
||||
lc="${reset}${bold}${blue}" # labels
|
||||
nc="${reset}${bold}${blue}" # user and hostname
|
||||
ic="${reset}" # info
|
||||
c0="${reset}${blue}" # first color
|
||||
|
||||
## OUTPUT
|
||||
|
||||
cat <<EOF
|
||||
|
||||
${c0} /\\ ${nc}${USER}${ic}@${nc}${host}${reset}
|
||||
${c0} / \\ ${lc}OS: ${ic}${os}${reset}
|
||||
${c0} /\\ \\ ${lc}KERNEL: ${ic}${kernel}${reset}
|
||||
${c0} / __ \\ ${lc}UPTIME: ${ic}${uptime}${reset}
|
||||
${c0} / ( ) \\ ${lc}PACKAGES: ${ic}${packages}${reset}
|
||||
${c0} / __| |__\\\\ ${lc}SHELL: ${ic}${shell}${reset}
|
||||
${c0} /.\` \`.\\ ${lc}${uitype}: ${ic}${ui}${reset}
|
||||
|
||||
EOF
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
#!/bin/sh
|
||||
|
||||
# A rofi -dmenu prompt to unmount drives.
|
||||
# Provides you with mounted partitions, select one to unmount.
|
||||
# Drives mounted at /, /boot and /home will not be options to unmount.
|
||||
|
||||
unmountusb() {
|
||||
[ -z "$drives" ] && exit
|
||||
chosen="$(echo "$drives" | rofi -dmenu -i -p "Unmount which drive?")" || exit 1
|
||||
chosen="$(echo "$chosen" | awk '{print $1}')"
|
||||
[ -z "$chosen" ] && exit
|
||||
sudo -A umount "$chosen" && notify-send "💻 USB unmounting" "$chosen unmounted."
|
||||
}
|
||||
|
||||
drives=$(lsblk -nrpo "name,type,size,mountpoint,label" | awk -F':' '{gsub(/ /,":")}$4!~/\/boot|\/efi|\/home$|SWAP/&&length($4)>1{printf "%s (%s) %s\n",$4,$3,$5}')
|
||||
|
||||
if [ -z "$drives" ]; then
|
||||
echo "No drives to unmount." && exit
|
||||
else
|
||||
echo "Unmountable USB drive detected."
|
||||
unmountusb
|
||||
fi
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ -n "$1" ]; then
|
||||
file=$1
|
||||
else
|
||||
file=$(find . -maxdepth 2 -type f | fzf)
|
||||
fi
|
||||
|
||||
[ -z "$file" ] && exit
|
||||
|
||||
# curl -F"file=@$file" 0x0.st | xclip -sel c
|
||||
curl -F"file=@$file" 0.vern.cc | xclip -sel c
|
||||
notify-send "The url has been copied to your clipboard. $(xclip -sel c -o)"
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
#!/usr/bin/env bash
|
||||
set -eu
|
||||
|
||||
# Lists the current directory's files in Vim, so you can edit it and save to rename them
|
||||
# USAGE: vimv [file1 file2]
|
||||
# https://github.com/thameera/vimv
|
||||
|
||||
declare -r FILENAMES_FILE=$(mktemp "${TMPDIR:-/tmp}/vimv.XXX")
|
||||
|
||||
trap '{ rm -f "${FILENAMES_FILE}" ; }' EXIT
|
||||
|
||||
if [ $# -ne 0 ]; then
|
||||
src=( "$@" )
|
||||
else
|
||||
# in this line where is says src=($(ls)), you can change the "ls" to "exa"
|
||||
# if you want the proper number sorting.
|
||||
IFS=$'\r\n' GLOBIGNORE='*' command eval 'src=($(ls))'
|
||||
fi
|
||||
|
||||
for ((i=0;i<${#src[@]};++i)); do
|
||||
echo "${src[i]}" >> "${FILENAMES_FILE}"
|
||||
done
|
||||
|
||||
${EDITOR:-vi} "${FILENAMES_FILE}"
|
||||
|
||||
IFS=$'\r\n' GLOBIGNORE='*' command eval 'dest=($(cat "${FILENAMES_FILE}"))'
|
||||
|
||||
if (( ${#src[@]} != ${#dest[@]} )); then
|
||||
echo "WARN: Number of files changed. Did you delete a line by accident? Aborting.." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
declare -i count=0
|
||||
for ((i=0;i<${#src[@]};++i)); do
|
||||
if [ "${src[i]}" != "${dest[i]}" ]; then
|
||||
mkdir -p "$(dirname "${dest[i]}")"
|
||||
if git ls-files --error-unmatch "${src[i]}" > /dev/null 2>&1; then
|
||||
git mv "${src[i]}" "${dest[i]}"
|
||||
else
|
||||
mv "${src[i]}" "${dest[i]}"
|
||||
fi
|
||||
((++count))
|
||||
fi
|
||||
done
|
||||
|
||||
echo "$count" files renamed.
|
||||
|
|
@ -0,0 +1,158 @@
|
|||
#!/bin/sh
|
||||
|
||||
# https://github.com/pystardust/waldl
|
||||
# script to find and download wallpapers from wallhaven
|
||||
version="0.0.1"
|
||||
|
||||
# Usage:
|
||||
# waldl <query>
|
||||
# if query left empty then sh_menu will be used (dmenu by default)
|
||||
# after the thumbnails are cached, nsxiv would open up with the thumbnails
|
||||
# Select the wallpapers using `m` on the image. ( marking the image in nsxiv )
|
||||
# press `q` to quit nsxiv, the marked images would start downloading
|
||||
|
||||
####################
|
||||
## User variables ##
|
||||
####################
|
||||
|
||||
# the dir where wallpapers are stored
|
||||
walldir="$HOME/pix/wallhaven"
|
||||
# the dir used to cache thumbnails
|
||||
cachedir="$HOME/.cache/wallhaven"
|
||||
# nsxiv options
|
||||
nsxiv_otps=" -tfpo -z 200" # o is needed for selection
|
||||
# number of pages to show in search results
|
||||
# each page contains 24 results
|
||||
max_pages=4
|
||||
# sorting : date_added, relevance, random, views, favorites, toplist
|
||||
sorting=relevance
|
||||
# quality : large original small
|
||||
quality=large
|
||||
# atleast : least res
|
||||
atleast=1920x1080
|
||||
|
||||
# the menu command used when no query is provided
|
||||
sh_menu () {
|
||||
: | dmenu -p "search wallhaven: "
|
||||
# ROFI: comment the previous line and uncomment the next line for rofi
|
||||
# rofi -dmenu -l 0 -p "search wallpapers"
|
||||
}
|
||||
|
||||
##########################
|
||||
## getting search query ##
|
||||
##########################
|
||||
|
||||
[ -n "$*" ] && query="$*" || query=$( sh_menu )
|
||||
[ -z "$query" ] && exit 1
|
||||
query=$(printf '%s' "$query" | tr ' ' '+' )
|
||||
|
||||
######################
|
||||
## start up commands #
|
||||
######################
|
||||
|
||||
rm -rf "$cachedir"
|
||||
mkdir -p "$walldir" "$cachedir"
|
||||
|
||||
# progress display command
|
||||
sh_info () {
|
||||
printf "%s\n" "$1" >&2
|
||||
notify-send "wallhaven" "$1"
|
||||
[ -n "$2" ] && exit "$2"
|
||||
}
|
||||
|
||||
# dependency checking
|
||||
dep_ck () {
|
||||
for pr; do
|
||||
command -v $pr >/dev/null 2>&1 || sh_info "command $pr not found, install: $pr" 1
|
||||
done
|
||||
}
|
||||
dep_ck "nsxiv" "curl" "jq"
|
||||
|
||||
|
||||
# clean up command that would be called when the program exits
|
||||
clean_up () {
|
||||
printf "%s\n" "cleaning up..." >&2
|
||||
rm -rf "$datafile" "$cachedir"
|
||||
}
|
||||
|
||||
# data file to store the api information
|
||||
datafile="/tmp/wald.$$"
|
||||
|
||||
# clean up if killed
|
||||
trap "exit" INT TERM
|
||||
trap "clean_up" EXIT
|
||||
|
||||
##################
|
||||
## getting data ##
|
||||
##################
|
||||
|
||||
# request the search results for each page
|
||||
get_results () {
|
||||
for page_no in $(seq $max_pages)
|
||||
do
|
||||
{
|
||||
json=$(curl -s -G "https://wallhaven.cc/api/v1/search" \
|
||||
-d "q=$1" \
|
||||
-d "page=$page_no" \
|
||||
-d "atleast=$atleast" \
|
||||
-d "sorting=$sorting"
|
||||
)
|
||||
printf "%s\n" "$json" >> "$datafile"
|
||||
} &
|
||||
sleep 0.001
|
||||
done
|
||||
wait
|
||||
}
|
||||
|
||||
# search wallpapers
|
||||
sh_info "getting data..."
|
||||
get_results "$query"
|
||||
|
||||
# check if data file is empty, if so then exit
|
||||
[ -s "$datafile" ] || sh_info "no images found" 1
|
||||
|
||||
############################
|
||||
## downloading thumbnails ##
|
||||
############################
|
||||
|
||||
# get a list of thumnails from the data
|
||||
thumbnails=$( jq -r '.data[]?|.thumbs.'"$quality" < "$datafile")
|
||||
|
||||
[ -z "$thumbnails" ] && sh_info "no-results found" 1
|
||||
|
||||
# download the thumbnails
|
||||
sh_info "caching thumbnails..."
|
||||
for url in $thumbnails
|
||||
do
|
||||
printf "url = %s\n" "$url"
|
||||
printf "output = %s\n" "$cachedir/${url##*/}"
|
||||
done | curl -Z -K -
|
||||
#sh_info "downloaded thumbnails..."
|
||||
|
||||
###########################
|
||||
## user selection (nsxiv) ##
|
||||
###########################
|
||||
|
||||
# extract the id's out of the thumbnail name
|
||||
image_ids="$(nsxiv $sxiv_otps "$cachedir")"
|
||||
[ -z "$image_ids" ] && exit
|
||||
|
||||
#########################
|
||||
## download wallpapers ##
|
||||
#########################
|
||||
|
||||
# download the selected wall papers
|
||||
mkdir "$walldir/$query"
|
||||
cd "$walldir/$query"
|
||||
sh_info "downloading wallpapers..."
|
||||
for ids in $image_ids
|
||||
do
|
||||
ids="${ids##*/}"
|
||||
ids="${ids%.*}"
|
||||
url=$( jq -r '.data[]?|select( .id == "'$ids'" )|.path' < "$datafile" )
|
||||
printf "url = %s\n" "$url"
|
||||
printf -- "-O\n"
|
||||
done | curl -K -
|
||||
|
||||
sh_info "wallpapers downloaded in:- '$walldir/$query'"
|
||||
nsxiv $(ls -c)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=File Manager
|
||||
Exec=/usr/bin/alacritty -e yazi %u
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Image viewer
|
||||
Exec=/usr/local/bin/nsxiv -a %f
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=PDF reader
|
||||
Exec=/usr/bin/zathura %u
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=RSS feed addition
|
||||
Exec=/usr/bin/env rssadd %U
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Text editor
|
||||
Exec=/usr/local/bin/st -e nvim %u
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Torrent
|
||||
Exec=/usr/bin/env transadd %U
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Video Player
|
||||
Exec=/usr/bin/mpv %f
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1 @@
|
|||
.git
|
||||
Loading…
Reference in New Issue