summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkrolxon <krolyxon@tutanota.com>2025-08-03 21:29:53 +0530
committerkrolxon <krolyxon@tutanota.com>2025-08-03 21:29:53 +0530
commit3718ac5eb3aae770e0b50e44b514c276376f1bcf (patch)
tree9db1e5af4964e6b1e03f0ecf79f18a8d9de87491
parent216cf47a22e69ec42ba26118dc92154d5ef95862 (diff)
move to hyprland
-rw-r--r--.config/dunst/dunstrc60
-rw-r--r--.config/hypr/hyprland.conf296
-rw-r--r--.config/hypr/hyprlock.conf125
-rw-r--r--.config/hypr/hyprpaper.conf2
-rw-r--r--.config/hypr/hyprsunset.conf12
-rw-r--r--.config/waybar/config.jsonc145
-rw-r--r--.config/waybar/style.css301
-rw-r--r--.config/x11/xinitrc23
-rwxr-xr-x.local/bin/colorpickerbin23168 -> 0 bytes
-rwxr-xr-x.local/bin/dmenurecord123
-rwxr-xr-x.local/bin/jrun14
-rwxr-xr-x.local/bin/maimshot13
-rwxr-xr-x.local/bin/pirokit68
-rwxr-xr-x.local/bin/run_alacritty8
-rwxr-xr-x.local/bin/statusbar/sb-battery37
-rwxr-xr-x.local/bin/statusbar/sb-clock3
-rwxr-xr-x.local/bin/statusbar/sb-memory4
-rwxr-xr-x.local/bin/statusbar/sb-mpdup8
-rwxr-xr-x.local/bin/statusbar/sb-music11
-rwxr-xr-x.local/bin/statusbar/sb-updates3
-rwxr-xr-x.local/bin/statusbar/sb-volume2
21 files changed, 881 insertions, 377 deletions
diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
deleted file mode 100644
index 770fd82..0000000
--- a/.config/dunst/dunstrc
+++ /dev/null
@@ -1,60 +0,0 @@
-# New Start: A modern Arch workflow built with an emphasis on functionality.
-# Copyright (C) 2018 Donovan Glover
-
-# NOTE: This file is automatically generated by pywal. Do not edit it by hand.
-
-[global]
- # Make the width 3740 (3840 - 100), have 50 left margin and 95 above
- # geometry = "3740x5-50+95"
- offset = 3x20
-
- # Show multiple notifications in the same box
- separator_height = 0
-
- # Add vertical padding to the inside of the notification
- padding = 8
-
- # Add horizontal padding for when the text gets long enough
- horizontal_padding = 8
-
- # The frame color and width of the notification
- frame_color = "#224487"
- frame_width = 2
-
- # How long a user needs to be idle for sticky notifications
- idle_threshold = 120
-
- # Font and typography settings
- font = JetbrainsMono Nerd Font 10
- alignment = left
- word_wrap = yes
-
- # Format for how notifications will be displayed
- # Usage: `notify-send 'Title' 'Summary'`
- format = "<b>%s</b>\n%b"
-
- # Allow some HTML tags like <i> and <u> in notifications
- markup = full
- max_icon_size = 120
- transparency = 5
-
-# These are the keybindings used to control dunst notifications
-[shortcuts]
- close = ctrl+space
- close_all = ctrl+shift+space
- history = ctrl+grave
-
-# Set the background and foreground (text) color for all notifications
-[urgency_low]
- background = "#000000"
- foreground = "#ffffff"
-
-[urgency_normal]
- background = "#000000"
- foreground = "#ffffff"
-
-[urgency_critical]
- background = "#000000"
- foreground = "#ffffff"
-
-# vim:ft=cfg
diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
new file mode 100644
index 0000000..cd2cd82
--- /dev/null
+++ b/.config/hypr/hyprland.conf
@@ -0,0 +1,296 @@
+autogenerated = 0
+
+env = HYPRSHOT_DIR,/home/krolyxon/pix/ss/
+
+
+plugin {
+ split-monitor-workspaces {
+ count = 10
+ keep_focused = 1
+ enable_notifications = 0
+ enable_persistent_workspaces = 1
+ }
+}
+
+# This is an example Hyprland config file.
+# Refer to the wiki for more information.
+# https://wiki.hypr.land/Configuring/
+
+# Please note not all available settings / options are set here.
+# For a full list, see the wiki
+
+# You can split this configuration into multiple files
+# Create your files separately and then link them to this file like this:
+source = ~/.config/hypr/monitors.conf
+
+
+###################
+### MY PROGRAMS ###
+###################
+# See https://wiki.hypr.land/Configuring/Keywords/
+
+# Set programs that you use
+$terminal = alacritty
+$fileManager = pcmanfm
+# $menu = rofi -show drun
+$menu = wofi --show drun
+$browser = brave
+
+
+#################
+### AUTOSTART ###
+#################
+
+# Autostart necessary processes (like notifications daemons, status bars, etc.)
+# Or execute your favorite apps at launch like this:
+
+exec-once = hyprpm reload -n
+exec-once = waybar & hyprpaper & swaync & hyprsunset
+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 = XCURSOR_SIZE,24
+env = HYPRCURSOR_SIZE,24
+
+
+###################
+### PERMISSIONS ###
+###################
+
+# See https://wiki.hypr.land/Configuring/Permissions/
+# Please note permission changes here require a Hyprland restart and are not applied on-the-fly
+# for security reasons
+
+# ecosystem {
+# enforce_permissions = 1
+# }
+
+# permission = /usr/(bin|local/bin)/grim, screencopy, allow
+# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
+# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
+
+
+#####################
+### LOOK AND FEEL ###
+#####################
+
+# Refer to https://wiki.hypr.land/Configuring/Variables/
+
+# https://wiki.hypr.land/Configuring/Variables/#general
+general {
+ gaps_in = 10
+ gaps_out = 10
+ border_size = 2
+ resize_on_border = false
+ allow_tearing = false
+ col.active_border = rgba(1b9993ee)
+ col.inactive_border = rgba(888e8eaa)
+ layout = master
+}
+
+# https://wiki.hypr.land/Configuring/Variables/#decoration
+decoration {
+ rounding = 0
+
+ blur {
+ enabled = true
+ size = 3
+ passes = 1
+ }
+
+ # drop_shadow = yes
+ # shadow_range = 4
+ # shadow_render_power = 3
+ # col.shadow = rgba(1a1a1aee)
+}
+# https://wiki.hypr.land/Configuring/Variables/#animations
+
+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. :(
+}
+
+
+#############
+### 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
+bind = $mainMod, tab, cyclenext
+bind = $mainMod, b, exec, killall waybar || waybar
+
+# Applications
+bind = $mainMod, W, exec, $browser
+
+# Music Controls
+bind = $mainMod, m, exec, $terminal -e "ncmpcpp"
+bind = $mainMod, p, exec, mpc toggle
+bind = $mainMod, comma, exec, mpc seek -10
+bind = $mainMod, period, exec, mpc seek -10
+
+# Move focus with mainMod + arrow keys
+bind = $mainMod, h, movefocus, l
+bind = $mainMod, j, movefocus, r
+bind = $mainMod, k, movefocus, u
+bind = $mainMod, l, movefocus, d
+
+# 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-movetoworkspace, 1
+bind = $mainMod SHIFT, 2, split-movetoworkspace, 2
+bind = $mainMod SHIFT, 3, split-movetoworkspace, 3
+bind = $mainMod SHIFT, 4, split-movetoworkspace, 4
+bind = $mainMod SHIFT, 5, split-movetoworkspace, 5
+bind = $mainMod SHIFT, 6, split-movetoworkspace, 6
+bind = $mainMod SHIFT, 7, split-movetoworkspace, 7
+bind = $mainMod SHIFT, 8, split-movetoworkspace, 8
+bind = $mainMod SHIFT, 9, split-movetoworkspace, 9
+bind = $mainMod SHIFT, 0, split-movetoworkspace, 10
+
+# Example special workspace (scratchpad)
+bind = $mainMod, S, togglespecialworkspace, magic
+bind = $mainMod SHIFT, S, movetoworkspace, special:magic
+
+# 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
diff --git a/.config/hypr/hyprlock.conf b/.config/hypr/hyprlock.conf
new file mode 100644
index 0000000..bd6bce8
--- /dev/null
+++ b/.config/hypr/hyprlock.conf
@@ -0,0 +1,125 @@
+# BACKGROUND
+background {
+ monitor =
+ path = ~/.config/hypr/hyprlock.png
+ blur_passes = 0
+ contrast = 0.8916
+ brightness = 0.8916
+ vibrancy = 0.8916
+ vibrancy_darkness = 0.0
+}
+
+# GENERAL
+general {
+ no_fade_in = false
+ grace = 0
+ disable_loading_bar = false
+}
+
+# Profie-Photo
+image {
+ monitor =
+ path = $HOME/.config/hypr/thunder.png
+ border_size = 2
+ border_color = rgba(216, 222, 233, 0.80)
+ size = 100
+ rounding = -1
+ rotate = 0
+ reload_time = -1
+ reload_cmd =
+ position = 25, 200
+ halign = center
+ valign = center
+}
+
+# NAME
+label {
+ monitor =
+ text = THUNDER
+ color = rgba(216, 222, 233, 0.80)
+ outline_thickness = 0
+ dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
+ dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
+ dots_center = true
+ font_size = 20
+ font_family = SF Pro Display Bold
+ position = 25, 110
+ halign = center
+ valign = center
+}
+
+# Time
+label {
+ monitor =
+ text = cmd[update:1000] echo "<span>$(date +"%I:%M")</span>"
+ color = rgba(216, 222, 233, 0.80)
+ font_size = 60
+ font_family = SF Pro Display Bold
+ position = 30, -8
+ halign = center
+ valign = center
+}
+
+# Day-Month-Date
+label {
+ monitor =
+ text = cmd[update:1000] echo -e "$(date +"%A, %B %d")"
+ color = rgba(216, 222, 233, .80)
+ font_size = 19
+ font_family = SF Pro Display Bold
+ position = 35, -60
+ halign = center
+ valign = center
+}
+
+# USER-BOX
+shape {
+ monitor =
+ size = 320, 55
+ color = rgba(255, 255, 255, 0.1)
+ rounding = -1
+ border_size = 0
+ border_color = rgba(255, 255, 255, 1)
+ rotate = 0
+ xray = false # if true, make a "hole" in the background (rectangle of specified size, no rotation)
+
+ position = 34, -190
+ halign = center
+ valign = center
+}
+
+# USER
+label {
+ monitor =
+ text =  $USER
+ color = rgba(216, 222, 233, 0.80)
+ outline_thickness = 0
+ dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
+ dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
+ dots_center = true
+ font_size = 16
+ font_family = SF Pro Display Bold
+ position = 38, -190
+ halign = center
+ valign = center
+}
+
+# INPUT FIELD
+input-field {
+ monitor =
+ size = 320, 55
+ outline_thickness = 0
+ dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
+ dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
+ dots_center = true
+ outer_color = rgba(255, 255, 255, 0)
+ inner_color = rgba(255, 255, 255, 0.1)
+ font_color = rgb(200, 200, 200)
+ fade_on_empty = false
+ font_family = SF Pro Display Bold
+ placeholder_text = <i><span foreground="##ffffff99">πŸ”’ Enter Pass</span></i>
+ hide_input = false
+ position = 34, -268
+ halign = center
+ valign = center
+}
diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf
new file mode 100644
index 0000000..569f976
--- /dev/null
+++ b/.config/hypr/hyprpaper.conf
@@ -0,0 +1,2 @@
+preload = ~/pix/wallpapers/morpheus-red-pill-blue-pill.jpg
+wallpaper = ,~/pix/wallpapers/morpheus-red-pill-blue-pill.jpg
diff --git a/.config/hypr/hyprsunset.conf b/.config/hypr/hyprsunset.conf
new file mode 100644
index 0000000..7bd6a1b
--- /dev/null
+++ b/.config/hypr/hyprsunset.conf
@@ -0,0 +1,12 @@
+max-gamma = 150
+
+profile {
+ time = 7:30
+ identity = true
+}
+
+profile {
+ time = 21:00
+ temperature = 5500
+ gamma = 0.8
+}
diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc
new file mode 100644
index 0000000..abaced1
--- /dev/null
+++ b/.config/waybar/config.jsonc
@@ -0,0 +1,145 @@
+{
+ // "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" : [
+ ],
+ "modules-right": [
+ "mpd",
+ "pulseaudio",
+ "battery",
+ "cpu",
+ "memory",
+ "network",
+ "custom/date",
+ "clock",
+ "tray",
+ ],
+ // 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
+ },
+ "tray": {
+ "icon-size": 21,
+ "spacing": 12
+ },
+ "clock": {
+ "timezone": "Asia/Kolkata",
+ "tooltip-format": "<tt><big>{calendar}</big></tt>",
+ "format": "σ°₯” {:%H:%M}",
+ "interval": 5
+ },
+ "custom/date": {
+ "timezone": "Asia/Kolkata",
+ "exec": "date +'%a %Y-%m-%d'",
+ "format": "σ°ƒ­ {}",
+ "interval": 1,
+ "tooltip": false
+ },
+ "cpu": {
+ "format": "ο‹› {usage:2}%",
+ "tooltip": false,
+ "interval": 1
+ },
+ "memory": {
+ "format": " {:2}%",
+ "interval": 1
+ },
+ "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": [
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ "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",
+ },
+ "mpd": {
+ "format": "Playing ",
+ "format-paused": "Paused ",
+ "format-stopped": "Stopped ",
+ "max-length": 20,
+ "tooltip": false,
+ "tooltip-format": "{title}\n{artist}\n{album}",
+ "tooltip": true
+ },
+}
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
new file mode 100644
index 0000000..a2f0c3e
--- /dev/null
+++ b/.config/waybar/style.css
@@ -0,0 +1,301 @@
+* {
+ /* `otf-font-awesome` is required to be installed for icons */
+ font-family: JetBrains Mono Nerd Font, FontAwesome;
+ font-size: 13px;
+ font-weight: bold;
+}
+
+window#waybar {
+ background-color: rgba(0, 0, 0, 0);
+ color: #e3e3e3;
+ transition-property: background-color;
+ transition-duration: .5s;
+ border: none;
+ border-radius: 0;
+}
+
+/**************/
+/* 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: #2e3440;
+
+ border: none;
+ border-radius: 0;
+
+ color: #d8dee9;
+ 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 -2px #eceff4;
+}
+
+/* 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;
+}
+
+#workspaces button:hover {
+ transition-duration: .2s;
+ color: #2e3440;
+ box-shadow: inset 0 -3px #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;
+}
+
+/* empty persistent workspaces */
+#workspaces button.empty {
+ background-color: #2e3440;
+ box-shadow: none;
+}
+
+/* active or visible workspaces */
+#workspaces button.active,
+#workspaces button.visible {
+ background-color: #4c566a;
+ /* box-shadow: inset 0 -4px #eceff4; */
+}
+
+#workspaces button.urgent {
+ color: #bf616a;
+}
+
+/**************/
+
+#mode {
+ background-color: #64727D;
+ border-bottom: 3px solid #ffffff;
+}
+
+#clock,
+#custom-date,
+#battery,
+#cpu,
+#memory,
+#disk,
+#temperature,
+#backlight,
+#network,
+#pulseaudio,
+#wireplumber,
+#mpris,
+#custom-media,
+#tray,
+#custom-notification,
+#mpd {
+ background-color: #2e3440;
+ 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;
+}
+
+#clock {
+ color: #eceff4;
+}
+
+#custom-date {
+ color: #b48ead;
+}
+
+#battery {
+ color: #ebcb8b;
+}
+
+@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;
+} */
+
+/* #backlight {
+ background-color: #90b1b1;
+} */
+
+#network {
+ color: #5e81ac;
+}
+
+#network.disconnected {
+ color: #81a1c1;
+}
+
+#network.linked {
+ color: #bf616a;
+}
+
+#pulseaudio {
+ color: #d8dee9;
+}
+
+#mpris,
+#custom-media {
+ background-color: #66cc99;
+ color: black;
+}
+
+#mpris.firefox,
+#custom-media.firefox {
+ background-color: #FF9500;
+ color: black;
+}
+
+#mpris.spotify,
+#custom-media.spotify {
+ background-color: #66cc99;
+ color: #191414;
+}
+
+#mpris.vlc,
+#custom-media.vlc {
+ background-color: #E85E00;
+ color: black;
+}
+
+#mpris.jellyfin,
+#custom-media.jellyfin {
+ /* https://jellyfin.org/docs/general/contributing/branding */
+ color: #000B25;
+ background-color: #AA5CC3;
+}
+
+
+
+#temperature {
+ color: #d08770;
+}
+
+#temperature.critical {
+ color: #bf616a;
+}
+
+#tray {
+ color: #eceff4;
+}
+
+#tray>.passive {
+ -gtk-icon-effect: dim;
+}
+
+#tray>.needs-attention {
+ -gtk-icon-effect: highlight;
+ background-color: #bf616a;
+}
+
+/* #idle_inhibitor {
+ background-color: #2d3436;
+} */
+
+/* #idle_inhibitor.activated {
+ background-color: #ecf0f1;
+ color: #2d3436;
+} */
+
+/* #mpd {
+ background-color: #66cc99;
+ color: #2a5c45;
+}
+
+#mpd.disconnected {
+ background-color: #bf616a;
+}
+
+#mpd.stopped {
+ background-color: #90b1b1;
+}
+
+#mpd.paused {
+ background-color: #51a37a;
+} */
+
+/* #language {
+ background: #00b093;
+ color: #740864;
+ padding: 0 5px;
+ margin: 0 5px;
+ min-width: 16px;
+} */
+
+/* #keyboard-state {
+ background: #97e1ad;
+ color: black;
+ padding: 0 0px;
+ margin: 0 5px;
+ min-width: 16px;
+}
+
+#keyboard-state > label {
+ padding: 0 5px;
+}
+
+#keyboard-state > label.locked {
+ background: rgba(0, 0, 0, 0.2);
+}
+
+#scratchpad {
+ background: rgba(0, 0, 0, 0.2);
+}
+
+#scratchpad.empty {
+ background-color: transparent;
+} */
diff --git a/.config/x11/xinitrc b/.config/x11/xinitrc
deleted file mode 100644
index e2b6889..0000000
--- a/.config/x11/xinitrc
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-
-#setwall &
-
-if [ $(envycontrol -q) = "nvidia" ]; then
- xrandr --setprovideroutputsource modesetting NVIDIA-0
- xrandr --auto
- xrandr --dpi 96
-fi
-
-# xwallpaper --zoom ~/.local/share/wallpaper3.jpg
-# xwallpaper --zoom $(find .local/share/wallpapers -type f | shuf -n 1)
-xwallpaper --zoom $(find pix/wallpapers -type f | grep "jpg" | shuf -n 1)
-xcompmgr &
-xset r rate 300 50
-xrandr -r 60.00
-unclutter &
-dwmblocks &
-dunst &
-backlight_control 20 &
-redshift &
-# exec dwm > /dev/null 2>&1
-while type dwm > /dev/null ; do dwm && continue || break ; done
diff --git a/.local/bin/colorpicker b/.local/bin/colorpicker
deleted file mode 100755
index ab19d07..0000000
--- a/.local/bin/colorpicker
+++ /dev/null
Binary files differ
diff --git a/.local/bin/dmenurecord b/.local/bin/dmenurecord
deleted file mode 100755
index ca6b011..0000000
--- a/.local/bin/dmenurecord
+++ /dev/null
@@ -1,123 +0,0 @@
-#!/bin/sh
-
-# Usage:
-# `$0`: Ask for recording type via dmenu
-# `$0 screencast`: Record both audio and screen
-# `$0 video`: Record only screen
-# `$0 audio`: Record only audio
-# `$0 kill`: Kill existing recording
-#
-# If there is already a running instance, user will be prompted to end it.
-
-getdim() { xrandr | grep -oP '(?<=current ).*(?=,)' | tr -d ' ' ;}
-
-updateicon() { \
- echo "$1" > /tmp/recordingicon
- pkill -RTMIN+9 "${STATUSBAR:-dwmblocks}"
- }
-
-killrecording() {
- recpid="$(cat /tmp/recordingpid)"
- kill -15 "$recpid"
- rm -f /tmp/recordingpid
- updateicon ""
- pkill -RTMIN+9 "${STATUSBAR:-dwmblocks}"
- }
-
-screencast() { \
- ffmpeg -y \
- -f x11grab \
- -framerate 30 \
- -s "$(getdim)" \
- -i "$DISPLAY" \
- -r 24 \
- -use_wallclock_as_timestamps 1 \
- -f alsa -thread_queue_size 1024 -i default \
- -c:v h264 \
- -crf 0 -preset ultrafast -c:a aac \
- "$HOME/screencast-$(date '+%y%m%d-%H%M-%S').mp4" &
- echo $! > /tmp/recordingpid
- updateicon "βΊοΈπŸŽ™οΈ"
- }
-
-video() { ffmpeg \
- -f x11grab \
- -framerate 30 \
- -s "$(getdim)" \
- -i "$DISPLAY" \
- -c:v libx264 -qp 0 -r 30 \
- "$HOME/video-$(date '+%y%m%d-%H%M-%S').mkv" &
- echo $! > /tmp/recordingpid
- updateicon "⏺️"
- }
-
-webcamhidef() { ffmpeg \
- -f v4l2 \
- -i /dev/video0 \
- -video_size 1920x1080 \
- "$HOME/webcam-$(date '+%y%m%d-%H%M-%S').mkv" &
- echo $! > /tmp/recordingpid
- updateicon "πŸŽ₯"
- }
-
-webcam() { ffmpeg \
- -f v4l2 \
- -i /dev/video0 \
- -video_size 640x480 \
- "$HOME/webcam-$(date '+%y%m%d-%H%M-%S').mkv" &
- echo $! > /tmp/recordingpid
- updateicon "πŸŽ₯"
- }
-
-
-audio() { \
- ffmpeg \
- -f alsa -i default \
- -c:a flac \
- "$HOME/audio-$(date '+%y%m%d-%H%M-%S').flac" &
- echo $! > /tmp/recordingpid
- updateicon "πŸŽ™οΈ"
- }
-
-askrecording() { \
- choice=$(printf "screencast\\nvideo\\nvideo selected\\naudio\\nwebcam\\nwebcam (hi-def)" | dmenu -i -p "Select recording style:")
- case "$choice" in
- screencast) screencast;;
- audio) audio;;
- video) video;;
- *selected) videoselected;;
- webcam) webcam;;
- "webcam (hi-def)") webcamhidef;;
- esac
- }
-
-asktoend() { \
- response=$(printf "No\\nYes" | dmenu -i -p "Recording still active. End recording?") &&
- [ "$response" = "Yes" ] && killrecording
- }
-
-videoselected()
-{
- slop -f "%x %y %w %h" > /tmp/slop
- read -r X Y W H < /tmp/slop
- rm /tmp/slop
-
- ffmpeg \
- -f x11grab \
- -framerate 30 \
- -video_size "$W"x"$H" \
- -i :0.0+"$X,$Y" \
- -c:v libx264 -qp 0 -r 30 \
- "$HOME/box-$(date '+%y%m%d-%H%M-%S').mkv" &
- echo $! > /tmp/recordingpid
- updateicon "⏺️"
-}
-
-case "$1" in
- screencast) screencast;;
- audio) audio;;
- video) video;;
- *selected) videoselected;;
- kill) killrecording;;
- *) ([ -f /tmp/recordingpid ] && asktoend && exit) || askrecording;;
-esac
diff --git a/.local/bin/jrun b/.local/bin/jrun
deleted file mode 100755
index 8445dd3..0000000
--- a/.local/bin/jrun
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/env bash
-
-# Script to run simple .java files.
-# because its annoying to have .class files clutter your working directory;
-
-if [ -z $* ]; then
- echo "usage: jrun <filename>"
-else
- filename="${1%.*}"
- \cp -f "$1" /tmp/"$1"
- javac -d /tmp "$1"
- java -cp /tmp "$filename"
-fi
-
diff --git a/.local/bin/maimshot b/.local/bin/maimshot
deleted file mode 100755
index db4780c..0000000
--- a/.local/bin/maimshot
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-ocr_cmd="xclip -sel clip"
-
-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
- "a selected area (copy)") maim -u -s | xclip -selection clipboard -t image/png ;;
- "current window (copy)") maim -i "$(xdotool getactivewindow)" | xclip -selection clipboard -t image/png ;;
- "full screen (copy)") sleep 0.2 ; maim | xclip -selection clipboard -t image/png ;;
- "a selected area") maim -u -s ~/pix/ss/pic-selected-$(uuidgen | awk -F- '{printf $2}')-"$(date '+%y-%m-%d').png" ;;
- "current window") maim -i "$(xdotool getactivewindow)" ~/pix/ss/pic-window-"$(uuidgen | awk -F- '{printf $2}')-$(date '+%y-%m-%d').png" ;;
- "full screen") sleep 0.2 ; maim ~/pix/ss/pic-full-"$(uuidgen | awk -F- '{printf $2}')-$(date '+%y-%m-%d').png" ;;
- "a selected area (OCR)") tmpfile=$(mktemp /tmp/ocr-XXXXXX.png) && maim -u -s > "$tmpfile" && tesseract "$tmpfile" - -l eng | ${ocr_cmd} && rm "$tmpfile" ;;
-esac
diff --git a/.local/bin/pirokit b/.local/bin/pirokit
deleted file mode 100755
index 6986780..0000000
--- a/.local/bin/pirokit
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/usr/bin/bash
-
-mkdir -p $HOME/.cache/pirokit
-
-if [ -z $1 ]; then
- query=$(echo "" | dmenu -p "Search Torrent: ")
-else
- query=$1
-fi
-
-baseurl="https://1337x.to"
-cachedir="$HOME/.cache/pirokit"
-query="$(sed 's/ /+/g' <<<$query)"
-
-#curl -s https://1337x.to/category-search/$query/Movies/1/ > $cachedir/tmp.html
-curl -s https://1337x.to/search/$query/1/ > $cachedir/tmp.html
-
-# Get Titles
-grep -o '<a href="/torrent/.*</a>' $cachedir/tmp.html |
- sed 's/<[^>]*>//g' > $cachedir/titles.bw
-
-result_count=$(wc -l $cachedir/titles.bw | awk '{print $1}')
-if [ "$result_count" -lt 1 ]; then
- notify-send "πŸ˜” No Result found. Try again πŸ”΄"
- exit 0
-fi
-
-
-# Seeders and Leechers
-grep -o '<td class="coll-2 seeds.*</td>\|<td class="coll-3 leeches.*</td>' $cachedir/tmp.html |
- sed 's/<[^>]*>//g' | sed 'N;s/\n/ /' > $cachedir/seedleech.bw
-
-# Size
-grep -o '<td class="coll-4 size.*</td>' $cachedir/tmp.html |
- sed 's/<span class="seeds">.*<\/span>//g' |
- sed -e 's/<[^>]*>//g' > $cachedir/size.bw
-
-# Links
-grep -E '/torrent/' $cachedir/tmp.html |
- sed -E 's#.*(/torrent/.*)/">.*/#\1#' |
- sed 's/td>//g' > $cachedir/links.bw
-
-
-
-# Clearning up some data to display
-sed 's/\./ /g; s/\-/ /g' $cachedir/titles.bw |
- sed 's/[^A-Za-z0-9 ]//g' | tr -s " " > $cachedir/tmp && mv $cachedir/tmp $cachedir/titles.bw
-
-awk '{print NR " - ["$0"]"}' $cachedir/size.bw > $cachedir/tmp && mv $cachedir/tmp $cachedir/size.bw
-awk '{print "[S:"$1 ", L:"$2"]" }' $cachedir/seedleech.bw > $cachedir/tmp && mv $cachedir/tmp $cachedir/seedleech.bw
-
-# Getting the line number
-LINE=$(paste -d\ $cachedir/size.bw $cachedir/seedleech.bw $cachedir/titles.bw |
- dmenu -i -l 25 |
- cut -d\- -f1 |
- awk '{$1=$1; print}')
-
-url=$(head -n $LINE $cachedir/links.bw | tail -n +$LINE)
-fullURL="${baseurl}${url}/"
-
-# Requesting page for magnet link
-curl -s $fullURL > $cachedir/tmp.html
-magnet=$(grep -Po "magnet:\?xt=urn:btih:[a-zA-Z0-9]*" $cachedir/tmp.html | head -n 1)
-
-transadd "$magnet"
-
-# Simple notification
-notify-send "⬇️ Start downloading File πŸ“"
diff --git a/.local/bin/run_alacritty b/.local/bin/run_alacritty
deleted file mode 100755
index af0ecc2..0000000
--- a/.local/bin/run_alacritty
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/env bash
-
-mode=$(autorandr --current)
-if [[ $mode = 'hybridnew' ]]; then
- alacritty --config-file "$XDG_CONFIG_HOME/alacritty/docked.toml" $*
-else
- alacritty --config-file "$XDG_CONFIG_HOME/alacritty/normal.toml" $*
-fi
diff --git a/.local/bin/statusbar/sb-battery b/.local/bin/statusbar/sb-battery
deleted file mode 100755
index 513cb1e..0000000
--- a/.local/bin/statusbar/sb-battery
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-
-# Prints all batteries, their percentage remaining and an emoji corresponding
-# to charge status (πŸ”Œ for plugged up, πŸ”‹ for discharging on battery, etc.).
-
-case $BLOCK_BUTTON in
- 3) notify-send "πŸ”‹ Battery module" "πŸ”‹: discharging
-πŸ›‘: not charging
-β™»: stagnant charge
-πŸ”Œ: charging
-⚑: charged
-❗: battery very low!
-- Scroll to change adjust xbacklight." ;;
- 4) xbacklight -inc 10 ;;
- 5) xbacklight -dec 10 ;;
- 6) "$TERMINAL" -e "$EDITOR" "$0" ;;
-esac
-
-# Loop through all attached batteries and format the info
-for battery in /sys/class/power_supply/BAT?*; do
- # If non-first battery, print a space separator.
- [ -n "${capacity+x}" ] && printf " "
- # Sets up the status and capacity
- case "$(cat "$battery/status" 2>&1)" in
- "Full") status="⚑" ;;
- "Discharging") status="πŸ”‹" ;;
- "Charging") status="πŸ”Œ" ;;
- "Not charging") status="πŸ›‘" ;;
- "Unknown") status="♻️" ;;
- *) exit 1 ;;
- esac
- capacity="$(cat "$battery/capacity" 2>&1)"
- # Will make a warn variable if discharging and low
- [ "$status" = "πŸ”‹" ] && [ "$capacity" -le 25 ] && warn="❗"
- # Prints the info
- printf "[ %s %s%d%% ]" "$status" "$warn" "$capacity"; unset warn
-done && printf "\\n"
diff --git a/.local/bin/statusbar/sb-clock b/.local/bin/statusbar/sb-clock
deleted file mode 100755
index 3a1b2ee..0000000
--- a/.local/bin/statusbar/sb-clock
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-# date "+[  %a %d %b %Y] [ ο€— %I:%M %P ]"
-date "+[  %a %d %b %Y] [ ο€— %R ]"
diff --git a/.local/bin/statusbar/sb-memory b/.local/bin/statusbar/sb-memory
deleted file mode 100755
index b894ca1..0000000
--- a/.local/bin/statusbar/sb-memory
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-# echo "[ ο‹› $(free --mebi | sed -n '2{p;q}' | awk '{printf ("%2.2fGiB", ( $3 / 1024), ($2 / 1024))}') $(sensors | awk '/Core 0/ {print " " $3}') ]"
-
-echo "[ ο‹› $(free -h --si | sed -n "2s/\([^ ]* *\)\{2\}\([^ ]*\).*/\2/p")  $(grep -o "^[^ ]*" /proc/loadavg ) ]"
diff --git a/.local/bin/statusbar/sb-mpdup b/.local/bin/statusbar/sb-mpdup
deleted file mode 100755
index 770d44d..0000000
--- a/.local/bin/statusbar/sb-mpdup
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-# This loop will update the mpd statusbar module whenever a command changes the
-# music player's status. mpd must be running on X's start for this to work.
-
-while : ; do
- mpc idle >/dev/null && kill -45 $(pidof dwmblocks) || break
-done
diff --git a/.local/bin/statusbar/sb-music b/.local/bin/statusbar/sb-music
deleted file mode 100755
index 0a8e0ca..0000000
--- a/.local/bin/statusbar/sb-music
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-filter() { mpc | sed "/^volume:/d;s/\\&/&amp;/g;s/\\[paused\\].*/⏸/g;/\\[playing\\].*/d;/^ERROR/Q" | paste -sd ' ' -;}
-
-pidof -x sb-mpdup >/dev/null 2>&1 || sb-mpdup >/dev/null 2>&1 &
-
-if [ -z "$(filter)" ]; then
- echo ""
-else
- echo "[ $(filter) ]"
-fi
diff --git a/.local/bin/statusbar/sb-updates b/.local/bin/statusbar/sb-updates
deleted file mode 100755
index e7683aa..0000000
--- a/.local/bin/statusbar/sb-updates
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-echo "[ 󰛀 $(checkupdates | wc -l) ]"
diff --git a/.local/bin/statusbar/sb-volume b/.local/bin/statusbar/sb-volume
deleted file mode 100755
index eefed94..0000000
--- a/.local/bin/statusbar/sb-volume
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-echo [ "$([ "$(pamixer --get-mute)" = "false" ] && printf ' ' || printf ' ')$(pamixer --get-volume)%" ]