dotfiles-x113718ac5
move to hyprland
+881 −377
21 files changed
- D .config/dunst/dunstrc +0 −60
- A .config/hypr/hyprland.conf +296 −0
- A .config/hypr/hyprlock.conf +125 −0
- A .config/hypr/hyprpaper.conf +2 −0
- A .config/hypr/hyprsunset.conf +12 −0
- A .config/waybar/config.jsonc +145 −0
- A .config/waybar/style.css +301 −0
- D .config/x11/xinitrc +0 −23
- D .local/bin/colorpicker
- D .local/bin/dmenurecord +0 −123
- D .local/bin/jrun +0 −14
- D .local/bin/maimshot +0 −13
- D .local/bin/pirokit +0 −68
- D .local/bin/run_alacritty +0 −8
- D .local/bin/statusbar/sb-battery +0 −37
- D .local/bin/statusbar/sb-clock +0 −3
- D .local/bin/statusbar/sb-memory +0 −4
- D .local/bin/statusbar/sb-mpdup +0 −8
- D .local/bin/statusbar/sb-music +0 −11
- D .local/bin/statusbar/sb-updates +0 −3
- D .local/bin/statusbar/sb-volume +0 −2
| @@ -1,60 +0,0 @@ | |||
| 1 | − | # New Start: A modern Arch workflow built with an emphasis on functionality. | |
| 2 | − | # Copyright (C) 2018 Donovan Glover | |
| 3 | − | ||
| 4 | − | # NOTE: This file is automatically generated by pywal. Do not edit it by hand. | |
| 5 | − | ||
| 6 | − | [global] | |
| 7 | − | # Make the width 3740 (3840 - 100), have 50 left margin and 95 above | |
| 8 | − | # geometry = "3740x5-50+95" | |
| 9 | − | offset = 3x20 | |
| 10 | − | ||
| 11 | − | # Show multiple notifications in the same box | |
| 12 | − | separator_height = 0 | |
| 13 | − | ||
| 14 | − | # Add vertical padding to the inside of the notification | |
| 15 | − | padding = 8 | |
| 16 | − | ||
| 17 | − | # Add horizontal padding for when the text gets long enough | |
| 18 | − | horizontal_padding = 8 | |
| 19 | − | ||
| 20 | − | # The frame color and width of the notification | |
| 21 | − | frame_color = "#224487" | |
| 22 | − | frame_width = 2 | |
| 23 | − | ||
| 24 | − | # How long a user needs to be idle for sticky notifications | |
| 25 | − | idle_threshold = 120 | |
| 26 | − | ||
| 27 | − | # Font and typography settings | |
| 28 | − | font = JetbrainsMono Nerd Font 10 | |
| 29 | − | alignment = left | |
| 30 | − | word_wrap = yes | |
| 31 | − | ||
| 32 | − | # Format for how notifications will be displayed | |
| 33 | − | # Usage: `notify-send 'Title' 'Summary'` | |
| 34 | − | format = "<b>%s</b>\n%b" | |
| 35 | − | ||
| 36 | − | # Allow some HTML tags like <i> and <u> in notifications | |
| 37 | − | markup = full | |
| 38 | − | max_icon_size = 120 | |
| 39 | − | transparency = 5 | |
| 40 | − | ||
| 41 | − | # These are the keybindings used to control dunst notifications | |
| 42 | − | [shortcuts] | |
| 43 | − | close = ctrl+space | |
| 44 | − | close_all = ctrl+shift+space | |
| 45 | − | history = ctrl+grave | |
| 46 | − | ||
| 47 | − | # Set the background and foreground (text) color for all notifications | |
| 48 | − | [urgency_low] | |
| 49 | − | background = "#000000" | |
| 50 | − | foreground = "#ffffff" | |
| 51 | − | ||
| 52 | − | [urgency_normal] | |
| 53 | − | background = "#000000" | |
| 54 | − | foreground = "#ffffff" | |
| 55 | − | ||
| 56 | − | [urgency_critical] | |
| 57 | − | background = "#000000" | |
| 58 | − | foreground = "#ffffff" | |
| 59 | − | ||
| 60 | − | # vim:ft=cfg | |
| @@ -0,0 +1,296 @@ | |||
| 1 | + | autogenerated = 0 | |
| 2 | + | ||
| 3 | + | env = HYPRSHOT_DIR,/home/krolyxon/pix/ss/ | |
| 4 | + | ||
| 5 | + | ||
| 6 | + | plugin { | |
| 7 | + | split-monitor-workspaces { | |
| 8 | + | count = 10 | |
| 9 | + | keep_focused = 1 | |
| 10 | + | enable_notifications = 0 | |
| 11 | + | enable_persistent_workspaces = 1 | |
| 12 | + | } | |
| 13 | + | } | |
| 14 | + | ||
| 15 | + | # This is an example Hyprland config file. | |
| 16 | + | # Refer to the wiki for more information. | |
| 17 | + | # https://wiki.hypr.land/Configuring/ | |
| 18 | + | ||
| 19 | + | # Please note not all available settings / options are set here. | |
| 20 | + | # For a full list, see the wiki | |
| 21 | + | ||
| 22 | + | # You can split this configuration into multiple files | |
| 23 | + | # Create your files separately and then link them to this file like this: | |
| 24 | + | source = ~/.config/hypr/monitors.conf | |
| 25 | + | ||
| 26 | + | ||
| 27 | + | ################### | |
| 28 | + | ### MY PROGRAMS ### | |
| 29 | + | ################### | |
| 30 | + | # See https://wiki.hypr.land/Configuring/Keywords/ | |
| 31 | + | ||
| 32 | + | # Set programs that you use | |
| 33 | + | $terminal = alacritty | |
| 34 | + | $fileManager = pcmanfm | |
| 35 | + | # $menu = rofi -show drun | |
| 36 | + | $menu = wofi --show drun | |
| 37 | + | $browser = brave | |
| 38 | + | ||
| 39 | + | ||
| 40 | + | ################# | |
| 41 | + | ### AUTOSTART ### | |
| 42 | + | ################# | |
| 43 | + | ||
| 44 | + | # Autostart necessary processes (like notifications daemons, status bars, etc.) | |
| 45 | + | # Or execute your favorite apps at launch like this: | |
| 46 | + | ||
| 47 | + | exec-once = hyprpm reload -n | |
| 48 | + | exec-once = waybar & hyprpaper & swaync & hyprsunset | |
| 49 | + | exec-once = systemctl --user start hyprpolkitagent | |
| 50 | + | ||
| 51 | + | plugin { | |
| 52 | + | hyprsplit { | |
| 53 | + | num_workspaces = 10 | |
| 54 | + | persistent_workspaces = true | |
| 55 | + | } | |
| 56 | + | } | |
| 57 | + | ||
| 58 | + | ############################# | |
| 59 | + | ### ENVIRONMENT VARIABLES ### | |
| 60 | + | ############################# | |
| 61 | + | ||
| 62 | + | # See https://wiki.hypr.land/Configuring/Environment-variables/ | |
| 63 | + | ||
| 64 | + | env = XCURSOR_SIZE,24 | |
| 65 | + | env = HYPRCURSOR_SIZE,24 | |
| 66 | + | ||
| 67 | + | ||
| 68 | + | ################### | |
| 69 | + | ### PERMISSIONS ### | |
| 70 | + | ################### | |
| 71 | + | ||
| 72 | + | # See https://wiki.hypr.land/Configuring/Permissions/ | |
| 73 | + | # Please note permission changes here require a Hyprland restart and are not applied on-the-fly | |
| 74 | + | # for security reasons | |
| 75 | + | ||
| 76 | + | # ecosystem { | |
| 77 | + | # enforce_permissions = 1 | |
| 78 | + | # } | |
| 79 | + | ||
| 80 | + | # permission = /usr/(bin|local/bin)/grim, screencopy, allow | |
| 81 | + | # permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow | |
| 82 | + | # permission = /usr/(bin|local/bin)/hyprpm, plugin, allow | |
| 83 | + | ||
| 84 | + | ||
| 85 | + | ##################### | |
| 86 | + | ### LOOK AND FEEL ### | |
| 87 | + | ##################### | |
| 88 | + | ||
| 89 | + | # Refer to https://wiki.hypr.land/Configuring/Variables/ | |
| 90 | + | ||
| 91 | + | # https://wiki.hypr.land/Configuring/Variables/#general | |
| 92 | + | general { | |
| 93 | + | gaps_in = 10 | |
| 94 | + | gaps_out = 10 | |
| 95 | + | border_size = 2 | |
| 96 | + | resize_on_border = false | |
| 97 | + | allow_tearing = false | |
| 98 | + | col.active_border = rgba(1b9993ee) | |
| 99 | + | col.inactive_border = rgba(888e8eaa) | |
| 100 | + | layout = master | |
| 101 | + | } | |
| 102 | + | ||
| 103 | + | # https://wiki.hypr.land/Configuring/Variables/#decoration | |
| 104 | + | decoration { | |
| 105 | + | rounding = 0 | |
| 106 | + | ||
| 107 | + | blur { | |
| 108 | + | enabled = true | |
| 109 | + | size = 3 | |
| 110 | + | passes = 1 | |
| 111 | + | } | |
| 112 | + | ||
| 113 | + | # drop_shadow = yes | |
| 114 | + | # shadow_range = 4 | |
| 115 | + | # shadow_render_power = 3 | |
| 116 | + | # col.shadow = rgba(1a1a1aee) | |
| 117 | + | } | |
| 118 | + | # https://wiki.hypr.land/Configuring/Variables/#animations | |
| 119 | + | ||
| 120 | + | animations { | |
| 121 | + | enabled = yes | |
| 122 | + | bezier = myBezier, 0.05, 0.9, 0.1, 1.05 | |
| 123 | + | animation = windows, 1, 7, myBezier | |
| 124 | + | animation = windowsOut, 1, 7, default, popin 80% | |
| 125 | + | animation = border, 1, 10, default | |
| 126 | + | animation = borderangle, 1, 8, default | |
| 127 | + | animation = fade, 1, 7, default | |
| 128 | + | animation = workspaces, 1, 6, default | |
| 129 | + | } | |
| 130 | + | ||
| 131 | + | # Ref https://wiki.hypr.land/Configuring/Workspace-Rules/ | |
| 132 | + | # "Smart gaps" / "No gaps when only" | |
| 133 | + | # uncomment all if you wish to use that. | |
| 134 | + | # workspace = w[tv1], gapsout:0, gapsin:0 | |
| 135 | + | # workspace = f[1], gapsout:0, gapsin:0 | |
| 136 | + | # windowrule = bordersize 0, floating:0, onworkspace:w[tv1] | |
| 137 | + | # windowrule = rounding 0, floating:0, onworkspace:w[tv1] | |
| 138 | + | # windowrule = bordersize 0, floating:0, onworkspace:f[1] | |
| 139 | + | # windowrule = rounding 0, floating:0, onworkspace:f[1] | |
| 140 | + | ||
| 141 | + | # See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more | |
| 142 | + | dwindle { | |
| 143 | + | pseudotile = true# Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below | |
| 144 | + | preserve_split = true # You probably want this | |
| 145 | + | } | |
| 146 | + | ||
| 147 | + | # See https://wiki.hypr.land/Configuring/Master-Layout/ for more | |
| 148 | + | master { | |
| 149 | + | new_status = master | |
| 150 | + | # new_on_top = true | |
| 151 | + | ||
| 152 | + | } | |
| 153 | + | ||
| 154 | + | # https://wiki.hypr.land/Configuring/Variables/#misc | |
| 155 | + | misc { | |
| 156 | + | force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers | |
| 157 | + | disable_hyprland_logo = true# If true disables the random hyprland logo / anime girl background. :( | |
| 158 | + | } | |
| 159 | + | ||
| 160 | + | ||
| 161 | + | ############# | |
| 162 | + | ### INPUT ### | |
| 163 | + | ############# | |
| 164 | + | ||
| 165 | + | # https://wiki.hypr.land/Configuring/Variables/#input | |
| 166 | + | input { | |
| 167 | + | kb_layout = us | |
| 168 | + | kb_variant = | |
| 169 | + | kb_model = | |
| 170 | + | kb_options = | |
| 171 | + | kb_rules = | |
| 172 | + | ||
| 173 | + | follow_mouse = 1 | |
| 174 | + | ||
| 175 | + | sensitivity = 0 # -1.0 - 1.0, 0 means no modification. | |
| 176 | + | ||
| 177 | + | touchpad { | |
| 178 | + | natural_scroll = false | |
| 179 | + | } | |
| 180 | + | ||
| 181 | + | repeat_delay = 300 | |
| 182 | + | repeat_rate = 50 | |
| 183 | + | } | |
| 184 | + | ||
| 185 | + | # https://wiki.hypr.land/Configuring/Variables/#gestures | |
| 186 | + | gestures { | |
| 187 | + | workspace_swipe = false | |
| 188 | + | } | |
| 189 | + | ||
| 190 | + | # Example per-device config | |
| 191 | + | # See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more | |
| 192 | + | device { | |
| 193 | + | name = epic-mouse-v1 | |
| 194 | + | sensitivity = -0.5 | |
| 195 | + | } | |
| 196 | + | ||
| 197 | + | ||
| 198 | + | ################### | |
| 199 | + | ### KEYBINDINGS ### | |
| 200 | + | ################### | |
| 201 | + | ||
| 202 | + | # See https://wiki.hypr.land/Configuring/Keywords/ | |
| 203 | + | $mainMod = SUPER # Sets "Windows" key as main modifier | |
| 204 | + | ||
| 205 | + | # Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more | |
| 206 | + | bind = $mainMod, Return, exec, $terminal | |
| 207 | + | bind = $mainMod SHIFT, X, killactive, | |
| 208 | + | bind = $mainMod SHIFT, Q, exit, | |
| 209 | + | bind = $mainMod, F, Fullscreen | |
| 210 | + | bind = $mainMod SHIFT, R, togglefloating, | |
| 211 | + | bind = $mainMod, R, exec, $menu | |
| 212 | + | bind = $mainMod SHIFT, P, pseudo, # dwindle | |
| 213 | + | bind = $mainMod, J, togglesplit, # dwindle | |
| 214 | + | bind = $mainMod, tab, cyclenext | |
| 215 | + | bind = $mainMod, b, exec, killall waybar || waybar | |
| 216 | + | ||
| 217 | + | # Applications | |
| 218 | + | bind = $mainMod, W, exec, $browser | |
| 219 | + | ||
| 220 | + | # Music Controls | |
| 221 | + | bind = $mainMod, m, exec, $terminal -e "ncmpcpp" | |
| 222 | + | bind = $mainMod, p, exec, mpc toggle | |
| 223 | + | bind = $mainMod, comma, exec, mpc seek -10 | |
| 224 | + | bind = $mainMod, period, exec, mpc seek -10 | |
| 225 | + | ||
| 226 | + | # Move focus with mainMod + arrow keys | |
| 227 | + | bind = $mainMod, h, movefocus, l | |
| 228 | + | bind = $mainMod, j, movefocus, r | |
| 229 | + | bind = $mainMod, k, movefocus, u | |
| 230 | + | bind = $mainMod, l, movefocus, d | |
| 231 | + | ||
| 232 | + | # Switch workspaces with mainMod + [0-9] | |
| 233 | + | bind = $mainMod, 1, split-workspace, 1 | |
| 234 | + | bind = $mainMod, 2, split-workspace, 2 | |
| 235 | + | bind = $mainMod, 3, split-workspace, 3 | |
| 236 | + | bind = $mainMod, 4, split-workspace, 4 | |
| 237 | + | bind = $mainMod, 5, split-workspace, 5 | |
| 238 | + | bind = $mainMod, 6, split-workspace, 6 | |
| 239 | + | bind = $mainMod, 7, split-workspace, 7 | |
| 240 | + | bind = $mainMod, 8, split-workspace, 8 | |
| 241 | + | bind = $mainMod, 9, split-workspace, 9 | |
| 242 | + | bind = $mainMod, 0, split-workspace, 10 | |
| 243 | + | ||
| 244 | + | # Move active window to a workspace with mainMod + SHIFT + [0-9] | |
| 245 | + | bind = $mainMod SHIFT, 1, split-movetoworkspace, 1 | |
| 246 | + | bind = $mainMod SHIFT, 2, split-movetoworkspace, 2 | |
| 247 | + | bind = $mainMod SHIFT, 3, split-movetoworkspace, 3 | |
| 248 | + | bind = $mainMod SHIFT, 4, split-movetoworkspace, 4 | |
| 249 | + | bind = $mainMod SHIFT, 5, split-movetoworkspace, 5 | |
| 250 | + | bind = $mainMod SHIFT, 6, split-movetoworkspace, 6 | |
| 251 | + | bind = $mainMod SHIFT, 7, split-movetoworkspace, 7 | |
| 252 | + | bind = $mainMod SHIFT, 8, split-movetoworkspace, 8 | |
| 253 | + | bind = $mainMod SHIFT, 9, split-movetoworkspace, 9 | |
| 254 | + | bind = $mainMod SHIFT, 0, split-movetoworkspace, 10 | |
| 255 | + | ||
| 256 | + | # Example special workspace (scratchpad) | |
| 257 | + | bind = $mainMod, S, togglespecialworkspace, magic | |
| 258 | + | bind = $mainMod SHIFT, S, movetoworkspace, special:magic | |
| 259 | + | ||
| 260 | + | # Scroll through existing workspaces with mainMod + scroll | |
| 261 | + | bind = $mainMod, mouse_down, workspace, e+1 | |
| 262 | + | bind = $mainMod, mouse_up, workspace, e-1 | |
| 263 | + | ||
| 264 | + | # Move/resize windows with mainMod + LMB/RMB and dragging | |
| 265 | + | bindm = $mainMod, mouse:272, movewindow | |
| 266 | + | bindm = $mainMod, mouse:273, resizewindow | |
| 267 | + | ||
| 268 | + | # Laptop multimedia keys for volume and LCD brightness | |
| 269 | + | bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ | |
| 270 | + | bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- | |
| 271 | + | bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle | |
| 272 | + | bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle | |
| 273 | + | bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+ | |
| 274 | + | bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%- | |
| 275 | + | ||
| 276 | + | # Requires playerctl | |
| 277 | + | bindl = , XF86AudioNext, exec, playerctl next | |
| 278 | + | bindl = , XF86AudioPause, exec, playerctl play-pause | |
| 279 | + | bindl = , XF86AudioPlay, exec, playerctl play-pause | |
| 280 | + | bindl = , XF86AudioPrev, exec, playerctl previous | |
| 281 | + | ||
| 282 | + | ############################## | |
| 283 | + | ### WINDOWS AND WORKSPACES ### | |
| 284 | + | ############################## | |
| 285 | + | ||
| 286 | + | # See https://wiki.hypr.land/Configuring/Window-Rules/ for more | |
| 287 | + | # See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules | |
| 288 | + | ||
| 289 | + | # Example windowrule | |
| 290 | + | # windowrule = float,class:^(kitty)$,title:^(kitty)$ | |
| 291 | + | ||
| 292 | + | # Ignore maximize requests from apps. You'll probably like this. | |
| 293 | + | windowrule = suppressevent maximize, class:.* | |
| 294 | + | ||
| 295 | + | # Fix some dragging issues with XWayland | |
| 296 | + | windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 | |
| @@ -0,0 +1,125 @@ | |||
| 1 | + | # BACKGROUND | |
| 2 | + | background { | |
| 3 | + | monitor = | |
| 4 | + | path = ~/.config/hypr/hyprlock.png | |
| 5 | + | blur_passes = 0 | |
| 6 | + | contrast = 0.8916 | |
| 7 | + | brightness = 0.8916 | |
| 8 | + | vibrancy = 0.8916 | |
| 9 | + | vibrancy_darkness = 0.0 | |
| 10 | + | } | |
| 11 | + | ||
| 12 | + | # GENERAL | |
| 13 | + | general { | |
| 14 | + | no_fade_in = false | |
| 15 | + | grace = 0 | |
| 16 | + | disable_loading_bar = false | |
| 17 | + | } | |
| 18 | + | ||
| 19 | + | # Profie-Photo | |
| 20 | + | image { | |
| 21 | + | monitor = | |
| 22 | + | path = $HOME/.config/hypr/thunder.png | |
| 23 | + | border_size = 2 | |
| 24 | + | border_color = rgba(216, 222, 233, 0.80) | |
| 25 | + | size = 100 | |
| 26 | + | rounding = -1 | |
| 27 | + | rotate = 0 | |
| 28 | + | reload_time = -1 | |
| 29 | + | reload_cmd = | |
| 30 | + | position = 25, 200 | |
| 31 | + | halign = center | |
| 32 | + | valign = center | |
| 33 | + | } | |
| 34 | + | ||
| 35 | + | # NAME | |
| 36 | + | label { | |
| 37 | + | monitor = | |
| 38 | + | text = THUNDER | |
| 39 | + | color = rgba(216, 222, 233, 0.80) | |
| 40 | + | outline_thickness = 0 | |
| 41 | + | dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 | |
| 42 | + | dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 | |
| 43 | + | dots_center = true | |
| 44 | + | font_size = 20 | |
| 45 | + | font_family = SF Pro Display Bold | |
| 46 | + | position = 25, 110 | |
| 47 | + | halign = center | |
| 48 | + | valign = center | |
| 49 | + | } | |
| 50 | + | ||
| 51 | + | # Time | |
| 52 | + | label { | |
| 53 | + | monitor = | |
| 54 | + | text = cmd[update:1000] echo "<span>$(date +"%I:%M")</span>" | |
| 55 | + | color = rgba(216, 222, 233, 0.80) | |
| 56 | + | font_size = 60 | |
| 57 | + | font_family = SF Pro Display Bold | |
| 58 | + | position = 30, -8 | |
| 59 | + | halign = center | |
| 60 | + | valign = center | |
| 61 | + | } | |
| 62 | + | ||
| 63 | + | # Day-Month-Date | |
| 64 | + | label { | |
| 65 | + | monitor = | |
| 66 | + | text = cmd[update:1000] echo -e "$(date +"%A, %B %d")" | |
| 67 | + | color = rgba(216, 222, 233, .80) | |
| 68 | + | font_size = 19 | |
| 69 | + | font_family = SF Pro Display Bold | |
| 70 | + | position = 35, -60 | |
| 71 | + | halign = center | |
| 72 | + | valign = center | |
| 73 | + | } | |
| 74 | + | ||
| 75 | + | # USER-BOX | |
| 76 | + | shape { | |
| 77 | + | monitor = | |
| 78 | + | size = 320, 55 | |
| 79 | + | color = rgba(255, 255, 255, 0.1) | |
| 80 | + | rounding = -1 | |
| 81 | + | border_size = 0 | |
| 82 | + | border_color = rgba(255, 255, 255, 1) | |
| 83 | + | rotate = 0 | |
| 84 | + | xray = false # if true, make a "hole" in the background (rectangle of specified size, no rotation) | |
| 85 | + | ||
| 86 | + | position = 34, -190 | |
| 87 | + | halign = center | |
| 88 | + | valign = center | |
| 89 | + | } | |
| 90 | + | ||
| 91 | + | # USER | |
| 92 | + | label { | |
| 93 | + | monitor = | |
| 94 | + | text = $USER | |
| 95 | + | color = rgba(216, 222, 233, 0.80) | |
| 96 | + | outline_thickness = 0 | |
| 97 | + | dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 | |
| 98 | + | dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 | |
| 99 | + | dots_center = true | |
| 100 | + | font_size = 16 | |
| 101 | + | font_family = SF Pro Display Bold | |
| 102 | + | position = 38, -190 | |
| 103 | + | halign = center | |
| 104 | + | valign = center | |
| 105 | + | } | |
| 106 | + | ||
| 107 | + | # INPUT FIELD | |
| 108 | + | input-field { | |
| 109 | + | monitor = | |
| 110 | + | size = 320, 55 | |
| 111 | + | outline_thickness = 0 | |
| 112 | + | dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 | |
| 113 | + | dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 | |
| 114 | + | dots_center = true | |
| 115 | + | outer_color = rgba(255, 255, 255, 0) | |
| 116 | + | inner_color = rgba(255, 255, 255, 0.1) | |
| 117 | + | font_color = rgb(200, 200, 200) | |
| 118 | + | fade_on_empty = false | |
| 119 | + | font_family = SF Pro Display Bold | |
| 120 | + | placeholder_text = <i><span foreground="##ffffff99">🔒 Enter Pass</span></i> | |
| 121 | + | hide_input = false | |
| 122 | + | position = 34, -268 | |
| 123 | + | halign = center | |
| 124 | + | valign = center | |
| 125 | + | } | |
| @@ -0,0 +1,2 @@ | |||
| 1 | + | preload = ~/pix/wallpapers/morpheus-red-pill-blue-pill.jpg | |
| 2 | + | wallpaper = ,~/pix/wallpapers/morpheus-red-pill-blue-pill.jpg | |
| @@ -0,0 +1,12 @@ | |||
| 1 | + | max-gamma = 150 | |
| 2 | + | ||
| 3 | + | profile { | |
| 4 | + | time = 7:30 | |
| 5 | + | identity = true | |
| 6 | + | } | |
| 7 | + | ||
| 8 | + | profile { | |
| 9 | + | time = 21:00 | |
| 10 | + | temperature = 5500 | |
| 11 | + | gamma = 0.8 | |
| 12 | + | } | |
| @@ -0,0 +1,145 @@ | |||
| 1 | + | { | |
| 2 | + | // "layer": "top", // Waybar at top layer | |
| 3 | + | "position": "top", // Waybar position (top|bottom|left|right) | |
| 4 | + | "height": 0, // Waybar height (to be removed for auto height) | |
| 5 | + | "width": 0, // Waybar width (0 == auto) | |
| 6 | + | "spacing": 0, // Gaps between modules | |
| 7 | + | // "output": ["HDMI-A-1", "DP-2", "eDP-1"], | |
| 8 | + | // Choose the order of the modules | |
| 9 | + | "modules-left": [ | |
| 10 | + | "hyprland/workspaces" | |
| 11 | + | // "hyprland/window", | |
| 12 | + | ], | |
| 13 | + | "modules-center" : [ | |
| 14 | + | ], | |
| 15 | + | "modules-right": [ | |
| 16 | + | "mpd", | |
| 17 | + | "pulseaudio", | |
| 18 | + | "battery", | |
| 19 | + | "cpu", | |
| 20 | + | "memory", | |
| 21 | + | "network", | |
| 22 | + | "custom/date", | |
| 23 | + | "clock", | |
| 24 | + | "tray", | |
| 25 | + | ], | |
| 26 | + | // Modules configuration | |
| 27 | + | "hyprland/workspaces": { | |
| 28 | + | "format": "{icon}", | |
| 29 | + | "format-icons": { | |
| 30 | + | "1": "", | |
| 31 | + | "2": "", | |
| 32 | + | "3": "", | |
| 33 | + | "4": "", | |
| 34 | + | "5": "", | |
| 35 | + | "6": "", | |
| 36 | + | "7": "", | |
| 37 | + | "8": "", | |
| 38 | + | "9": "", | |
| 39 | + | "10": "", | |
| 40 | + | "11": "", | |
| 41 | + | "12": "", | |
| 42 | + | "13": "", | |
| 43 | + | "14": "", | |
| 44 | + | "15": "", | |
| 45 | + | "16": "", | |
| 46 | + | "17": "", | |
| 47 | + | "18": "", | |
| 48 | + | "19": "", | |
| 49 | + | "20": "", | |
| 50 | + | "urgent": "", | |
| 51 | + | // "active": "", // focused workspace on current monitor | |
| 52 | + | // "visible": "", // focused workspace on other monitors | |
| 53 | + | // "default": "", | |
| 54 | + | // "default": "", // focused workspace on current monitor | |
| 55 | + | // "empty": "" // persistent | |
| 56 | + | }, | |
| 57 | + | "on-scroll-up": "hyprctl dispatch workspace r-1", | |
| 58 | + | "on-scroll-down": "hyprctl dispatch workspace r+1", | |
| 59 | + | "all-outputs": false, | |
| 60 | + | "show-special": false | |
| 61 | + | }, | |
| 62 | + | "tray": { | |
| 63 | + | "icon-size": 21, | |
| 64 | + | "spacing": 12 | |
| 65 | + | }, | |
| 66 | + | "clock": { | |
| 67 | + | "timezone": "Asia/Kolkata", | |
| 68 | + | "tooltip-format": "<tt><big>{calendar}</big></tt>", | |
| 69 | + | "format": " {:%H:%M}", | |
| 70 | + | "interval": 5 | |
| 71 | + | }, | |
| 72 | + | "custom/date": { | |
| 73 | + | "timezone": "Asia/Kolkata", | |
| 74 | + | "exec": "date +'%a %Y-%m-%d'", | |
| 75 | + | "format": " {}", | |
| 76 | + | "interval": 1, | |
| 77 | + | "tooltip": false | |
| 78 | + | }, | |
| 79 | + | "cpu": { | |
| 80 | + | "format": " {usage:2}%", | |
| 81 | + | "tooltip": false, | |
| 82 | + | "interval": 1 | |
| 83 | + | }, | |
| 84 | + | "memory": { | |
| 85 | + | "format": " {:2}%", | |
| 86 | + | "interval": 1 | |
| 87 | + | }, | |
| 88 | + | "network": { | |
| 89 | + | "interval": 5, | |
| 90 | + | "format-wifi": " {essid} ({signalStrength}%)", // Icon: wifi | |
| 91 | + | "format-ethernet": " {ifname}: {ipaddr}/{cidr}", // Icon: ethernet | |
| 92 | + | "format-disconnected": "⚠ Disconnected", | |
| 93 | + | "tooltip-format": "{ifname}: {ipaddr}" | |
| 94 | + | }, | |
| 95 | + | "battery": { | |
| 96 | + | "states": { | |
| 97 | + | "good": 90, | |
| 98 | + | "warning": 30, | |
| 99 | + | "critical": 15 | |
| 100 | + | }, | |
| 101 | + | "format": "{icon} {capacity:3}%", | |
| 102 | + | "format-charging": " {capacity:3}%", | |
| 103 | + | "format-plugged": " {capacity:3}%", | |
| 104 | + | "format-alt": "{icon} ", | |
| 105 | + | "format-good": "{icon} {capacity:3}%", | |
| 106 | + | "format-full": "{icon} {capacity:3}%", | |
| 107 | + | "format-icons": [ | |
| 108 | + | "", | |
| 109 | + | "", | |
| 110 | + | "", | |
| 111 | + | "", | |
| 112 | + | "" | |
| 113 | + | ] | |
| 114 | + | }, | |
| 115 | + | "pulseaudio": { | |
| 116 | + | "scroll-step": 1, // %, can be a float | |
| 117 | + | "format": "{volume:2}% {icon} {format_source}", | |
| 118 | + | "format-muted": "{volume:2}% {format_source}", | |
| 119 | + | "format-bluetooth": "{volume:2}% {icon} {format_source}", | |
| 120 | + | "format-source": "", | |
| 121 | + | "format-source-muted": "", | |
| 122 | + | "format-icons": { | |
| 123 | + | "analog": "", | |
| 124 | + | "hdmi": "", | |
| 125 | + | "headphone": "", | |
| 126 | + | "headset": "", | |
| 127 | + | "default": [ | |
| 128 | + | "", // 0 - 25 | |
| 129 | + | "", // 25 - 50 | |
| 130 | + | "", // 50 - 75 | |
| 131 | + | "" // 75 - 100 | |
| 132 | + | ] | |
| 133 | + | }, | |
| 134 | + | "on-click": "pavucontrol", | |
| 135 | + | }, | |
| 136 | + | "mpd": { | |
| 137 | + | "format": "Playing ", | |
| 138 | + | "format-paused": "Paused ", | |
| 139 | + | "format-stopped": "Stopped ", | |
| 140 | + | "max-length": 20, | |
| 141 | + | "tooltip": false, | |
| 142 | + | "tooltip-format": "{title}\n{artist}\n{album}", | |
| 143 | + | "tooltip": true | |
| 144 | + | }, | |
| 145 | + | } | |
| @@ -0,0 +1,301 @@ | |||
| 1 | + | * { | |
| 2 | + | /* `otf-font-awesome` is required to be installed for icons */ | |
| 3 | + | font-family: JetBrains Mono Nerd Font, FontAwesome; | |
| 4 | + | font-size: 13px; | |
| 5 | + | font-weight: bold; | |
| 6 | + | } | |
| 7 | + | ||
| 8 | + | window#waybar { | |
| 9 | + | background-color: rgba(0, 0, 0, 0); | |
| 10 | + | color: #e3e3e3; | |
| 11 | + | transition-property: background-color; | |
| 12 | + | transition-duration: .5s; | |
| 13 | + | border: none; | |
| 14 | + | border-radius: 0; | |
| 15 | + | } | |
| 16 | + | ||
| 17 | + | /**************/ | |
| 18 | + | /* Workspaces */ | |
| 19 | + | /**************/ | |
| 20 | + | ||
| 21 | + | #workspaces { | |
| 22 | + | /* border-radius: 8px; */ | |
| 23 | + | padding: 0 3px 0 8px; | |
| 24 | + | margin: 5px 5px 5px 0; | |
| 25 | + | transition: all 0.2s ease; | |
| 26 | + | } | |
| 27 | + | ||
| 28 | + | /* non-empty workspaces */ | |
| 29 | + | #workspaces button { | |
| 30 | + | background-color: #2e3440; | |
| 31 | + | ||
| 32 | + | border: none; | |
| 33 | + | border-radius: 0; | |
| 34 | + | ||
| 35 | + | color: #d8dee9; | |
| 36 | + | transition: all 0.2s ease; | |
| 37 | + | text-shadow: none; | |
| 38 | + | ||
| 39 | + | /* center the icon, no clue why this is necessary */ | |
| 40 | + | padding-left: 5px; | |
| 41 | + | padding-right: 10px; | |
| 42 | + | padding-top: 1px; | |
| 43 | + | ||
| 44 | + | box-shadow: inset 0 -2px #eceff4; | |
| 45 | + | } | |
| 46 | + | ||
| 47 | + | /* the first and last buttons should be rounded */ | |
| 48 | + | #workspaces button:first-child { | |
| 49 | + | border-top-left-radius: 8px; | |
| 50 | + | border-bottom-left-radius: 8px; | |
| 51 | + | } | |
| 52 | + | #workspaces button:last-child { | |
| 53 | + | border-top-right-radius: 8px; | |
| 54 | + | border-bottom-right-radius: 8px; | |
| 55 | + | } | |
| 56 | + | ||
| 57 | + | #workspaces button:hover { | |
| 58 | + | transition-duration: .2s; | |
| 59 | + | color: #2e3440; | |
| 60 | + | box-shadow: inset 0 -3px #ffffff; | |
| 61 | + | /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ | |
| 62 | + | text-shadow: inherit; | |
| 63 | + | } | |
| 64 | + | ||
| 65 | + | /* non-empty persistent workspaces */ | |
| 66 | + | #workspaces button.persistent { | |
| 67 | + | background-color: #4c566a; | |
| 68 | + | } | |
| 69 | + | ||
| 70 | + | /* empty persistent workspaces */ | |
| 71 | + | #workspaces button.empty { | |
| 72 | + | background-color: #2e3440; | |
| 73 | + | box-shadow: none; | |
| 74 | + | } | |
| 75 | + | ||
| 76 | + | /* active or visible workspaces */ | |
| 77 | + | #workspaces button.active, | |
| 78 | + | #workspaces button.visible { | |
| 79 | + | background-color: #4c566a; | |
| 80 | + | /* box-shadow: inset 0 -4px #eceff4; */ | |
| 81 | + | } | |
| 82 | + | ||
| 83 | + | #workspaces button.urgent { | |
| 84 | + | color: #bf616a; | |
| 85 | + | } | |
| 86 | + | ||
| 87 | + | /**************/ | |
| 88 | + | ||
| 89 | + | #mode { | |
| 90 | + | background-color: #64727D; | |
| 91 | + | border-bottom: 3px solid #ffffff; | |
| 92 | + | } | |
| 93 | + | ||
| 94 | + | #clock, | |
| 95 | + | #custom-date, | |
| 96 | + | #battery, | |
| 97 | + | #cpu, | |
| 98 | + | #memory, | |
| 99 | + | #disk, | |
| 100 | + | #temperature, | |
| 101 | + | #backlight, | |
| 102 | + | #network, | |
| 103 | + | #pulseaudio, | |
| 104 | + | #wireplumber, | |
| 105 | + | #mpris, | |
| 106 | + | #custom-media, | |
| 107 | + | #tray, | |
| 108 | + | #custom-notification, | |
| 109 | + | #mpd { | |
| 110 | + | background-color: #2e3440; | |
| 111 | + | border-radius: 8px; | |
| 112 | + | padding: 0 12px 0 12px; | |
| 113 | + | margin: 5px 5px 5px 0; | |
| 114 | + | } | |
| 115 | + | ||
| 116 | + | /* If workspaces is the leftmost module, omit left margin */ | |
| 117 | + | .modules-left>widget:first-child>#workspaces { | |
| 118 | + | margin-left: 0; | |
| 119 | + | } | |
| 120 | + | ||
| 121 | + | /* If workspaces is the rightmost module, omit right margin */ | |
| 122 | + | .modules-right>widget:last-child>#workspaces { | |
| 123 | + | margin-right: 0; | |
| 124 | + | } | |
| 125 | + | ||
| 126 | + | #clock { | |
| 127 | + | color: #eceff4; | |
| 128 | + | } | |
| 129 | + | ||
| 130 | + | #custom-date { | |
| 131 | + | color: #b48ead; | |
| 132 | + | } | |
| 133 | + | ||
| 134 | + | #battery { | |
| 135 | + | color: #ebcb8b; | |
| 136 | + | } | |
| 137 | + | ||
| 138 | + | @keyframes blink { | |
| 139 | + | to { | |
| 140 | + | background-color: #ffffff; | |
| 141 | + | color: black; | |
| 142 | + | } | |
| 143 | + | } | |
| 144 | + | ||
| 145 | + | #battery.critical:not(.charging) { | |
| 146 | + | background-color: #bf616a; | |
| 147 | + | color: #ffffff; | |
| 148 | + | animation-name: blink; | |
| 149 | + | animation-duration: 0.5s; | |
| 150 | + | animation-timing-function: linear; | |
| 151 | + | animation-iteration-count: infinite; | |
| 152 | + | animation-direction: alternate; | |
| 153 | + | } | |
| 154 | + | ||
| 155 | + | label:focus { | |
| 156 | + | background-color: black; | |
| 157 | + | } | |
| 158 | + | ||
| 159 | + | #cpu { | |
| 160 | + | color: #bf616a; | |
| 161 | + | } | |
| 162 | + | ||
| 163 | + | #memory { | |
| 164 | + | color: #a3be8c; | |
| 165 | + | } | |
| 166 | + | ||
| 167 | + | /* #disk { | |
| 168 | + | background-color: #964B00; | |
| 169 | + | } */ | |
| 170 | + | ||
| 171 | + | /* #backlight { | |
| 172 | + | background-color: #90b1b1; | |
| 173 | + | } */ | |
| 174 | + | ||
| 175 | + | #network { | |
| 176 | + | color: #5e81ac; | |
| 177 | + | } | |
| 178 | + | ||
| 179 | + | #network.disconnected { | |
| 180 | + | color: #81a1c1; | |
| 181 | + | } | |
| 182 | + | ||
| 183 | + | #network.linked { | |
| 184 | + | color: #bf616a; | |
| 185 | + | } | |
| 186 | + | ||
| 187 | + | #pulseaudio { | |
| 188 | + | color: #d8dee9; | |
| 189 | + | } | |
| 190 | + | ||
| 191 | + | #mpris, | |
| 192 | + | #custom-media { | |
| 193 | + | background-color: #66cc99; | |
| 194 | + | color: black; | |
| 195 | + | } | |
| 196 | + | ||
| 197 | + | #mpris.firefox, | |
| 198 | + | #custom-media.firefox { | |
| 199 | + | background-color: #FF9500; | |
| 200 | + | color: black; | |
| 201 | + | } | |
| 202 | + | ||
| 203 | + | #mpris.spotify, | |
| 204 | + | #custom-media.spotify { | |
| 205 | + | background-color: #66cc99; | |
| 206 | + | color: #191414; | |
| 207 | + | } | |
| 208 | + | ||
| 209 | + | #mpris.vlc, | |
| 210 | + | #custom-media.vlc { | |
| 211 | + | background-color: #E85E00; | |
| 212 | + | color: black; | |
| 213 | + | } | |
| 214 | + | ||
| 215 | + | #mpris.jellyfin, | |
| 216 | + | #custom-media.jellyfin { | |
| 217 | + | /* https://jellyfin.org/docs/general/contributing/branding */ | |
| 218 | + | color: #000B25; | |
| 219 | + | background-color: #AA5CC3; | |
| 220 | + | } | |
| 221 | + | ||
| 222 | + | ||
| 223 | + | ||
| 224 | + | #temperature { | |
| 225 | + | color: #d08770; | |
| 226 | + | } | |
| 227 | + | ||
| 228 | + | #temperature.critical { | |
| 229 | + | color: #bf616a; | |
| 230 | + | } | |
| 231 | + | ||
| 232 | + | #tray { | |
| 233 | + | color: #eceff4; | |
| 234 | + | } | |
| 235 | + | ||
| 236 | + | #tray>.passive { | |
| 237 | + | -gtk-icon-effect: dim; | |
| 238 | + | } | |
| 239 | + | ||
| 240 | + | #tray>.needs-attention { | |
| 241 | + | -gtk-icon-effect: highlight; | |
| 242 | + | background-color: #bf616a; | |
| 243 | + | } | |
| 244 | + | ||
| 245 | + | /* #idle_inhibitor { | |
| 246 | + | background-color: #2d3436; | |
| 247 | + | } */ | |
| 248 | + | ||
| 249 | + | /* #idle_inhibitor.activated { | |
| 250 | + | background-color: #ecf0f1; | |
| 251 | + | color: #2d3436; | |
| 252 | + | } */ | |
| 253 | + | ||
| 254 | + | /* #mpd { | |
| 255 | + | background-color: #66cc99; | |
| 256 | + | color: #2a5c45; | |
| 257 | + | } | |
| 258 | + | ||
| 259 | + | #mpd.disconnected { | |
| 260 | + | background-color: #bf616a; | |
| 261 | + | } | |
| 262 | + | ||
| 263 | + | #mpd.stopped { | |
| 264 | + | background-color: #90b1b1; | |
| 265 | + | } | |
| 266 | + | ||
| 267 | + | #mpd.paused { | |
| 268 | + | background-color: #51a37a; | |
| 269 | + | } */ | |
| 270 | + | ||
| 271 | + | /* #language { | |
| 272 | + | background: #00b093; | |
| 273 | + | color: #740864; | |
| 274 | + | padding: 0 5px; | |
| 275 | + | margin: 0 5px; | |
| 276 | + | min-width: 16px; | |
| 277 | + | } */ | |
| 278 | + | ||
| 279 | + | /* #keyboard-state { | |
| 280 | + | background: #97e1ad; | |
| 281 | + | color: black; | |
| 282 | + | padding: 0 0px; | |
| 283 | + | margin: 0 5px; | |
| 284 | + | min-width: 16px; | |
| 285 | + | } | |
| 286 | + | ||
| 287 | + | #keyboard-state > label { | |
| 288 | + | padding: 0 5px; | |
| 289 | + | } | |
| 290 | + | ||
| 291 | + | #keyboard-state > label.locked { | |
| 292 | + | background: rgba(0, 0, 0, 0.2); | |
| 293 | + | } | |
| 294 | + | ||
| 295 | + | #scratchpad { | |
| 296 | + | background: rgba(0, 0, 0, 0.2); | |
| 297 | + | } | |
| 298 | + | ||
| 299 | + | #scratchpad.empty { | |
| 300 | + | background-color: transparent; | |
| 301 | + | } */ | |
| @@ -1,23 +0,0 @@ | |||
| 1 | − | #!/bin/sh | |
| 2 | − | ||
| 3 | − | #setwall & | |
| 4 | − | ||
| 5 | − | if [ $(envycontrol -q) = "nvidia" ]; then | |
| 6 | − | xrandr --setprovideroutputsource modesetting NVIDIA-0 | |
| 7 | − | xrandr --auto | |
| 8 | − | xrandr --dpi 96 | |
| 9 | − | fi | |
| 10 | − | ||
| 11 | − | # xwallpaper --zoom ~/.local/share/wallpaper3.jpg | |
| 12 | − | # xwallpaper --zoom $(find .local/share/wallpapers -type f | shuf -n 1) | |
| 13 | − | xwallpaper --zoom $(find pix/wallpapers -type f | grep "jpg" | shuf -n 1) | |
| 14 | − | xcompmgr & | |
| 15 | − | xset r rate 300 50 | |
| 16 | − | xrandr -r 60.00 | |
| 17 | − | unclutter & | |
| 18 | − | dwmblocks & | |
| 19 | − | dunst & | |
| 20 | − | backlight_control 20 & | |
| 21 | − | redshift & | |
| 22 | − | # exec dwm > /dev/null 2>&1 | |
| 23 | − | while type dwm > /dev/null ; do dwm && continue || break ; done | |
[Binary file]
| @@ -1,123 +0,0 @@ | |||
| 1 | − | #!/bin/sh | |
| 2 | − | ||
| 3 | − | # Usage: | |
| 4 | − | # `$0`: Ask for recording type via dmenu | |
| 5 | − | # `$0 screencast`: Record both audio and screen | |
| 6 | − | # `$0 video`: Record only screen | |
| 7 | − | # `$0 audio`: Record only audio | |
| 8 | − | # `$0 kill`: Kill existing recording | |
| 9 | − | # | |
| 10 | − | # If there is already a running instance, user will be prompted to end it. | |
| 11 | − | ||
| 12 | − | getdim() { xrandr | grep -oP '(?<=current ).*(?=,)' | tr -d ' ' ;} | |
| 13 | − | ||
| 14 | − | updateicon() { \ | |
| 15 | − | echo "$1" > /tmp/recordingicon | |
| 16 | − | pkill -RTMIN+9 "${STATUSBAR:-dwmblocks}" | |
| 17 | − | } | |
| 18 | − | ||
| 19 | − | killrecording() { | |
| 20 | − | recpid="$(cat /tmp/recordingpid)" | |
| 21 | − | kill -15 "$recpid" | |
| 22 | − | rm -f /tmp/recordingpid | |
| 23 | − | updateicon "" | |
| 24 | − | pkill -RTMIN+9 "${STATUSBAR:-dwmblocks}" | |
| 25 | − | } | |
| 26 | − | ||
| 27 | − | screencast() { \ | |
| 28 | − | ffmpeg -y \ | |
| 29 | − | -f x11grab \ | |
| 30 | − | -framerate 30 \ | |
| 31 | − | -s "$(getdim)" \ | |
| 32 | − | -i "$DISPLAY" \ | |
| 33 | − | -r 24 \ | |
| 34 | − | -use_wallclock_as_timestamps 1 \ | |
| 35 | − | -f alsa -thread_queue_size 1024 -i default \ | |
| 36 | − | -c:v h264 \ | |
| 37 | − | -crf 0 -preset ultrafast -c:a aac \ | |
| 38 | − | "$HOME/screencast-$(date '+%y%m%d-%H%M-%S').mp4" & | |
| 39 | − | echo $! > /tmp/recordingpid | |
| 40 | − | updateicon "⏺️🎙️" | |
| 41 | − | } | |
| 42 | − | ||
| 43 | − | video() { ffmpeg \ | |
| 44 | − | -f x11grab \ | |
| 45 | − | -framerate 30 \ | |
| 46 | − | -s "$(getdim)" \ | |
| 47 | − | -i "$DISPLAY" \ | |
| 48 | − | -c:v libx264 -qp 0 -r 30 \ | |
| 49 | − | "$HOME/video-$(date '+%y%m%d-%H%M-%S').mkv" & | |
| 50 | − | echo $! > /tmp/recordingpid | |
| 51 | − | updateicon "⏺️" | |
| 52 | − | } | |
| 53 | − | ||
| 54 | − | webcamhidef() { ffmpeg \ | |
| 55 | − | -f v4l2 \ | |
| 56 | − | -i /dev/video0 \ | |
| 57 | − | -video_size 1920x1080 \ | |
| 58 | − | "$HOME/webcam-$(date '+%y%m%d-%H%M-%S').mkv" & | |
| 59 | − | echo $! > /tmp/recordingpid | |
| 60 | − | updateicon "🎥" | |
| 61 | − | } | |
| 62 | − | ||
| 63 | − | webcam() { ffmpeg \ | |
| 64 | − | -f v4l2 \ | |
| 65 | − | -i /dev/video0 \ | |
| 66 | − | -video_size 640x480 \ | |
| 67 | − | "$HOME/webcam-$(date '+%y%m%d-%H%M-%S').mkv" & | |
| 68 | − | echo $! > /tmp/recordingpid | |
| 69 | − | updateicon "🎥" | |
| 70 | − | } | |
| 71 | − | ||
| 72 | − | ||
| 73 | − | audio() { \ | |
| 74 | − | ffmpeg \ | |
| 75 | − | -f alsa -i default \ | |
| 76 | − | -c:a flac \ | |
| 77 | − | "$HOME/audio-$(date '+%y%m%d-%H%M-%S').flac" & | |
| 78 | − | echo $! > /tmp/recordingpid | |
| 79 | − | updateicon "🎙️" | |
| 80 | − | } | |
| 81 | − | ||
| 82 | − | askrecording() { \ | |
| 83 | − | choice=$(printf "screencast\\nvideo\\nvideo selected\\naudio\\nwebcam\\nwebcam (hi-def)" | dmenu -i -p "Select recording style:") | |
| 84 | − | case "$choice" in | |
| 85 | − | screencast) screencast;; | |
| 86 | − | audio) audio;; | |
| 87 | − | video) video;; | |
| 88 | − | *selected) videoselected;; | |
| 89 | − | webcam) webcam;; | |
| 90 | − | "webcam (hi-def)") webcamhidef;; | |
| 91 | − | esac | |
| 92 | − | } | |
| 93 | − | ||
| 94 | − | asktoend() { \ | |
| 95 | − | response=$(printf "No\\nYes" | dmenu -i -p "Recording still active. End recording?") && | |
| 96 | − | [ "$response" = "Yes" ] && killrecording | |
| 97 | − | } | |
| 98 | − | ||
| 99 | − | videoselected() | |
| 100 | − | { | |
| 101 | − | slop -f "%x %y %w %h" > /tmp/slop | |
| 102 | − | read -r X Y W H < /tmp/slop | |
| 103 | − | rm /tmp/slop | |
| 104 | − | ||
| 105 | − | ffmpeg \ | |
| 106 | − | -f x11grab \ | |
| 107 | − | -framerate 30 \ | |
| 108 | − | -video_size "$W"x"$H" \ | |
| 109 | − | -i :0.0+"$X,$Y" \ | |
| 110 | − | -c:v libx264 -qp 0 -r 30 \ | |
| 111 | − | "$HOME/box-$(date '+%y%m%d-%H%M-%S').mkv" & | |
| 112 | − | echo $! > /tmp/recordingpid | |
| 113 | − | updateicon "⏺️" | |
| 114 | − | } | |
| 115 | − | ||
| 116 | − | case "$1" in | |
| 117 | − | screencast) screencast;; | |
| 118 | − | audio) audio;; | |
| 119 | − | video) video;; | |
| 120 | − | *selected) videoselected;; | |
| 121 | − | kill) killrecording;; | |
| 122 | − | *) ([ -f /tmp/recordingpid ] && asktoend && exit) || askrecording;; | |
| 123 | − | esac | |
| @@ -1,14 +0,0 @@ | |||
| 1 | − | #!/bin/env bash | |
| 2 | − | ||
| 3 | − | # Script to run simple .java files. | |
| 4 | − | # because its annoying to have .class files clutter your working directory; | |
| 5 | − | ||
| 6 | − | if [ -z $* ]; then | |
| 7 | − | echo "usage: jrun <filename>" | |
| 8 | − | else | |
| 9 | − | filename="${1%.*}" | |
| 10 | − | \cp -f "$1" /tmp/"$1" | |
| 11 | − | javac -d /tmp "$1" | |
| 12 | − | java -cp /tmp "$filename" | |
| 13 | − | fi | |
| 14 | − | ||
| @@ -1,13 +0,0 @@ | |||
| 1 | − | #!/bin/sh | |
| 2 | − | ||
| 3 | − | ocr_cmd="xclip -sel clip" | |
| 4 | − | ||
| 5 | − | case "$(printf "a selected area (copy)\\ncurrent window (copy)\\nfull screen (copy)\\na selected area\\ncurrent window\\nfull screen\\na selected area (OCR)" | dmenu -l 7 -i -p "Screenshot which area?")" in | |
| 6 | − | "a selected area (copy)") maim -u -s | xclip -selection clipboard -t image/png ;; | |
| 7 | − | "current window (copy)") maim -i "$(xdotool getactivewindow)" | xclip -selection clipboard -t image/png ;; | |
| 8 | − | "full screen (copy)") sleep 0.2 ; maim | xclip -selection clipboard -t image/png ;; | |
| 9 | − | "a selected area") maim -u -s ~/pix/ss/pic-selected-$(uuidgen | awk -F- '{printf $2}')-"$(date '+%y-%m-%d').png" ;; | |
| 10 | − | "current window") maim -i "$(xdotool getactivewindow)" ~/pix/ss/pic-window-"$(uuidgen | awk -F- '{printf $2}')-$(date '+%y-%m-%d').png" ;; | |
| 11 | − | "full screen") sleep 0.2 ; maim ~/pix/ss/pic-full-"$(uuidgen | awk -F- '{printf $2}')-$(date '+%y-%m-%d').png" ;; | |
| 12 | − | "a selected area (OCR)") tmpfile=$(mktemp /tmp/ocr-XXXXXX.png) && maim -u -s > "$tmpfile" && tesseract "$tmpfile" - -l eng | ${ocr_cmd} && rm "$tmpfile" ;; | |
| 13 | − | esac | |
| @@ -1,68 +0,0 @@ | |||
| 1 | − | #!/usr/bin/bash | |
| 2 | − | ||
| 3 | − | mkdir -p $HOME/.cache/pirokit | |
| 4 | − | ||
| 5 | − | if [ -z $1 ]; then | |
| 6 | − | query=$(echo "" | dmenu -p "Search Torrent: ") | |
| 7 | − | else | |
| 8 | − | query=$1 | |
| 9 | − | fi | |
| 10 | − | ||
| 11 | − | baseurl="https://1337x.to" | |
| 12 | − | cachedir="$HOME/.cache/pirokit" | |
| 13 | − | query="$(sed 's/ /+/g' <<<$query)" | |
| 14 | − | ||
| 15 | − | #curl -s https://1337x.to/category-search/$query/Movies/1/ > $cachedir/tmp.html | |
| 16 | − | curl -s https://1337x.to/search/$query/1/ > $cachedir/tmp.html | |
| 17 | − | ||
| 18 | − | # Get Titles | |
| 19 | − | grep -o '<a href="/torrent/.*</a>' $cachedir/tmp.html | | |
| 20 | − | sed 's/<[^>]*>//g' > $cachedir/titles.bw | |
| 21 | − | ||
| 22 | − | result_count=$(wc -l $cachedir/titles.bw | awk '{print $1}') | |
| 23 | − | if [ "$result_count" -lt 1 ]; then | |
| 24 | − | notify-send "😔 No Result found. Try again 🔴" | |
| 25 | − | exit 0 | |
| 26 | − | fi | |
| 27 | − | ||
| 28 | − | ||
| 29 | − | # Seeders and Leechers | |
| 30 | − | grep -o '<td class="coll-2 seeds.*</td>\|<td class="coll-3 leeches.*</td>' $cachedir/tmp.html | | |
| 31 | − | sed 's/<[^>]*>//g' | sed 'N;s/\n/ /' > $cachedir/seedleech.bw | |
| 32 | − | ||
| 33 | − | # Size | |
| 34 | − | grep -o '<td class="coll-4 size.*</td>' $cachedir/tmp.html | | |
| 35 | − | sed 's/<span class="seeds">.*<\/span>//g' | | |
| 36 | − | sed -e 's/<[^>]*>//g' > $cachedir/size.bw | |
| 37 | − | ||
| 38 | − | # Links | |
| 39 | − | grep -E '/torrent/' $cachedir/tmp.html | | |
| 40 | − | sed -E 's#.*(/torrent/.*)/">.*/#\1#' | | |
| 41 | − | sed 's/td>//g' > $cachedir/links.bw | |
| 42 | − | ||
| 43 | − | ||
| 44 | − | ||
| 45 | − | # Clearning up some data to display | |
| 46 | − | sed 's/\./ /g; s/\-/ /g' $cachedir/titles.bw | | |
| 47 | − | sed 's/[^A-Za-z0-9 ]//g' | tr -s " " > $cachedir/tmp && mv $cachedir/tmp $cachedir/titles.bw | |
| 48 | − | ||
| 49 | − | awk '{print NR " - ["$0"]"}' $cachedir/size.bw > $cachedir/tmp && mv $cachedir/tmp $cachedir/size.bw | |
| 50 | − | awk '{print "[S:"$1 ", L:"$2"]" }' $cachedir/seedleech.bw > $cachedir/tmp && mv $cachedir/tmp $cachedir/seedleech.bw | |
| 51 | − | ||
| 52 | − | # Getting the line number | |
| 53 | − | LINE=$(paste -d\ $cachedir/size.bw $cachedir/seedleech.bw $cachedir/titles.bw | | |
| 54 | − | dmenu -i -l 25 | | |
| 55 | − | cut -d\- -f1 | | |
| 56 | − | awk '{$1=$1; print}') | |
| 57 | − | ||
| 58 | − | url=$(head -n $LINE $cachedir/links.bw | tail -n +$LINE) | |
| 59 | − | fullURL="${baseurl}${url}/" | |
| 60 | − | ||
| 61 | − | # Requesting page for magnet link | |
| 62 | − | curl -s $fullURL > $cachedir/tmp.html | |
| 63 | − | magnet=$(grep -Po "magnet:\?xt=urn:btih:[a-zA-Z0-9]*" $cachedir/tmp.html | head -n 1) | |
| 64 | − | ||
| 65 | − | transadd "$magnet" | |
| 66 | − | ||
| 67 | − | # Simple notification | |
| 68 | − | notify-send "⬇️ Start downloading File 📁" | |
| @@ -1,8 +0,0 @@ | |||
| 1 | − | #!/bin/env bash | |
| 2 | − | ||
| 3 | − | mode=$(autorandr --current) | |
| 4 | − | if [[ $mode = 'hybridnew' ]]; then | |
| 5 | − | alacritty --config-file "$XDG_CONFIG_HOME/alacritty/docked.toml" $* | |
| 6 | − | else | |
| 7 | − | alacritty --config-file "$XDG_CONFIG_HOME/alacritty/normal.toml" $* | |
| 8 | − | fi | |
| @@ -1,37 +0,0 @@ | |||
| 1 | − | #!/bin/sh | |
| 2 | − | ||
| 3 | − | # Prints all batteries, their percentage remaining and an emoji corresponding | |
| 4 | − | # to charge status (🔌 for plugged up, 🔋 for discharging on battery, etc.). | |
| 5 | − | ||
| 6 | − | case $BLOCK_BUTTON in | |
| 7 | − | 3) notify-send "🔋 Battery module" "🔋: discharging | |
| 8 | − | 🛑: not charging | |
| 9 | − | ♻: stagnant charge | |
| 10 | − | 🔌: charging | |
| 11 | − | ⚡: charged | |
| 12 | − | ❗: battery very low! | |
| 13 | − | - Scroll to change adjust xbacklight." ;; | |
| 14 | − | 4) xbacklight -inc 10 ;; | |
| 15 | − | 5) xbacklight -dec 10 ;; | |
| 16 | − | 6) "$TERMINAL" -e "$EDITOR" "$0" ;; | |
| 17 | − | esac | |
| 18 | − | ||
| 19 | − | # Loop through all attached batteries and format the info | |
| 20 | − | for battery in /sys/class/power_supply/BAT?*; do | |
| 21 | − | # If non-first battery, print a space separator. | |
| 22 | − | [ -n "${capacity+x}" ] && printf " " | |
| 23 | − | # Sets up the status and capacity | |
| 24 | − | case "$(cat "$battery/status" 2>&1)" in | |
| 25 | − | "Full") status="⚡" ;; | |
| 26 | − | "Discharging") status="🔋" ;; | |
| 27 | − | "Charging") status="🔌" ;; | |
| 28 | − | "Not charging") status="🛑" ;; | |
| 29 | − | "Unknown") status="♻️" ;; | |
| 30 | − | *) exit 1 ;; | |
| 31 | − | esac | |
| 32 | − | capacity="$(cat "$battery/capacity" 2>&1)" | |
| 33 | − | # Will make a warn variable if discharging and low | |
| 34 | − | [ "$status" = "🔋" ] && [ "$capacity" -le 25 ] && warn="❗" | |
| 35 | − | # Prints the info | |
| 36 | − | printf "[ %s %s%d%% ]" "$status" "$warn" "$capacity"; unset warn | |
| 37 | − | done && printf "\\n" | |
| @@ -1,3 +0,0 @@ | |||
| 1 | − | #!/bin/sh | |
| 2 | − | # date "+[ %a %d %b %Y] [ %I:%M %P ]" | |
| 3 | − | date "+[ %a %d %b %Y] [ %R ]" | |
| @@ -1,4 +0,0 @@ | |||
| 1 | − | #!/bin/sh | |
| 2 | − | # echo "[ $(free --mebi | sed -n '2{p;q}' | awk '{printf ("%2.2fGiB", ( $3 / 1024), ($2 / 1024))}') $(sensors | awk '/Core 0/ {print " " $3}') ]" | |
| 3 | − | ||
| 4 | − | echo "[ $(free -h --si | sed -n "2s/\([^ ]* *\)\{2\}\([^ ]*\).*/\2/p") $(grep -o "^[^ ]*" /proc/loadavg ) ]" | |
| @@ -1,8 +0,0 @@ | |||
| 1 | − | #!/bin/sh | |
| 2 | − | ||
| 3 | − | # This loop will update the mpd statusbar module whenever a command changes the | |
| 4 | − | # music player's status. mpd must be running on X's start for this to work. | |
| 5 | − | ||
| 6 | − | while : ; do | |
| 7 | − | mpc idle >/dev/null && kill -45 $(pidof dwmblocks) || break | |
| 8 | − | done | |
| @@ -1,11 +0,0 @@ | |||
| 1 | − | #!/bin/sh | |
| 2 | − | ||
| 3 | − | filter() { mpc | sed "/^volume:/d;s/\\&/&/g;s/\\[paused\\].*/⏸/g;/\\[playing\\].*/d;/^ERROR/Q" | paste -sd ' ' -;} | |
| 4 | − | ||
| 5 | − | pidof -x sb-mpdup >/dev/null 2>&1 || sb-mpdup >/dev/null 2>&1 & | |
| 6 | − | ||
| 7 | − | if [ -z "$(filter)" ]; then | |
| 8 | − | echo "" | |
| 9 | − | else | |
| 10 | − | echo "[ $(filter) ]" | |
| 11 | − | fi | |
| @@ -1,3 +0,0 @@ | |||
| 1 | − | #!/bin/sh | |
| 2 | − | ||
| 3 | − | echo "[ $(checkupdates | wc -l) ]" | |
| @@ -1,2 +0,0 @@ | |||
| 1 | − | #!/bin/sh | |
| 2 | − | echo [ "$([ "$(pamixer --get-mute)" = "false" ] && printf ' ' || printf ' ')$(pamixer --get-volume)%" ] | |