commit fb30bdc98550d39d4a5739f7ca4d245e4d3cfb97 Author: emily Date: Mon Feb 5 22:40:28 2024 +0100 first commit uwu diff --git a/hyprland.conf b/hyprland.conf new file mode 100644 index 0000000..9f58f31 --- /dev/null +++ b/hyprland.conf @@ -0,0 +1,357 @@ +# exec once +exec-once=~/.config/hypr/scripts/startup +exec-once = wpaperd & +exec-once = wlsunset -l 51.4 -L 6.9 & + +# env vars +env = QT_QPA_PLATFORM,wayland +env = GDK_BACKEND,wayland,x11 +env = SDL_VIDEODRIVER,wayland +env = MOZ_ENABLE_WAYLAND,1 + +# Theme +$gradient_angle = 45deg +$active_border_col_1 = 0xFFB4A1DB +$active_border_col_2 = 0xFFD04E9D +$inactive_border_col_1 = 1e2030 +$inactive_border_col_2 = 1e2030 +$active_shadow_col = 0x66000000 +$inactive_shadow_col = 0x66000000 +$group_border_col = 0xFFDB695B +$group_border_active_col = 0xFF4BC66D + +general { + border_size = 1 + gaps_in = 4 + gaps_out = 8 + col.active_border = $active_border_col_1 $active_border_col_2 $gradient_angle + col.inactive_border = $inactive_border_col_1 $inactive_border_col_2 $gradient_angle + cursor_inactive_timeout = 30 + layout = dwindle +} + +decoration { + rounding = 8 + active_opacity = 1.0 + inactive_opacity = 1.0 + fullscreen_opacity = 1.0 + blur { + enabled = true + passes = 2 + size = 8 + xray = false + } + shadow_range = 10 + col.shadow = $active_shadow_col + col.shadow_inactive = $inactive_shadow_col + dim_inactive = false + dim_strength = 0.5 +} + +animations { + enabled = true + bezier = wind, 0.05, 0.9, 0.1, 1.05 + bezier = winMov, 0.05, 0.9, 0.1, 1.1 + bezier = winIn, 0.1, 1.1, 0.1, 1.1 + bezier = winOut, 0.3, -0.3, 0, 1 + bezier = liner, 1, 1, 1, 1 + animation = windows, 1, 6, wind, slide + animation = windowsIn, 1, 8, winIn, slide + animation = windowsOut, 1, 5, winOut, slide + animation = windowsMove, 1, 6, winMov, slide + animation = border, 1, 1, liner + animation = borderangle, 1, 30, liner, loop + animation = fade, 1, 10, default + animation = workspaces, 1, 8, wind +} + +input { + kb_model = + kb_layout = de + kb_variant = neo_qwerty + kb_options = grp:alt_shift_toggle + kb_file = + sensitivity = 0.0 + accel_profile = adaptive + scroll_method = 2fg + scroll_button = 0 + natural_scroll = false + follow_mouse = 1 + float_switch_override_focus = 2 + touchpad { + disable_while_typing = true + natural_scroll = true + scroll_factor = 0 + clickfinger_behavior = false + tap-to-click = false + drag_lock = true + } +} + +device:syna8013:00-06cb:ce69-touchpad { + sensitivity = 0.3 +} + +device:logitech-m705 { + sensitivity = 0.1 + accel_profile = flat +} +device:tpps/2-ibm-trackpoint { + sensitivity = 0.2 + scroll_method = on_button_down + accel_profile = flat + +} +device:tpps/2-elan-trackpoint { + sensitivity = 0 + scroll_method = on_button_down + accel_profile = flat + +} + +device:tpps/2-elan-trackpoint { + sensitivity = 0 + scroll_method = on_button_down + accel_profile = flat + +} + +# Workspace Gestures +gestures { + workspace_swipe = true + workspace_swipe_fingers = 3 + workspace_swipe_distance = 300 + workspace_swipe_min_speed_to_force = 15 + workspace_swipe_cancel_ratio = 0.3 + workspace_swipe_forever = true +} + +group { + col.border_inactive = $group_border_col + col.border_active = $group_border_active_col + groupbar { + render_titles = false + } +} + +# Miscellaneous +misc { + disable_hyprland_logo = true + vfr = true + vrr = 1 + mouse_move_enables_dpms = false + animate_manual_resizes = false + no_direct_scanout = true +} + +binds { + pass_mouse_when_bound = false + workspace_back_and_forth = false +} + +xwayland { + force_zero_scaling = true + use_nearest_neighbor = false +} + +debug { + overlay = false +} + +# Output +monitor = eDP-1, 3840x2400@60, 0x0, 1, bitdepth, 10 +monitor = eDP-1, addreserved,-8,0,0,0 +monitor = desc:ASUSTek COMPUTER INC ASUS VA24E M7LMTF021529, 1920x1080@60, -320x-1080, 1 +monitor = desc:ASUSTek COMPUTER INC ASUS VA24E M7LMTF021525, 1920x1080@60, 1600x-1080, 1 +monitor=,preferred,auto,1 + +workspace = 1, monitor:eDP-1, default:true +workspace = 2, monitor:eDP-1 +workspace = 3, monitor:eDP-1 +workspace = 8, monitor:DP-2 +workspace = 9, monitor:DP-3 +workspace = 10, monitor:eDP-1 + +# Layout +dwindle { + force_split = 0 + no_gaps_when_only = 0 +} + +master { + no_gaps_when_only = 0 + orientation = right +} + +# Window Rules +windowrule = float, foot-float +windowrule = float, yad|nm-connection-editor|pavucontrol +windowrule = float, xfce-polkit|kvantummanager|qt5ct|zenity|waypaper +windowrule = float, feh|com.github.weclaw1.ImageRoll|Gpicview|Gimp|MPlayer +windowrule = float, VirtualBox Manager|qemu|Qemu-system-x86_64|PacketTracer +windowrule = float, title:File Operation Progress|Open Files|Media viewer +windowrule = float, title:Confirm to replace files + +windowrule = size 60% 64%, com.github.weclaw1.ImageRoll +windowrule = center, com.github.weclaw1.ImageRoll + +windowrule = animation slide down,foot-full +windowrule = animation slide up,Rofi + +#layerrule = blur, waybar + +# Keybindings +$term = /usr/bin/kitty $HOME/.config/hypr/scripts/term_startup +$volume = ~/.config/hypr/scripts/volume +$screenshot = ~/.config/hypr/scripts/screenshot +$lockscreen = swaylock -f -i ~/.config/hypr/wallpapers/lockscreen.png +$colorpicker = ~/.config/hypr/scripts/colorpicker +$notifycmd = notify-send -h string:x-canonical-private-synchronous:hypr-cfg -u low +$files = dolphin +$browser = MOZ_ENABLE_WAYLAND=1 firefox + +$rofi_launcher = rofi -show drun -theme ~/.config/hypr/rofi/launcher.rasi +$rofi_runner = rofi -show run -theme ~/.config/hypr/rofi/runner.rasi +$rofi_powermenu = ~/.config/hypr/scripts/rofi_powermenu +$rofi_screenshot = ~/.config/hypr/scripts/rofi_screenshot + +# Terminal +bind = SUPER, Return, exec, $term + +# Apps +bind = SUPER, F1, exec, $files +bind = SUPER, F2, exec, $browser + +# Rofi +bind = SUPER, D, exec, $rofi_launcher +bind = SUPER, R, exec, $rofi_runner +bind = SUPER, X, exec, $rofi_powermenu +bind = SUPER, A, exec, $rofi_screenshot + +# Misc +bind = SUPER, C, exec, $colorpicker +bind = CTRL_ALT, L, exec, $lockscreen + +# Scratchpad +bind=SUPER_SHIFT, MINUS, movetoworkspace,special +bind=SUPER, MINUS, togglespecialworkspace, + +# Function keys +bind = , XF86MonBrightnessUp, exec, brightnessctl s +10% +bind = , XF86MonBrightnessDown, exec, brightnessctl s 10%- +bind = , XF86AudioRaiseVolume, exec, $volume --inc +bind = , XF86AudioLowerVolume, exec, $volume --dec +bind = , XF86AudioMute, exec, $volume --toggle +bind = , XF86AudioMicMute, exec, $volume --toggle-mic +bind = , XF86AudioNext, exec, playerctl next +bind = , XF86AudioPrev, exec, playerctl previous +bind = , XF86AudioPlay, exec, playerctl play +bind = , XF86AudioStop, exec, playerctl pause + +# Screenshots +bind = , Print, exec, $screenshot --now +bind = ALT, Print, exec, $screenshot --in5 +bind = SHIFT, Print, exec, $screenshot --in10 +bind = CTRL, Print, exec, $screenshot --win +bind = SUPER, Print, exec, $screenshot --area + +# Hyprland +bind = SUPER_SHIFT, Q, killactive, +bind = CTRL_ALT, Delete, exit, +bind = SUPER, F, fullscreen, 0 +bind = SUPER, F, exec, $notifycmd 'Fullscreen Mode' +bind = SUPER, S, pseudo, +bind = SUPER, S, exec, $notifycmd 'Pseudo Mode' +bind = SUPER_SHIFT, Space, togglefloating, +bind = SUPER_SHIFT, Space, centerwindow, + +# windowgroup +bind = SUPER, G, togglegroup +bind = SUPER, G, exec, $notifycmd 'Toggled Group Mode' +bind = SUPER, H, changegroupactive, b +bind = SUPER, L, changegroupactive, f + +# Change Focusconfig +bind = SUPER, left, movefocus, l +bind = SUPER, H, movefocus, l +bind = SUPER, right, movefocus, r +bind = SUPER, L, movefocus, r +bind = SUPER, up, movefocus, u +bind = SUPER, K, movefocus, u +bind = SUPER, down, movefocus, d +bind = SUPER, J, movefocus, d + +# Move Active +bind = SUPER_SHIFT, left, movewindow, l +bind = SUPER_SHIFT, H, movewindow, l +bind = SUPER_SHIFT, right, movewindow, r +bind = SUPER_SHIFT, L, movewindow, r +bind = SUPER_SHIFT, up, movewindow, u +bind = SUPER_SHIFT, K, movewindow, u +bind = SUPER_SHIFT, down, movewindow, d +bind = SUPER_SHIFT, J, movewindow, d + +# Resize Active +binde = SUPER_CTRL, left, resizeactive, -20 0 +binde = SUPER_CTRL, H, resizeactive, -20 0 +binde = SUPER_CTRL, right, resizeactive, 20 0 +binde = SUPER_CTRL, L, resizeactive, 20 0 +binde = SUPER_CTRL, up, resizeactive, 0 -20 +binde = SUPER_CTRL, K, resizeactive, 0 -20 +binde = SUPER_CTRL, down, resizeactive, 0 20 +binde = SUPER_CTRL, J, resizeactive, 0 20 + +# Move Active (Floating Only) +binde = SUPER_ALT, left, moveactive, -80 0 +binde = SUPER_ALT, H, moveactive, -80 0 +binde = SUPER_ALT, right, moveactive, 80 0 +binde = SUPER_ALT, L, moveactive, 80 0 +binde = SUPER_ALT, up, moveactive, 0 -80 +binde = SUPER_ALT, K, moveactive, 0 -80 +binde = SUPER_ALT, down, moveactive, 0 80 +binde = SUPER_ALT, J, moveactive, 0 80 + +# Switch between windows +bind = SUPER,Tab,cyclenext, +bind = SUPER,Tab,bringactivetotop, + +# Workspaces +bind = SUPER, 1, workspace, 1 +bind = SUPER, 2, workspace, 2 +bind = SUPER, 3, workspace, 3 +bind = SUPER, 4, workspace, 4 +bind = SUPER, 5, workspace, 5 +bind = SUPER, 6, workspace, 6 +bind = SUPER, 7, workspace, 7 +bind = SUPER, 8, workspace, 8 +bind = SUPER, 9, workspace, 9 +bind = SUPER, 0, workspace, 10 + +# Send to Workspaces +bind = SUPER_SHIFT, 1, movetoworkspace, 1 +bind = SUPER_SHIFT, 2, movetoworkspace, 2 +bind = SUPER_SHIFT, 3, movetoworkspace, 3 +bind = SUPER_SHIFT, 4, movetoworkspace, 4 +bind = SUPER_SHIFT, 5, movetoworkspace, 5 +bind = SUPER_SHIFT, 6, movetoworkspace, 6 +bind = SUPER_SHIFT, 7, movetoworkspace, 7 +bind = SUPER_SHIFT, 8, movetoworkspace, 8 +bind = SUPER_SHIFT, 9, movetoworkspace, 9 +bind = SUPER_SHIFT, 0, movetoworkspace, 10 + +# Change Workspace Mode +bind = SUPER_CTRL, F, workspaceopt, allfloat +bind = SUPER_CTRL, F, exec, $notifycmd 'Toggled All Float Mode' +bind = SUPER_CTRL, S, workspaceopt, allpseudo +bind = SUPER_CTRL, S, exec, $notifycmd 'Toggled All Pseudo Mode' + +# Misc +bind = SUPER_SHIFT, P, pin, +bind = SUPER_SHIFT, P, exec, $notifycmd 'Toggled Pin' +bind = SUPER_SHIFT, S, swapnext +bind = SUPER_SHIFT, O, toggleopaque +bindl = ,switch:Lid Switch, exec, $lockscreen + +# Mouse Buttons +bindm=SUPER, mouse:272, movewindow +bindm=SUPER, mouse:273, resizewindow diff --git a/mako/config b/mako/config new file mode 100644 index 0000000..7c0194c --- /dev/null +++ b/mako/config @@ -0,0 +1,56 @@ +## Mako configuration file + +# GLOBAL CONFIGURATION OPTIONS +max-history=100 +sort=-time + +# BINDING OPTIONS +on-button-left=dismiss +on-button-middle=none +on-button-right=dismiss-all +on-touch=dismiss +on-notify=exec mpv /usr/share/sounds/freedesktop/stereo/message.oga + +# STYLE OPTIONS +# font=JetBrains Mono 10 +width=300 +height=100 +margin=10 +padding=15 +border-size=2 +border-radius=15 +icons=1 +max-icon-size=48 +icon-location=left +markup=1 +actions=1 +history=1 +text-alignment=left +default-timeout=5000 +ignore-timeout=0 +max-visible=5 +layer=overlay +anchor=top-right + +background-color=#24273a +text-color=#cad3f5 +border-color=#c6a0f6 +progress-color=over #B4A1DB + +[urgency=low] +border-color=#B4A1DB +default-timeout=2000 + +[urgency=normal] +border-color=#B4A1DB +default-timeout=5000 + +[urgency=high] +border-color=#D04E9D +text-color=#D04E9D +default-timeout=0 + +[category=mpd] +border-color=#E49186 +default-timeout=2000 +group-by=category diff --git a/mako/icons/brightness-100.png b/mako/icons/brightness-100.png new file mode 100644 index 0000000..6656c80 Binary files /dev/null and b/mako/icons/brightness-100.png differ diff --git a/mako/icons/brightness-20.png b/mako/icons/brightness-20.png new file mode 100644 index 0000000..4907992 Binary files /dev/null and b/mako/icons/brightness-20.png differ diff --git a/mako/icons/brightness-40.png b/mako/icons/brightness-40.png new file mode 100644 index 0000000..41b0584 Binary files /dev/null and b/mako/icons/brightness-40.png differ diff --git a/mako/icons/brightness-60.png b/mako/icons/brightness-60.png new file mode 100644 index 0000000..66596fa Binary files /dev/null and b/mako/icons/brightness-60.png differ diff --git a/mako/icons/brightness-80.png b/mako/icons/brightness-80.png new file mode 100644 index 0000000..4952211 Binary files /dev/null and b/mako/icons/brightness-80.png differ diff --git a/mako/icons/dropper.png b/mako/icons/dropper.png new file mode 100644 index 0000000..a2c0288 Binary files /dev/null and b/mako/icons/dropper.png differ diff --git a/mako/icons/microphone-mute.png b/mako/icons/microphone-mute.png new file mode 100644 index 0000000..1780e33 Binary files /dev/null and b/mako/icons/microphone-mute.png differ diff --git a/mako/icons/microphone.png b/mako/icons/microphone.png new file mode 100644 index 0000000..d1b6d76 Binary files /dev/null and b/mako/icons/microphone.png differ diff --git a/mako/icons/music.png b/mako/icons/music.png new file mode 100644 index 0000000..648bcdc Binary files /dev/null and b/mako/icons/music.png differ diff --git a/mako/icons/palette.png b/mako/icons/palette.png new file mode 100644 index 0000000..0e65534 Binary files /dev/null and b/mako/icons/palette.png differ diff --git a/mako/icons/picture.png b/mako/icons/picture.png new file mode 100644 index 0000000..233d9db Binary files /dev/null and b/mako/icons/picture.png differ diff --git a/mako/icons/timer.png b/mako/icons/timer.png new file mode 100644 index 0000000..f37ae53 Binary files /dev/null and b/mako/icons/timer.png differ diff --git a/mako/icons/volume-high.png b/mako/icons/volume-high.png new file mode 100644 index 0000000..26f83cb Binary files /dev/null and b/mako/icons/volume-high.png differ diff --git a/mako/icons/volume-low.png b/mako/icons/volume-low.png new file mode 100644 index 0000000..2a81d5e Binary files /dev/null and b/mako/icons/volume-low.png differ diff --git a/mako/icons/volume-mid.png b/mako/icons/volume-mid.png new file mode 100644 index 0000000..01790b8 Binary files /dev/null and b/mako/icons/volume-mid.png differ diff --git a/mako/icons/volume-mute.png b/mako/icons/volume-mute.png new file mode 100644 index 0000000..a5d32e0 Binary files /dev/null and b/mako/icons/volume-mute.png differ diff --git a/rofi/confirm.rasi b/rofi/confirm.rasi new file mode 100644 index 0000000..a4a66d0 --- /dev/null +++ b/rofi/confirm.rasi @@ -0,0 +1,148 @@ +/** + * Copyright (C) 2020-2023 Aditya Shakya + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 300px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 2px solid; + border-radius: 15px; + border-color: @border; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 0px; + background-color: var(urgent); + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: var(active); + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 6; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 2px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 20"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/rofi/launcher.rasi b/rofi/launcher.rasi new file mode 100644 index 0000000..eb9db2a --- /dev/null +++ b/rofi/launcher.rasi @@ -0,0 +1,202 @@ +/** + * Copyright (C) 2020-2023 Aditya Shakya + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun,run,filebrowser"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + drun-display-format: "{name}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 800px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 2px solid; + border-radius: 15px; + border-color: @border; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + background-color: transparent; + children: [ "inputbar", "message", "listview", "mode-switcher" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 10px; + border-radius: 0px; + background-color: @background-alt; + text-color: @foreground; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Search..."; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 7; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + background-color: transparent; + text-color: @foreground; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @selected; + border-radius: 10px; + background-color: @background-alt; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 6px; + border-radius: 0px; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px 250px; + background-color: transparent; + text-color: @foreground; +} +button { + padding: 10px; + border-radius: 0px; + background-color: @background-alt; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(urgent); + text-color: var(background); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border-radius: 0px; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: transparent; + text-color: @foreground; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground; + blink: true; + markup: true; +} +error-message { + padding: 30px; + background-color: @background; + text-color: @foreground; +} diff --git a/rofi/powermenu.rasi b/rofi/powermenu.rasi new file mode 100644 index 0000000..c29f520 --- /dev/null +++ b/rofi/powermenu.rasi @@ -0,0 +1,141 @@ +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 510px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 2px solid; + border-radius: 15px; + border-color: @border; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 0px; + background-color: var(urgent); + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: var(active); + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 6; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 15px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 20"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/rofi/runner.rasi b/rofi/runner.rasi new file mode 100644 index 0000000..f73d45b --- /dev/null +++ b/rofi/runner.rasi @@ -0,0 +1,202 @@ +/** + * Copyright (C) 2020-2023 Aditya Shakya + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + drun-display-format: "{name}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 600px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 2px solid; + border-radius: 15px; + border-color: @border; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 10px; + border-radius: 0px; + background-color: @background-alt; + text-color: @foreground; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Run..."; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + background-color: transparent; + text-color: @foreground; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @selected; + border-radius: 10px; + background-color: @background-alt; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 6px; + border-radius: 0px; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px 250px; + background-color: transparent; + text-color: @foreground; +} +button { + padding: 10px; + border-radius: 0px; + background-color: @background-alt; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(urgent); + text-color: var(background); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border-radius: 0px; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: transparent; + text-color: @foreground; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground; + blink: true; + markup: true; +} +error-message { + padding: 30px; + background-color: @background; + text-color: @foreground; +} diff --git a/rofi/screenshot.rasi b/rofi/screenshot.rasi new file mode 100644 index 0000000..25367e4 --- /dev/null +++ b/rofi/screenshot.rasi @@ -0,0 +1,148 @@ +/** + * Copyright (C) 2020-2023 Aditya Shakya + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 440px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 2px solid; + border-radius: 15px; + border-color: @border; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 12px; + border-radius: 0px; + background-color: var(urgent); + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: var(active); + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 6; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 15px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 20"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/rofi/shared/colors.rasi b/rofi/shared/colors.rasi new file mode 100644 index 0000000..e94c7d9 --- /dev/null +++ b/rofi/shared/colors.rasi @@ -0,0 +1,13 @@ +/* Copyright (C) 2020-2023 Aditya Shakya */ + +/* Colors */ + +* { + background: #24273a; + background-alt: #1e2030; + border: #c6a0f6; + foreground: #cad3f5; + selected: #c6a0f6; + active: #c6a0f6; + urgent: #ed8796; +} diff --git a/rofi/shared/fonts.rasi b/rofi/shared/fonts.rasi new file mode 100644 index 0000000..616e614 --- /dev/null +++ b/rofi/shared/fonts.rasi @@ -0,0 +1,9 @@ +/* Copyright (C) 2020-2023 Aditya Shakya */ + +/* Text Font */ + +/* +{ + font: "Iosevka Nerd Font 10"; +} +*/ \ No newline at end of file diff --git a/scripts/colorpicker b/scripts/colorpicker new file mode 100755 index 0000000..cbbd257 --- /dev/null +++ b/scripts/colorpicker @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +color=$(grim -g "`slurp -b 20262C00 -p`" -t ppm - | convert - -format '%[pixel:p{0,0}]' txt:- | tail -n1 | cut -d' ' -f4) +image=/tmp/${color}.png + +main() { + if [[ "$color" ]]; then + # copy color code to clipboard + echo $color | tr -d "\n" | wl-copy + # generate preview + convert -size 48x48 xc:"$color" ${image} + # notify about it + notify-send -h string:x-canonical-private-synchronous:sys-notify-picker -u low -i ${image} "$color, copied to clipboard." + fi +} + +main diff --git a/scripts/rofi_powermenu b/scripts/rofi_powermenu new file mode 100755 index 0000000..80a29fd --- /dev/null +++ b/scripts/rofi_powermenu @@ -0,0 +1,97 @@ +#!/usr/bin/env bash + +# Import Current Theme +DIR="$HOME/.config/hypr" +RASI="$DIR/rofi/powermenu.rasi" +CNFR="$DIR/rofi/confirm.rasi" + +# Theme Elements +prompt="`hostname` (`echo $XDG_CURRENT_DESKTOP`)" +mesg="Uptime : `uptime -p | sed -E -e 's/up //g' -e 's/week|weeks/w/g' -e 's/day|days/d/g' -e 's/hour|hours/h/g' -e 's/minute|minutes/m/g'`" + +# Options +option_1="" +option_2="☀" +option_3="" +option_4="" +option_5="↺" +option_6="" +yes='' +no='' + +# Rofi CMD +rofi_cmd() { + rofi -dmenu \ + -p "$prompt" \ + -mesg "$mesg" \ + -markup-rows \ + -theme ${RASI} +} + +# Pass variables to rofi dmenu +run_rofi() { + echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd +} + +# Confirmation CMD +confirm_cmd() { + rofi -dmenu \ + -p 'Confirmation' \ + -mesg 'Are you Sure?' \ + -theme ${CNFR} +} + +# Ask for confirmation +confirm_exit() { + echo -e "$yes\n$no" | confirm_cmd +} + +# Confirm and execute +confirm_run () { + selected="$(confirm_exit)" + if [[ "$selected" == "$yes" ]]; then + ${1} && ${2} && ${3} && ${4} + else + exit + fi +} + +# Execute Command +run_cmd() { + if [[ "$1" == '--opt1' ]]; then + swaylock -f -i ~/.config/hypr/wallpapers/lockscreen.png + elif [[ "$1" == '--opt2' ]]; then + confirm_run 'hyprctl dispatch exit 0' + elif [[ "$1" == '--opt3' ]]; then + confirm_run 'pulsemixer --mute' 'swaylock -f -i ~/.config/hypr/wallpapers/lockscreen.png' 'systemctl suspend' #"$DIR/scripts/lockscreen" + elif [[ "$1" == '--opt4' ]]; then + confirm_run 'systemctl hibernate' + elif [[ "$1" == '--opt5' ]]; then + confirm_run 'systemctl reboot' + elif [[ "$1" == '--opt6' ]]; then + confirm_run 'systemctl poweroff' + fi +} + +# Actions +chosen="$(run_rofi)" +case ${chosen} in + $option_1) + run_cmd --opt1 + ;; + $option_2) + run_cmd --opt2 + ;; + $option_3) + run_cmd --opt3 + ;; + $option_4) + run_cmd --opt4 + ;; + $option_5) + run_cmd --opt5 + ;; + $option_6) + run_cmd --opt6 + ;; +esac diff --git a/scripts/rofi_screenshot b/scripts/rofi_screenshot new file mode 100755 index 0000000..d9b3b99 --- /dev/null +++ b/scripts/rofi_screenshot @@ -0,0 +1,136 @@ +#!/usr/bin/env bash + +# Import Current Theme +DIR="$HOME/.config/hypr" +RASI="$DIR/rofi/screenshot.rasi" + +# Theme Elements +prompt='Screenshot' +mesg="Directory :: `xdg-user-dir PICTURES`/screenshots" + +# Options +layout=`cat ${RASI} | grep 'USE_ICON' | cut -d'=' -f2` +if [[ "$layout" == 'NO' ]]; then + option_1=" Capture Desktop" + option_2=" Capture Area" + option_3=" Capture Window" + option_4=" Capture in 5s" + option_5=" Capture in 10s" +else + option_1="" + option_2="" + option_3="" + option_4="5s" + option_5="10" +fi + +# Rofi CMD +rofi_cmd() { + rofi -dmenu \ + -p "$prompt" \ + -mesg "$mesg" \ + -markup-rows \ + -theme ${RASI} +} + +# Pass variables to rofi dmenu +run_rofi() { + echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5" | rofi_cmd +} + +# Screenshot +time=`date +%Y-%m-%d-%H-%M-%S` +dir="`xdg-user-dir PICTURES`/screenshots" +file="${time}_${geometry}.png" + +# Directory +if [[ ! -d "$dir" ]]; then + mkdir -p "$dir" +fi + +# notify and view screenshot +iDIR="$HOME/.config/hypr/mako/icons" +notify_view() { + notify_cmd_shot="notify-send -h string:x-canonical-private-synchronous:sys-notify-shot -u low -i ${iDIR}/picture.png" + ${notify_cmd_shot} "Copied to clipboard." + paplay /usr/share/sounds/freedesktop/stereo/screen-capture.oga &>/dev/null & + viewnior ${dir}/"$file" + if [[ -e "$dir/$file" ]]; then + ${notify_cmd_shot} "Screenshot Saved." + else + ${notify_cmd_shot} "Screenshot Deleted." + fi +} + +# countdown +countdown () { + for sec in `seq $1 -1 1`; do + notify-send -h string:x-canonical-private-synchronous:sys-notify-count -t 1000 -i "$iDIR"/timer.png "Taking shot in : $sec" + sleep 1 + done +} + +# take shots +shotnow () { + cd ${dir} && sleep 0.5 && grim - | tee "$file" | wl-copy + notify_view +} + +shot5 () { + countdown '5' + sleep 1 && cd ${dir} && grim - | tee "$file" | wl-copy + notify_view +} + +shot10 () { + countdown '10' + sleep 1 && cd ${dir} && grim - | tee "$file" | wl-copy + notify_view +} + +shotwin () { + w_pos=`hyprctl activewindow | grep 'at:' | cut -d':' -f2 | tr -d ' ' | tail -n1` + w_size=`hyprctl activewindow | grep 'size:' | cut -d':' -f2 | tr -d ' ' | tail -n1 | sed s/,/x/g` + cd ${dir} && sleep 0.3 && grim -g "$w_pos $w_size" - | tee "$file" | wl-copy + notify_view +} + +shotarea () { + cd ${dir} && grim -g "$(slurp -b 20262CCC -c B4A1DBff -s B4A1DB0D -w 2 && sleep 0.3)" - | tee "$file" | wl-copy + notify_view +} + +# Execute Command +run_cmd() { + if [[ "$1" == '--opt1' ]]; then + shotnow + elif [[ "$1" == '--opt2' ]]; then + shotarea + elif [[ "$1" == '--opt3' ]]; then + shotwin + elif [[ "$1" == '--opt4' ]]; then + shot5 + elif [[ "$1" == '--opt5' ]]; then + shot10 + fi +} + +# Actions +chosen="$(run_rofi)" +case ${chosen} in + $option_1) + run_cmd --opt1 + ;; + $option_2) + run_cmd --opt2 + ;; + $option_3) + run_cmd --opt3 + ;; + $option_4) + run_cmd --opt4 + ;; + $option_5) + run_cmd --opt5 + ;; +esac diff --git a/scripts/screenshot b/scripts/screenshot new file mode 100755 index 0000000..1dadb0d --- /dev/null +++ b/scripts/screenshot @@ -0,0 +1,78 @@ +#!/usr/bin/env bash + +iDIR="$HOME/.config/hypr/mako/icons" + +time=`date +%Y-%m-%d-%H-%M-%S` +dir="`xdg-user-dir PICTURES`/screenshots" +file="${time}.png" + +# notify and view screenshot +notify_cmd_shot="notify-send -h string:x-canonical-private-synchronous:sys-notify-shot -u low -i ${iDIR}/picture.png" +notify_view () { + ${notify_cmd_shot} "Copied to clipboard." + paplay /usr/share/sounds/freedesktop/stereo/screen-capture.oga &>/dev/null & + image-roll "${dir}/$file" + if [[ -e "$dir/$file" ]]; then + ${notify_cmd_shot} "Screenshot Saved." + else + ${notify_cmd_shot} "Screenshot Deleted." + fi +} + +# countdown +countdown () { + for sec in `seq $1 -1 1`; do + notify-send -h string:x-canonical-private-synchronous:sys-notify-count -t 1000 -i "$iDIR"/timer.png "Taking shot in : $sec" + sleep 1 + done +} + +# take shots +shotnow () { + cd ${dir} && sleep 0.5 && grim - | tee "$file" | wl-copy + notify_view +} + +shot5 () { + countdown '5' + sleep 1 && cd ${dir} && grim - | tee "$file" | wl-copy + notify_view +} + +shot10 () { + countdown '10' + sleep 1 && cd ${dir} && grim - | tee "$file" | wl-copy + notify_view +} + +shotwin () { + w_pos=`hyprctl activewindow | grep 'at:' | cut -d':' -f2 | tr -d ' ' | tail -n1` + w_size=`hyprctl activewindow | grep 'size:' | cut -d':' -f2 | tr -d ' ' | tail -n1 | sed s/,/x/g` + cd ${dir} && grim -g "$w_pos $w_size" - | tee "$file" | wl-copy + notify_view +} + +shotarea () { + cd ${dir} && grim -g "$(slurp -b 20262CCC -c B4A1DBff -s B4A1DB0D -w 2 && sleep 0.3)" - | tee "$file" | wl-copy + notify_view +} + +if [[ ! -d "$dir" ]]; then + mkdir -p "$dir" +fi + +if [[ "$1" == "--now" ]]; then + shotnow +elif [[ "$1" == "--in5" ]]; then + shot5 +elif [[ "$1" == "--in10" ]]; then + shot10 +elif [[ "$1" == "--win" ]]; then + shotwin +elif [[ "$1" == "--area" ]]; then + shotarea +else + echo -e "Available Options : --now --in5 --in10 --win --area" +fi + +exit 0 diff --git a/scripts/startup b/scripts/startup new file mode 100755 index 0000000..603da27 --- /dev/null +++ b/scripts/startup @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +MAKO_CONFIG="$HOME/.config/hypr/mako/config" +BAR_CONFIG="$HOME/.config/hypr/waybar/config" +BAR_STYLE="$HOME/.config/hypr/waybar/style.css" + +_ps=(waybar mako) +for _prs in "${_ps[@]}"; do + if [[ `pidof ${_prs}` ]]; then + killall -9 ${_prs}config + fi +done + +if [[ ! `pidof mako` ]]; then + mako --config ${MAKO_CONFIG} & +fi + +if [[ ! `pidof waybar` ]]; then + waybar --bar hyprbar --config ${BAR_CONFIG} --style ${BAR_STYLE} & +fi + +hyprctl dispatch "exec [workspace 2 silent] kitty $HOME/.local/bin/term_startup.sh" +sleep 2 +hyprctl dispatch "exec [workspace 2 silent] signal-desktop --use-tray-icon --enable-features=UseOzonePlatform --enable-features=WaylandWindowDecorations --ozone-platform=wayland" +sleep 2 +hyprctl dispatch "exec [workspace 2 silent] schildichat-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland" diff --git a/scripts/term_startup b/scripts/term_startup new file mode 100755 index 0000000..1f60c68 --- /dev/null +++ b/scripts/term_startup @@ -0,0 +1,3 @@ +#!/bin/sh +fastfetch +exec zsh diff --git a/scripts/volume b/scripts/volume new file mode 100755 index 0000000..0c34754 --- /dev/null +++ b/scripts/volume @@ -0,0 +1,82 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2023 Aditya Shakya +## +## Script To Manage Speaker Volume For Archcraft (in Wayland). + +iDIR="$HOME/.config/hypr/mako/icons" +notify_cmd='notify-send -h string:x-canonical-private-synchronous:sys-notify-volume -u low' + +# Get Volume +get_volume() { + echo "`pulsemixer --get-volume | cut -d' ' -f1`" +} + +# Get icons +get_icon() { + current="$(get_volume)" + if [[ "$current" -eq "0" ]]; then + icon="$iDIR/volume-mute.png" + elif [[ ("$current" -ge "0") && ("$current" -le "30") ]]; then + icon="$iDIR/volume-low.png" + elif [[ ("$current" -ge "30") && ("$current" -le "60") ]]; then + icon="$iDIR/volume-mid.png" + elif [[ ("$current" -ge "60") && ("$current" -le "100") ]]; then + icon="$iDIR/volume-high.png" + fi +} + +# Notify +notify_user() { + ${notify_cmd} -i "$icon" "Volume : $(get_volume)%" +} + +# Increase Volume +inc_volume() { + [[ `pulsemixer --get-mute` == 1 ]] && pulsemixer --unmute + pulsemixer --max-volume 100 --change-volume +5 && get_icon && notify_user +} + +# Decrease Volume +dec_volume() { + [[ `pulsemixer --get-mute` == 1 ]] && pulsemixer --unmute + pulsemixer --max-volume 100 --change-volume -5 && get_icon && notify_user +} + +# Toggle Mute +toggle_mute() { + if [[ `pulsemixer --get-mute` == 0 ]]; then + pulsemixer --toggle-mute && ${notify_cmd} -i "$iDIR/volume-mute.png" "Mute" + else + pulsemixer --toggle-mute && get_icon && ${notify_cmd} -i "$icon" "Unmute" + fi +} + +# Toggle Mic +toggle_mic() { + ID="`pulsemixer --list-sources | grep 'Default' | cut -d',' -f1 | cut -d' ' -f3`" + if [[ `pulsemixer --id $ID --get-mute` == 0 ]]; then + pulsemixer --id ${ID} --toggle-mute && ${notify_cmd} -i "$iDIR/microphone-mute.png" "Microphone Switched OFF" + else + pulsemixer --id ${ID} --toggle-mute && ${notify_cmd} -i "$iDIR/microphone.png" "Microphone Switched ON" + fi +} + +# Execute accordingly +if [[ -x `which pulsemixer` ]]; then + if [[ "$1" == "--get" ]]; then + get_volume + elif [[ "$1" == "--inc" ]]; then + inc_volume + elif [[ "$1" == "--dec" ]]; then + dec_volume + elif [[ "$1" == "--toggle" ]]; then + toggle_mute + elif [[ "$1" == "--toggle-mic" ]]; then + toggle_mic + else + echo $(get_volume)% + fi +else + ${notify_cmd} "'pulsemixer' is not installed." +fi diff --git a/wallpapers/lockscreen.png b/wallpapers/lockscreen.png new file mode 120000 index 0000000..11b8b3a --- /dev/null +++ b/wallpapers/lockscreen.png @@ -0,0 +1 @@ +sylviaritter/Speedpainting16122023_SylviaRitter_1080px.png \ No newline at end of file diff --git a/wallpapers/sylviaritter/Speedpainting16122023_SylviaRitter_1080px.png b/wallpapers/sylviaritter/Speedpainting16122023_SylviaRitter_1080px.png new file mode 100644 index 0000000..6a6cfba Binary files /dev/null and b/wallpapers/sylviaritter/Speedpainting16122023_SylviaRitter_1080px.png differ diff --git a/waybar/config b/waybar/config new file mode 100644 index 0000000..3f78611 --- /dev/null +++ b/waybar/config @@ -0,0 +1,151 @@ +{ + "layer": "top", // Waybar at top layer + "output": "eDP-1", + "position": "top", // Waybar position (top|bottom|left|right) + "height": 5, + "margin": "0 0 0 0", + //"width": 1350, // Waybar width + // Choose the order of the modules idle_inhibitor + "modules-left": ["hyprland/workspaces", "custom/spotify", "tray"], + "modules-center": ["clock"], + "modules-right": ["backlight", "pulseaudio", "temperature", "cpu", "memory", "battery", "network" ], + + "hyprland/workspaces": { + "format": "{icon}", + "sort-by-number": true, + "active-only": false, + "format-icons": { + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7", + "8": "8", + "9": "9", + "10": "0", + "urgent": "", + "focused": "", + "default": "" + }, + "on-click": "activate", + }, + "mpd": { + "tooltip": true, + "tooltip-format": "{artist} - {album} - {title} - Total Time : {totalTime:%M:%S}", + "format": " {elapsedTime:%M:%S}", + "format-disconnected": "⚠ Disconnected", + "format-stopped": " Not Playing", + "on-click": "mpc toggle", + "state-icons": { + "playing": "", + "paused": "" + } + }, + "custom/mpd": { + "format": " {title} - {artist}", + "interval": 5, + "exec": "mpc current --format='\"title\":\"%title%\",\"artist\":\"%artist%\"'" + }, + "sway/mode": { + "format": "{}" + }, + "sway/window": { + "format": "~ {app_id}", + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "tray": { + "icon-size": 18, + "spacing": 8 + }, + "clock": { + "tooltip-format": "{:%A %d %B | %H:%M}", + "format": " {:%Y-%m-%d  %H:%M:%OS}", + "format-alt": " {:%Y %b %d %a  %H:%M:%OS}", + "interval": 1 + }, + "cpu": { + "format": " {usage:02}", + "interval": 2, + "on-click": "kitty -e htop" + }, + "memory": { + "format": " {used:0.2f}", + "on-click": "kitty -e htop" + }, + "temperature": { + "hwmon-path": "/sys/class/hwmon/hwmon1/temp1_input", + "critical-threshold": 80, + "format": " {temperatureC}°C" + }, + "backlight": { + "format": "{icon} {percent: >3}%", + "format-icons": ["", ""], + "on-scroll-down": "brightnessctl -c backlight set 1%-", + "on-scroll-up": "brightnessctl -c backlight set +1%" + }, + "battery": { + "states": { + "good": 90, + "warning": 30, + "critical": 15 + }, + "format": "\uf1e6", + "format-discharging": "{icon} {capacity: >3}% {power:0.1f}W", + "format-charging": "\uf1e6 {capacity: >3}% {power:0.1f}W", + "interval": 3, + "format-icons": ["", "", "", "", ""] + //"format-icons": ["", "", "", "", "", "", "", "", "", ""] + }, + "network": { + // "interface": "wlp2s0", // (Optional) To force the use of this interface + "format": "⚠ Disabled", + "format-wifi": " {essid}", + // "format-ethernet": " {ifname}: {ipaddr}/{cidr}", + "format-ethernet": " Wired", + "format-disconnected": "⚠ Disconnected", + // "on-click": "alacritty -e nmtui" + "on-click": "nm-connection-editor" + }, + "pulseaudio": { + "scroll-step": 1, + "format": "{icon} {volume: >3}%", + "format-bluetooth": "{icon} {volume: >3}%", + "format-muted":" muted", + "format-icons": { + "headphones": "", + "handsfree": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", ""] + }, + "on-click": "pavucontrol", + "on-scroll-up": "~/.config/hypr/scripts/volume --inc", + "on-scroll-down": "~/.config/hypr/scripts/volume --dec" + }, + "custom/pacman": { + "format": " {}", + "interval": 7200, // every two hours + "exec": "i=$(checkupdates); echo \"$i\" |wc -l; echo \"$i\" |column -t |tr '\n' '\r'", // # of updates and tooltip details + "exec-if": "exit 0", // always run; consider advanced run conditions + "on-click": "kitty -e yay -Syu", // update system + "signal": 8 + }, + "custom/spotify": { + "interval": 1, + "exec": "~/.config/hypr/waybar/scripts/spotify", + "on-click-middle":"playerctl play-pause", + "on-click-right": "playerctl next", + "on-click": "playerctl previous", + "escape": true + }, +} diff --git a/waybar/machiatto.css b/waybar/machiatto.css new file mode 100644 index 0000000..7d98599 --- /dev/null +++ b/waybar/machiatto.css @@ -0,0 +1,30 @@ +@define-color base #24273a; +@define-color mantle #1e2030; +@define-color crust #181926; + +@define-color text #cad3f5; +@define-color subtext0 #a5adcb; +@define-color subtext1 #b8c0e0; + +@define-color surface0 #363a4f; +@define-color surface1 #494d64; +@define-color surface2 #5b6078; + +@define-color overlay0 #6e738d; +@define-color overlay1 #8087a2; +@define-color overlay2 #939ab7; + +@define-color blue #8aadf4; +@define-color lavender #b7bdf8; +@define-color sapphire #7dc4e4; +@define-color sky #91d7e3; +@define-color teal #8bd5ca; +@define-color green #a6da95; +@define-color yellow #eed49f; +@define-color peach #f5a97f; +@define-color maroon #ee99a0; +@define-color red #ed8796; +@define-color mauve #c6a0f6; +@define-color pink #f5bde6; +@define-color flamingo #f0c6c6; +@define-color rosewater #f4dbd6; diff --git a/waybar/scripts/restart.sh b/waybar/scripts/restart.sh new file mode 100755 index 0000000..39f0213 --- /dev/null +++ b/waybar/scripts/restart.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +pkill waybar +~/.config/hypr/scripts/statusbar & +disown diff --git a/waybar/scripts/spotify b/waybar/scripts/spotify new file mode 100755 index 0000000..c5665f4 --- /dev/null +++ b/waybar/scripts/spotify @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +player_status=$(playerctl status 2> /dev/null) + +if [ "$player_status" = "Playing" ]; then + echo -e " $(playerctl metadata --format '{{markup_escape(title)}}')\nPlaying: $(playerctl metadata --format '{{markup_escape(artist)}}') - $(playerctl metadata --format '{{markup_escape(title)}}')\nplaying" +elif [ "$player_status" = "Paused" ]; then + echo -e " $(playerctl metadata --format '{{markup_escape(title)}}')\nPaused: $(playerctl metadata --format '{{markup_escape(artist)}}') - $(playerctl metadata --format '{{markup_escape(title)}}')\npaused" +else + echo -e "" +fi diff --git a/waybar/style.css b/waybar/style.css new file mode 100644 index 0000000..f3ebba2 --- /dev/null +++ b/waybar/style.css @@ -0,0 +1,331 @@ +/* Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration */ + +@import "machiatto.css"; + +/* + Polar Night + nord0 #2e3440 + nord1 #3b4252 + nord2 #434c5e + nord3 #4c566a + Snow Storm + nord4 #d8dee9 + nord5 #e5e9f0 + nord6 #eceff4 + Frost + nord7 #8fbcbb + nord8 #88c0d0 + nord9 #81a1c1 + nord10 #5e81ac + Aurora + nord11 #bf616a + nord12 #d08770 + nord13 #ebcb8b + nord14 #a3be8c + nord15 #b48ead + */ + +* { + color: @lavender; + border: 0; + padding: 0 0; + font-family: UbuntuMono; + /* font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; */ + font-size: 19px; + font-weight: bold; + transition: all 0.5s ease; +} + +window#waybar { + /* border-bottom: 4px solid shade(@base, 1.1); */ + /* border-radius: 10px; */ + /* background:#2d2a2e; */ + /* background-color: rgba(36, 39, 58, 0.60); */ + /* background-color: rgba(0, 0, 0, 0); */ + /* background-color: shade(#1e1e2e, 0.95); */ + /* background-color: rgba(9, 3, 18, 0.70); */ + background: none; +} + +#workspaces button { + color: @base; + border-radius: 50%; + /* background-color: @base; */ + margin: 0px 8px 0px 8px; + padding: 2px 6px 2px 0px; +} + +#workspaces button:hover * { + color: @mauve; +} + +#workspaces button:hover { + color: @mauve; + /* border-radius: 20px; */ + box-shadow: none; /* Remove predefined box-shadow */ + text-shadow: none; /* Remove predefined text-shadow */ + border: 0px; + background: none; +} + +#workspaces * { + color: whitesmoke; +} + +#workspaces { + border-style: solid; + background-color: shade(@base, 0.7); + opacity: 1; + border-radius: 10px; + margin: 9px 8px 8px 8px; +} + +#workspaces button.active { + color: @mauve; + border-radius: 20px; + /* background-color: @flamingo; */ +} + +#workspaces button.active * { + color: @mauve; +} + +#mode { + color: #ebcb8b; +} + +#clock, +#battery, +#cpu, +#memory, +#idle_inhibitor, +#temperature, +#backlight, +#network, +#pulseaudio, +#mode, +#tray, +#custom-pacman, +#custom-spotify, +#mpd { + padding: 6px 8px; + border-style: solid; + background-color: shade(@base, 0.70); + opacity: 1; + margin: 9px 0px 8px 0px; +} + +#mpd { + border-radius: 10px; + color: @mauve; + margin-left: 5px; + background-color: rgba(0, 0, 0, 0); +} + +#custom-background { + border-radius: 0px 10px 10px 0px; + background-color: @base; + color: white; + padding: 5px 14px 5px 5px; +} + +#custom-spotify { + color: @mauve; + border-radius: 10px; + margin: 9px 8px 8px 0px; +} +#clock { + color: @mauve; + border-radius: 10px; + margin: 9px 10px 8px 10px; +} + +#backlight { + color: @yellow; + border-radius: 10px 0 0 10px; +} + +#battery { + color: @sky; + /* border-bottom: 2px solid #d8dee9; */ + border-radius: 0 10px 10px 0; + margin-right: 10px; +} + +#battery.charging { + color: #81a1c1; +} + +@keyframes blink { + to { + color: @red; + /* border-bottom: 2px solid @red; */ + } +} + +#battery.critical:not(.charging) { + color: #bf616a; + /* border-bottom: 2px solid #bf616a; */ + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#cpu { + color: @sky; + /* border-bottom: 2px solid @sky; */ +} + +#cpu #cpu-icon { + color: @sky; +} + +#memory { + color: @sky; +} + +#network.disabled { + color: #bf616a; + /* border-bottom: 2px solid #bf616a; */ +} + +#network { + color: @green; + /* border-bottom: 2px solid @green; */ + border-radius: 10px; + margin-right: 8px; +} + +#network.disconnected { + color: #bf616a; + /* border-bottom: 2px solid #bf616a; */ +} + +#pulseaudio { + color: @flamingo; + border-radius: 0 10px 10px 0; + margin-right: 10px; + /* border-bottom: 2px solid @flamingo; */ +} + +#pulseaudio.muted { + color: #3b4252; + /* border-bottom: 2px solid #3b4252; */ +} + +#temperature { + color: @teal; + border-radius: 10px 0 0 10px; +} + +#temperature.critical { + color: @red; + /* border-bottom: 2px solid @red; */ +} + +#custom-pacman { + border-radius: 10px 0 0 10px; +} + +#idle_inhibitor { + background-color: #ebcb8b; + color: @base; +} + +#tray { + /* background-color: @base; */ + border-radius: 10px; +} + +#window { + border-style: hidden; + margin-left: 10px; + /* margin-top:1px; + padding: 8px 1rem; */ + margin-right: 10px; + color: #eceff4; +} + +#mode { + margin-bottom: 4px; +} + +/* window#waybar { + background: #2d2a2e; + } + + * { + color: #c8b9a9; + font-family: Ubuntu Mono, sans-serif; + font-size: 12px; + } + + #workspaces button.focused { + color: #f2e5bc; + } + + #workspaces button { + color: #c8b9a9; + } + + .separator { + background-color: #c8b9a9; + } + + #mode { + color: #ebcb8b; + } + + #clock { + color: #a3be8c; + } + + #battery { + color: #d8dee9; + } + + #battery.charging { + color: #b48ead; + } + + #battery.critical:not(.charging) { + color: #bf616a; + } + + #cpu { + color: #a3be8c; + } + + #memory { + color: #d3869b; + } + + #network { + color: #8fbcbb; + } + + #network.disabled { + color: #bf616a; + } + + #network.disconnected { + color: #bf616a; + } + + #pulseaudio { + color: #b48ead; + } + + #pulseaudio.muted { + color: #bf616a; + } + + #temperature { + color: #8fbcbb; + } + + #temperature.critical { + color: #bf616a; + } */