diff --git a/private_dot_config/fastfetch/config.jsonc b/private_dot_config/fastfetch/config.jsonc
new file mode 100644
index 0000000..f2e267b
--- /dev/null
+++ b/private_dot_config/fastfetch/config.jsonc
@@ -0,0 +1,30 @@
+{
+ "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
+ "modules": [
+ "title",
+ "separator",
+ "os",
+ "host",
+ "kernel",
+ "packages",
+ "separator",
+ "wm",
+ "shell",
+ "terminal",
+ "theme",
+ "font",
+ "locale",
+ "separator",
+ "display",
+ "cpu",
+ "gpu",
+ "memory",
+ "disk",
+ "battery",
+ "separator",
+ "wifi",
+ "localip",
+ "break",
+ "colors"
+ ]
+}
diff --git a/private_dot_config/fastfetch/startup.jsonc b/private_dot_config/fastfetch/startup.jsonc
new file mode 100644
index 0000000..96189d3
--- /dev/null
+++ b/private_dot_config/fastfetch/startup.jsonc
@@ -0,0 +1,27 @@
+{
+ "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
+ "logo": {
+ "source": "arch_small",
+ "height": 14,
+ "padding": {
+ "top": 1,
+ "bottom": 1,
+ }
+ },
+ "display": {
+ "separator" : " ➜ ",
+ },
+ "modules": [
+ "title",
+ "kernel",
+ "packages",
+ "shell",
+ "battery",
+ {
+ "type": "separator",
+ "string": " • ",
+ },
+ "break",
+ "break"
+ ]
+}
diff --git a/private_dot_config/mako/blue b/private_dot_config/mako/blue
new file mode 100644
index 0000000..0459c64
--- /dev/null
+++ b/private_dot_config/mako/blue
@@ -0,0 +1,43 @@
+[mode=default]
+# things
+on-notify=exec paplay /usr/share/sounds/freedesktop/stereo/dialog-information.oga
+default-timeout=5000
+anchor=top-right
+max-visible=5
+
+#style
+width=320
+height=300
+margin=25,25,10,10
+padding=10
+font="Cousine Nerd Font mono"
+background-color=#249eca80
+text-color=#FFFFFF
+border-radius=15
+
+[urgency=low]
+border-color=#87CEEB
+
+[urgency=normal]
+border-color=#00000080
+
+[urgency=critical]
+on-notify=exec paplay /usr/share/sounds/freedesktop/stereo/window-attention.oga
+border-color=#FF0000
+
+[app-name=wp-vol]
+height=50
+background-color=#249eca99
+border-color=#249eca99
+layer=overlay
+history=0
+anchor=center
+progress-color=source #5588AA33
+text-alignment=center
+
+[mode=do-not-disturb]
+invisible=1
+on-notify=none
+
+[mode=do-not-disturb app-name=wp-vol]
+invisible=0
diff --git a/private_dot_config/mako/config b/private_dot_config/mako/config
index 5b4484e..0459c64 100644
--- a/private_dot_config/mako/config
+++ b/private_dot_config/mako/config
@@ -1,10 +1,43 @@
+[mode=default]
+# things
+on-notify=exec paplay /usr/share/sounds/freedesktop/stereo/dialog-information.oga
+default-timeout=5000
+anchor=top-right
+max-visible=5
+
+#style
+width=320
+height=300
+margin=25,25,10,10
+padding=10
+font="Cousine Nerd Font mono"
+background-color=#249eca80
+text-color=#FFFFFF
+border-radius=15
+
+[urgency=low]
+border-color=#87CEEB
+
+[urgency=normal]
+border-color=#00000080
+
+[urgency=critical]
+on-notify=exec paplay /usr/share/sounds/freedesktop/stereo/window-attention.oga
+border-color=#FF0000
+
[app-name=wp-vol]
+height=50
+background-color=#249eca99
+border-color=#249eca99
layer=overlay
history=0
-anchor=top-right
+anchor=center
+progress-color=source #5588AA33
+text-alignment=center
[mode=do-not-disturb]
invisible=1
+on-notify=none
[mode=do-not-disturb app-name=wp-vol]
invisible=0
diff --git a/private_dot_config/mako/gray b/private_dot_config/mako/gray
new file mode 100644
index 0000000..8d3a8eb
--- /dev/null
+++ b/private_dot_config/mako/gray
@@ -0,0 +1,43 @@
+[mode=default]
+# things
+on-notify=exec paplay /usr/share/sounds/freedesktop/stereo/dialog-information.oga
+default-timeout=5000
+anchor=top-right
+max-visible=5
+
+#style
+width=320
+height=300
+margin=25,25,10,10
+padding=10
+font="Cousine Nerd Font mono"
+background-color=#A9A9A980
+text-color=#A9A9A9
+border-radius=15
+
+[urgency=low]
+border-color=#D3D3D3
+
+[urgency=normal]
+border-color=#A9A9A9
+
+[urgency=critical]
+on-notify=exec paplay /usr/share/sounds/freedesktop/stereo/window-attention.oga
+border-color=#808080
+
+[app-name=wp-vol]
+height=50
+background-color=#A9A9A999
+border-color=#A9A9A999
+layer=overlay
+history=0
+anchor=center
+progress-color=source #AAAAAA33
+text-alignment=center
+
+[mode=do-not-disturb]
+invisible=1
+on-notify=none
+
+[mode=do-not-disturb app-name=wp-vol]
+invisible=0
diff --git a/private_dot_config/mako/red b/private_dot_config/mako/red
new file mode 100644
index 0000000..8e62354
--- /dev/null
+++ b/private_dot_config/mako/red
@@ -0,0 +1,43 @@
+[mode=default]
+# things
+on-notify=exec paplay /usr/share/sounds/freedesktop/stereo/dialog-information.oga
+default-timeout=5000
+anchor=top-right
+max-visible=5
+
+#style
+width=320
+height=300
+margin=25,25,10,10
+padding=10
+font="Cousine Nerd Font mono"
+background-color=#ca242480
+text-color=#FFFFFF
+border-radius=15
+
+[urgency=low]
+border-color=#FF6347
+
+[urgency=normal]
+border-color=#A94949
+
+[urgency=critical]
+on-notify=exec paplay /usr/share/sounds/freedesktop/stereo/window-attention.oga
+border-color=#FF0000
+
+[app-name=wp-vol]
+height=50
+background-color=#ca242499
+border-color=#ca242499
+layer=overlay
+history=0
+anchor=center
+progress-color=source #FF634733
+text-alignment=center
+
+[mode=do-not-disturb]
+invisible=1
+on-notify=none
+
+[mode=do-not-disturb app-name=wp-vol]
+invisible=0
diff --git a/private_dot_config/swappy/config b/private_dot_config/swappy/config
new file mode 100644
index 0000000..785187b
--- /dev/null
+++ b/private_dot_config/swappy/config
@@ -0,0 +1,10 @@
+[Default]
+save_dir=$HOME/Obrazy/zrzuty/
+save_filename_format=zrzut_edit-%d_%m_%Y-%H%M%S.png
+show_panel=false
+line_size=5
+text_size=20
+text_font=sans-serif
+paint_mode=brush
+early_exit=false
+fill_shape=false
diff --git a/private_dot_config/waybar/colors.css b/private_dot_config/waybar/colors.css
new file mode 100644
index 0000000..c30cc2f
--- /dev/null
+++ b/private_dot_config/waybar/colors.css
@@ -0,0 +1,3 @@
+@define-color background rgba(36, 158, 202, 0.20);
+@define-color foreground rgba(36, 158, 202, 0.30);
+@define-color font-color #499DA9;
diff --git a/private_dot_config/waybar/config.jsonc b/private_dot_config/waybar/config.jsonc
new file mode 100644
index 0000000..40a149b
--- /dev/null
+++ b/private_dot_config/waybar/config.jsonc
@@ -0,0 +1,139 @@
+// -*- mode: jsonc -*-
+{
+ "layer": "top", // Waybar at top layer
+ "position": "top", // Waybar position (top|bottom|left|right)
+ "spacing": 4, // Gaps between modules (4px)
+ // Choose the order of the modules
+ "modules-left": [
+ "hyprland/workspaces",
+ "custom/spotify",
+ "custom/media"
+ ],
+ "modules-center": [
+ "clock",
+ ],
+ "modules-right": [
+ "tray",
+ "network",
+ "pulseaudio",
+ "privacy",
+ "group/hardware"
+ ],
+ "hyprland/workspaces": {
+ "active-only": true,
+ },
+ "tray": {
+ "spacing": 10
+ },
+ "clock": {
+ "tooltip-format": "{:%Y %B}\n{calendar}",
+ "format-alt": "{:%Y-%m-%d}"
+ },
+ "group/hardware": {
+ "orientation": "inherit",
+ "drawer": {
+ "transition-duration": 500,
+ "children-class": "not-power",
+ "transition-left-to-right": true,
+ },
+ "modules": [
+ "temperature",
+ "memory",
+ "disk",
+ "cpu",
+ "battery",
+ ],
+ },
+ "temperature": {
+ "format": "|TEMP: {temperatureC}%|",
+ "tooltip": false,
+ },
+ "memory": {
+ "format": "|RAM: {percentage}%|",
+ },
+ "disk": {
+ "format": "|DISK: {percentage_used}%|",
+ "tooltip": false,
+ },
+ "cpu": {
+ "format": "|CPU: {usage}|",
+ },
+ "battery": {
+ "states": {
+ "good": 95,
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "| {capacity}% {icon} ",
+ "format-full": "{capacity}% {icon} ",
+ "format-charging": "{capacity}% ",
+ "format-plugged": "{capacity}% ",
+ "format-alt": "{time} {icon}",
+ "format-good": "", // An empty format will hide the module
+ "format-full": "",
+ "format-icons": [
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ "network": {
+ "format-wifi": "{essid} ({signalStrength}%) ",
+ "format-ethernet": "{ipaddr}/{cidr} ",
+ "tooltip-format": "{ifname} via {gwaddr} ",
+ "format-linked": "{ifname} (No IP) ",
+ "format-disconnected": "Disconnected ⚠ ",
+ "format-alt": "{ifname}: {ipaddr}/{cidr}"
+ },
+ "pulseaudio": {
+ // "scroll-step": 1, // %, can be a float
+ "format": " {volume}% {icon} {format_source} ",
+ "format-bluetooth": " {volume}% {icon} {format_source}",
+ "format-bluetooth-muted": " {icon} {format_source}",
+ "format-muted": " {format_source}",
+ "format-source": " {volume}% ",
+ "format-source-muted": " ",
+ "format-icons": {
+ "headphone": " ",
+ "hands-free": " ",
+ "headset": " ",
+ "phone": " ",
+ "portable": " ",
+ "car": " ",
+ "default": [
+ " ",
+ " ",
+ " "
+ ]
+ },
+ "on-click": "pavucontrol"
+ },
+ "custom/spotify": {
+ "format": "{}",
+ "return-type": "json",
+ "on-click": "playerctl play-pause --player spotify",
+ "on-click-right": "killall spotify",
+ "on-scroll-up": "playerctl next --player spotify",
+ "on-scroll-down": "playerctl previous --player spotify",
+ "restart-interval": "0",
+ "hide-empty-text": true,
+ "justify": "center",
+ "max-length": 40,
+ "exec": "$HOME/.config/waybar/scripts/mediaplayer.sh spotify",
+ },
+ "custom/media": {
+ "format": "{}",
+ "return-type": "json",
+ "on-click": "playerctl play-pause --player firefox.instance_1_76",
+ "on-click-right": "killall firefox.instance_1_76",
+ "on-scroll-up": "playerctl next --player firefox.instance_1_76",
+ "on-scroll-down": "playerctl previous --player firefox.instance_1_76",
+ "restart-interval": "0",
+ "hide-empty-text": true,
+ "justify": "center",
+ "max-length": 40,
+ "exec": "$HOME/.config/waybar/scripts/mediaplayer.sh firefox.instance_1_76",
+ },
+}
diff --git a/private_dot_config/waybar/scripts/executable_mediaplayer.py b/private_dot_config/waybar/scripts/executable_mediaplayer.py
new file mode 100644
index 0000000..d1bb72b
--- /dev/null
+++ b/private_dot_config/waybar/scripts/executable_mediaplayer.py
@@ -0,0 +1,195 @@
+#!/usr/bin/env python3
+import gi
+gi.require_version("Playerctl", "2.0")
+from gi.repository import Playerctl, GLib
+from gi.repository.Playerctl import Player
+import argparse
+import logging
+import sys
+import signal
+import gi
+import json
+import os
+from typing import List
+
+logger = logging.getLogger(__name__)
+
+def signal_handler(sig, frame):
+ logger.info("Received signal to stop, exiting")
+ sys.stdout.write("\n")
+ sys.stdout.flush()
+ # loop.quit()
+ sys.exit(0)
+
+
+class PlayerManager:
+ def __init__(self, selected_player=None, excluded_player=[]):
+ self.manager = Playerctl.PlayerManager()
+ self.loop = GLib.MainLoop()
+ self.manager.connect(
+ "name-appeared", lambda *args: self.on_player_appeared(*args))
+ self.manager.connect(
+ "player-vanished", lambda *args: self.on_player_vanished(*args))
+
+ signal.signal(signal.SIGINT, signal_handler)
+ signal.signal(signal.SIGTERM, signal_handler)
+ signal.signal(signal.SIGPIPE, signal.SIG_DFL)
+ self.selected_player = selected_player
+ self.excluded_player = excluded_player.split(',') if excluded_player else []
+
+ self.init_players()
+
+ def init_players(self):
+ for player in self.manager.props.player_names:
+ if player.name in self.excluded_player:
+ continue
+ if self.selected_player is not None and self.selected_player != player.name:
+ logger.debug(f"{player.name} is not the filtered player, skipping it")
+ continue
+ self.init_player(player)
+
+ def run(self):
+ logger.info("Starting main loop")
+ self.loop.run()
+
+ def init_player(self, player):
+ logger.info(f"Initialize new player: {player.name}")
+ player = Playerctl.Player.new_from_name(player)
+ player.connect("playback-status",
+ self.on_playback_status_changed, None)
+ player.connect("metadata", self.on_metadata_changed, None)
+ self.manager.manage_player(player)
+ self.on_metadata_changed(player, player.props.metadata)
+
+ def get_players(self) -> List[Player]:
+ return self.manager.props.players
+
+ def write_output(self, text, player):
+ logger.debug(f"Writing output: {text}")
+
+ output = {"text": text,
+ "class": "custom-" + player.props.player_name,
+ "alt": player.props.player_name}
+
+ sys.stdout.write(json.dumps(output) + "\n")
+ sys.stdout.flush()
+
+ def clear_output(self):
+ sys.stdout.write("\n")
+ sys.stdout.flush()
+
+ def on_playback_status_changed(self, player, status, _=None):
+ logger.debug(f"Playback status changed for player {player.props.player_name}: {status}")
+ self.on_metadata_changed(player, player.props.metadata)
+
+ def get_first_playing_player(self):
+ players = self.get_players()
+ logger.debug(f"Getting first playing player from {len(players)} players")
+ if len(players) > 0:
+ # if any are playing, show the first one that is playing
+ # reverse order, so that the most recently added ones are preferred
+ for player in players[::-1]:
+ if player.props.status == "Playing":
+ return player
+ # if none are playing, show the first one
+ return players[0]
+ else:
+ logger.debug("No players found")
+ return None
+
+ def show_most_important_player(self):
+ logger.debug("Showing most important player")
+ # show the currently playing player
+ # or else show the first paused player
+ # or else show nothing
+ current_player = self.get_first_playing_player()
+ if current_player is not None:
+ self.on_metadata_changed(current_player, current_player.props.metadata)
+ else:
+ self.clear_output()
+
+ def on_metadata_changed(self, player, metadata, _=None):
+ logger.debug(f"Metadata changed for player {player.props.player_name}")
+ player_name = player.props.player_name
+ artist = player.get_artist()
+ title = player.get_title()
+ title = title.replace("&", "&")
+
+ track_info = ""
+ if player_name == "spotify" and "mpris:trackid" in metadata.keys() and ":ad:" in player.props.metadata["mpris:trackid"]:
+ track_info = "Advertisement"
+ elif artist is not None and title is not None:
+ track_info = f"{artist} - {title}"
+ else:
+ track_info = title
+
+ if track_info:
+ if player.props.status == "Playing":
+ track_info = " " + track_info
+ else:
+ track_info = " " + track_info
+ # only print output if no other player is playing
+ current_playing = self.get_first_playing_player()
+ if current_playing is None or current_playing.props.player_name == player.props.player_name:
+ self.write_output(track_info, player)
+ else:
+ logger.debug(f"Other player {current_playing.props.player_name} is playing, skipping")
+
+ def on_player_appeared(self, _, player):
+ logger.info(f"Player has appeared: {player.name}")
+ if player.name in self.excluded_player:
+ logger.debug(
+ "New player appeared, but it's in exclude player list, skipping")
+ return
+ if player is not None and (self.selected_player is None or player.name == self.selected_player):
+ self.init_player(player)
+ else:
+ logger.debug(
+ "New player appeared, but it's not the selected player, skipping")
+
+ def on_player_vanished(self, _, player):
+ logger.info(f"Player {player.props.player_name} has vanished")
+ self.show_most_important_player()
+
+def parse_arguments():
+ parser = argparse.ArgumentParser()
+
+ # Increase verbosity with every occurrence of -v
+ parser.add_argument("-v", "--verbose", action="count", default=0)
+
+ parser.add_argument("-x", "--exclude", "- Comma-separated list of excluded player")
+
+ # Define for which player we"re listening
+ parser.add_argument("--player")
+
+ parser.add_argument("--enable-logging", action="store_true")
+
+ return parser.parse_args()
+
+
+def main():
+ arguments = parse_arguments()
+
+ # Initialize logging
+ if arguments.enable_logging:
+ logfile = os.path.join(os.path.dirname(
+ os.path.realpath(__file__)), "media-player.log")
+ logging.basicConfig(filename=logfile, level=logging.DEBUG,
+ format="%(asctime)s %(name)s %(levelname)s:%(lineno)d %(message)s")
+
+ # Logging is set by default to WARN and higher.
+ # With every occurrence of -v it's lowered by one
+ logger.setLevel(max((3 - arguments.verbose) * 10, 0))
+
+ logger.info("Creating player manager")
+ if arguments.player:
+ logger.info(f"Filtering for player: {arguments.player}")
+ if arguments.exclude:
+ logger.info(f"Exclude player {arguments.exclude}")
+
+ player = PlayerManager(arguments.player, arguments.exclude)
+ player.run()
+
+
+if __name__ == "__main__":
+ main()
diff --git a/private_dot_config/waybar/scripts/executable_mediaplayer.sh b/private_dot_config/waybar/scripts/executable_mediaplayer.sh
new file mode 100644
index 0000000..59703e9
--- /dev/null
+++ b/private_dot_config/waybar/scripts/executable_mediaplayer.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+set -x
+
+if [ -z "$1" ]; then
+ echo "Użycie: $0 "
+ exit 1
+fi
+
+player="$1"
+playerctl -p "$player" metadata --format "{{status}} {{artist}} - {{title}}" --follow | while read -r line; do
+ current_status=$(playerctl --player="$player" status 2>/dev/null)
+ case "$current_status" in
+ "Playing")
+ text=""
+ ;;
+ "Paused")
+ text=""
+ ;;
+ *)
+ text=""
+ ;;
+ esac
+ tooltip=$(playerctl --player="$player" metadata --format "{{artist}} - {{title}}" 2>/dev/null)
+
+ tooltip=$(echo "$tooltip" | jq -R .)
+
+ json_text="{\"text\": \"$text\", \"tooltip\": $tooltip }"
+ echo "$json_text"
+
+ if [[ -n "$text" ]]; then
+ pkill -SIGRTMIN+1 waybar
+ fi
+done
diff --git a/private_dot_config/waybar/style.css b/private_dot_config/waybar/style.css
new file mode 100644
index 0000000..ebf55af
--- /dev/null
+++ b/private_dot_config/waybar/style.css
@@ -0,0 +1,110 @@
+@import url("./colors.css");
+
+* {
+ font-family: "Cousine Nerd Font mono";
+ font-size: 16px;
+ padding: 2px;
+ margin: 1px;
+ color: @font-color;
+ text-shadow: 1 1 5px gray, 1 1 7px gray, 1 1 10px gray;
+}
+
+window#waybar {
+ background: @background;
+ border-radius: 20px;
+}
+
+/* modules */
+
+#workspaces button {
+ background-color: @foreground;
+ margin-left: 5px;
+}
+
+#workspaces button.urgent {
+ background-color: red;
+ animation: blink;
+ animation-duration: 5s;
+}
+
+#clock {
+ border-radius: 25px;
+ margin: 10px;
+}
+
+tooltip {
+ background-color: black;
+}
+
+#media,
+#network,
+#pulseaudio,
+#battery {
+ border: 2px solid @foreground;
+}
+
+#tray {
+ background-color: @foreground;
+ border-radius: 5px;
+ padding: 5px;
+ margin: 5px;
+}
+
+/* battery */
+
+#battery.warning:not(.charging) {
+ background: orange;
+ color: white;
+ animation-name: blink;
+ animation-duration: 0.5s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
+
+#battery.charging,
+#battery.plugged {
+ color: #ffffff;
+ background-color: #26A65B;
+}
+
+#battery.critical:not(.charging) {
+ background-color: #f53c3c;
+ color: #ffffff;
+ animation-name: blink;
+ animation-duration: 0.5s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
+
+@keyframes blink {
+ to {
+ background-color: #ff0000;
+ color: #000000;
+ }
+}
+
+#custom-spotify {
+ background-color: rgba(29, 185, 84, 0.30);
+ color: black;
+ padding: 10px;
+ margin: 5px;
+ transition: 0.5s all ease-in-out;
+}
+
+#custom-spotify:hover {
+ background-color: rgba(29, 185, 84, 1);
+}
+
+#custom-media {
+ background-color: rgba(255, 16, 0, 0.30);
+ color: black;
+ padding: 10px;
+ margin: 5px;
+ transition: 0.5s all ease-in-out;
+}
+
+#custom-media:hover {
+ background-color: rgba(255, 16, 0, 1);
+}
diff --git a/private_dot_config/wofi/clipboard b/private_dot_config/wofi/clipboard
new file mode 100644
index 0000000..b29d8fe
--- /dev/null
+++ b/private_dot_config/wofi/clipboard
@@ -0,0 +1,15 @@
+mode=dmenu
+width=65%
+height=80%
+prompt=Select entry to copy
+allow_images=true
+allow_markup=false
+term=kitty
+hide_scroll=true
+key_down=Ctrl-n
+key_up=Ctrl-p
+halign=center
+content_halign=center
+insensitive=true
+line_wrap=word_char
+dynamic_lines=true
diff --git a/private_dot_config/wofi/colors b/private_dot_config/wofi/colors
new file mode 100644
index 0000000..e69e57e
--- /dev/null
+++ b/private_dot_config/wofi/colors
@@ -0,0 +1,2 @@
+#249ECA
+#499DA9
diff --git a/private_dot_config/wofi/config b/private_dot_config/wofi/config
new file mode 100644
index 0000000..fc071db
--- /dev/null
+++ b/private_dot_config/wofi/config
@@ -0,0 +1,16 @@
+mode=drun
+width=25%
+colors=colors
+height=40%
+prompt=Hello :)
+allow_images=true
+allow_markup=true
+term=kitty
+hide_scroll=true
+key_down=Ctrl-n
+key_up=Ctrl-p
+halign=center
+content_halign=fill
+insensitive=true
+line_wrap=word_char
+dynamic_lines=true
diff --git a/private_dot_config/wofi/style.css b/private_dot_config/wofi/style.css
new file mode 100644
index 0000000..546b1d4
--- /dev/null
+++ b/private_dot_config/wofi/style.css
@@ -0,0 +1,51 @@
+* {
+ font-family: "Cousine Nerd Font mono";
+ font-size: 18px;
+ padding: 2px;
+}
+
+#window {
+ background-color: black;
+ border-radius: 20px;
+ opacity: 15%;
+
+}
+
+#outer-box {
+ border-radius: 20px;
+ background-color: rgba(--wofi-rgb-color0, 0.20);
+}
+
+#input {
+ background-color: rgba(--wofi-rgb-color0, 0.30);
+ border-radius: 20px 20px 0 0;
+ border-color: transparent;
+ color: #499DA9;
+ text-shadow: 1 1 5px gray, 1 1 7px gray, 1 1 10px gray;
+}
+
+#scroll {
+ background-color: transparent;
+}
+
+#text {
+ text-align: center;
+ background-color: transparent;
+ color: --wofi-color1;
+ text-shadow: 1 1 5px black, 1 1 7px black, 1 1 10px black;
+}
+
+#text:selected {
+ font-size: 22px;
+ font-weight: bold;
+ text-shadow: 1 1 5px gray, 1 1 7px gray, 1 1 10px gray;
+}
+
+#entry {
+ border-radius: 15px;
+ outline: none
+}
+
+#entry:selected {
+ background-color: transparent;
+}
diff --git a/private_dot_local/bin/executable_change_colors.sh b/private_dot_local/bin/executable_change_colors.sh
new file mode 100644
index 0000000..1f01980
--- /dev/null
+++ b/private_dot_local/bin/executable_change_colors.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+declare -A blue
+blue[background]="rgba(36, 158, 202, 0.20)"
+blue[foreground]="rgba(36, 158, 202, 0.30)"
+blue[font-color]="#499DA9"
+
+declare -A red
+red[background]="rgba(202, 36, 36, 0.20)"
+red[foreground]="rgba(202, 36, 36, 0.30)"
+red[font-color]="#A94949"
+
+declare -A gray
+gray[background]="rgba(169, 169, 169, 0.20)"
+gray[foreground]="rgba(169, 169, 169, 0.30)"
+gray[font-color]="#A9A9A9"
+
+
+if [[ $1 == "blue" ]]; then
+ waybar_colors="@define-color background ${blue[background]};\n@define-color foreground ${blue[foreground]};\n@define-color font-color ${blue[font-color]};"
+ mako_colors="blue"
+ wofi_colors="#249ECA\n#499DA9"
+elif [[ $1 == "red" ]]; then
+ waybar_colors="@define-color background ${red[background]};\n@define-color foreground ${red[foreground]};\n@define-color font-color ${red[font-color]};"
+ mako_colors="red"
+ wofi_colors="#CA2424\n#A94949"
+elif [[ $1 == "gray" ]]; then
+ waybar_colors="@define-color background ${gray[background]};\n@define-color foreground ${gray[foreground]};\n@define-color font-color ${gray[font-color]};"
+ mako_colors="gray"
+ wofi_colors="#A9A9A9\n#A9A9A9"
+else
+ echo "Invalid color choice. Please use 'blue', 'red', or 'gray'."
+ exit 1
+fi
+
+
+echo -e "$waybar_colors" > ~/.config/waybar/colors.css
+~/.local/bin/restart_waybar.sh &
+
+killall mako
+mako --config ~/.config/mako/$mako_colors &
+
+echo -e $wofi_colors > ~/.config/wofi/colors
diff --git a/private_dot_local/bin/executable_check-if-muted.sh b/private_dot_local/bin/executable_check-if-muted.sh
new file mode 100644
index 0000000..5d4849f
--- /dev/null
+++ b/private_dot_local/bin/executable_check-if-muted.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+MUTED=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | grep -iq muted; echo $?)
+
+if [[ $MUTED -eq 0 ]]; then
+ notify-send "Audio muted" -a 'wp-vol' -t 1000
+else
+ notify-send "Audio unmuted" -a 'wp-vol' -t 1000
+fi
diff --git a/private_dot_local/bin/executable_restart_waybar.sh b/private_dot_local/bin/executable_restart_waybar.sh
new file mode 100644
index 0000000..8c49b61
--- /dev/null
+++ b/private_dot_local/bin/executable_restart_waybar.sh
@@ -0,0 +1,5 @@
+killall -q waybar
+
+while pgrep -x waybar >/dev/null; do sleep 1; done
+
+waybar
diff --git a/private_dot_local/bin/executable_system_setup.sh b/private_dot_local/bin/executable_system_setup.sh
index 2705ec7..6b380e4 100644
--- a/private_dot_local/bin/executable_system_setup.sh
+++ b/private_dot_local/bin/executable_system_setup.sh
@@ -1,6 +1,6 @@
#!/bin/bash
set -e
-sudo pacman -Syu fish neovim uwsm python3 util-linux libnewt wofi kitty yazi playerctl tldr flatpak zen-browser-avx2-bin wl-clipboard hyprland hyprpaper hypridle hyprlock xdg-desktop-portal-hyprland xdg-desktop-portal-gtk scx-scheds pipewire wireplumber pavucontrol man-db fastfetch btop pipewire-audio pipewire-alsa pipewire-pulse mako libnotify feh slurp grim swappy cliphist file nerd-fonts ffmpeg 7zip jq poppler fd ripgrep fzf zoxide imagemagick bat eza npm bc vesktop mangohud goverlay steam gimp spotify-launcher obs-studio gamescope gamemode bluez bluez-utils blueman heroic-games-launcher chezmoi github-cli openssh --needed --noconfirm
+sudo pacman -Syu fish neovim uwsm python3 util-linux libnewt wofi kitty yazi playerctl tldr flatpak zen-browser-avx2-bin wl-clipboard hyprland hyprpaper hypridle hyprlock xdg-desktop-portal-hyprland xdg-desktop-portal-gtk scx-scheds pipewire wireplumber pavucontrol man-db fastfetch btop pipewire-audio pipewire-alsa pipewire-pulse mako libnotify feh slurp grim swappy cliphist file nerd-fonts ffmpeg 7zip jq poppler fd ripgrep fzf zoxide imagemagick bat eza npm bc vesktop mangohud goverlay steam gimp spotify-launcher obs-studio gamescope gamemode bluez bluez-utils blueman heroic-games-launcher chezmoi github-cli openssh socat otf-font-awesome greetd-regreet papirus-icon-theme hicolor-icon-theme noto-fonts-emoji batsignal waybar --needed --noconfirm
if ! groups "$USER" | grep -qw "gamemode"; then
sudo usermod -aG gamemode "$USER"
@@ -24,11 +24,11 @@ if ! pacman -Q yay &>/dev/null; then
rm yay -rf
else
echo "Yay is installed..."
- yay -S hyprsunset hyprpolkitagent eww --needed
+ yay -S hyprsunset hyprpolkitagent --needed
fi
flatpak update --noninteractive
flatpak install --noninteractive net.rpcs3.RPCS3
-systemctl --user enable hypridle hyprpolkitagent pipewire-pulse hypridle
-sudo systemctl enable bluetooth
+systemctl --user enable hypridle hyprpolkitagent pipewire-pulse hypridle waybar
+sudo systemctl enable bluetooth greetd