diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..bddc534 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,5 @@ +## CHANGES + +#### 22 Oct 2023 +- initial commit +- adding some waybar layout (Super Shift W) \ No newline at end of file diff --git a/README.md b/README.md index 4de7f07..481bf64 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,65 @@ -# Hyprland-Dots -This is my Hyprland dots, which will be used in the future +### My Hyprland Dots / Configurations + +### ❗❗ This is basically to re-construct my previous hyprland dot files +- why? Generally, alot of users, especially new users are confused with my original layout. In which waybar, dunst, swaylock, etc are inside ~/.config/hypr , which is originally mean for Hyprland configuration only. + +- This would ultimately mean much easier for users to use other waybar, or hyprland dots from other Hyprland users who are sharing their dotfiles. - (Make me sad, although but I am still glad you tried my install script and dotfiles) + +- But one of my reason for creating this repo, so that in the future, I will be focusing only into one repo, as I aimed to just download and install this repo for any install script that I will be using or wanted to share in the future. + +- Users of my Hyprland install scripts, Arch-Hyprlands, Fedora-Hyprland, Debian/Ubuntu-Hyprland, can use this dotfiles to replace their previous dots. + +### 📦 Changelogs +- In order for you to easily track changes, I will be updating the changelogs +[CHANGELOGS](https://github.com/JaKooLit/Hyprland-Dots/blob/main/CHANGELOG.md) + +## ✨ Copying instructions. +- Note! The auto copy script will create backups of intended folders to be copied. However, still a good idea to manually backup just incase script failed to backup! + +- ~/.config (btop, cava, dunst, foot, hypr, swappy, swaylock, waybar, wofi) - These are folders to be copied. +- ~/Pictures/wallpapers - Will be backed up + +### 🔔 Automatic copy of configurations +> clone this repo by using git. Change directory, make executable and run the script +```bash +git clone https://github.com/JaKooLit/Hyprland-Dots.git +cd Hyprland-Dots +chmod +x copy.sh +./copy.sh +``` +### 🐌 Manual installation +- Backup your existing folders in ~/.config (advisable) +- copy all contents of configs into ~/.config, overwriting all +- copy contents of wallpapers into ~/Pictures/wallpapers (create wallpapers folder if required) +- make the Hyprland scripts executable +```bash +chmod +x ~/.config/hypr/scripts/* +``` + +### ⚠️⚠️⚠️ A MUST! after copying these dots +- By default I have not set a wallpaper. If using swww, just press SUPER CTRL W and choose wallpaper. Once you reboot, the last wallpaper will be loaded by swww +- If not using swww, edit ~/.config/hypr/Execs.conf and set using swaybg +- Nvidia Owners. Make sure to edit your ~/.config/hypr/configs/ENVariables.conf and uncomment atleast env = WLR_NO_HARDWARE_CURSORS,1 before log out or reboot. + +### 🙋 QUESTIONS ?!?! +- Maybe answered already in Help File! SUPER H to launch it! +- If you still have, kindly join my discord for faster communication. See invite link below. + +### 🙏 Special request +- If you have improvements on the dotfiles, feel free to submit a PR for improvement. I always welcome improvements as I am also just learning just like you guys +- Waybar styles (all those new panel styles require some tweaking) - Please request assistance + +### 🤷‍♂️ TO DO! +- [] After Arch update the hyprland package, will uncomment line 38 to 44 in ~/.config/hypr/configs/Settings.conf. Users of hyprland-git or if compiled from source, you can safely uncomment these lines (group and groupbar) +- [] Tweak waybar layouts and Themes + +### 🔮 Discord Server +- kindly join my Discord Server https://discord.gg/V2SJ92vbEN + +## 💖 Support +- a Star on my Github repos would be nice 🌟 + +- Subscribe to my Youtube Channel [YouTube](https://www.youtube.com/@Ja.KooLit) + +- You can also buy me Coffee Through ko-fi.com 🤩 +Buy Me a Coffee at ko-fi.com \ No newline at end of file diff --git a/Screenshots/Waybar-Layout-Menu.png b/Screenshots/Waybar-Layout-Menu.png new file mode 100644 index 0000000..09f6cc3 Binary files /dev/null and b/Screenshots/Waybar-Layout-Menu.png differ diff --git a/Screenshots/waybar-all sides.png b/Screenshots/waybar-all sides.png new file mode 100644 index 0000000..5799960 Binary files /dev/null and b/Screenshots/waybar-all sides.png differ diff --git a/Screenshots/waybar-left-panel.png b/Screenshots/waybar-left-panel.png new file mode 100644 index 0000000..bbc162e Binary files /dev/null and b/Screenshots/waybar-left-panel.png differ diff --git a/config/btop/btop.conf b/config/btop/btop.conf new file mode 100644 index 0000000..0c84c89 --- /dev/null +++ b/config/btop/btop.conf @@ -0,0 +1,212 @@ +#? Config file for btop v. 1.2.13 + +#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. +#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" +color_theme = "catppuccin_macchiato.theme" + +#* If the theme set background should be shown, set to False if you want terminal background transparency. +theme_background = False + +#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. +truecolor = True + +#* Set to true to force tty mode regardless if a real tty has been detected or not. +#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. +force_tty = False + +#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. +#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. +#* Use whitespace " " as separator between different presets. +#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" +presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" + +#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. +#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. +vim_keys = False + +#* Rounded corners on boxes, is ignored if TTY mode is ON. +rounded_corners = True + +#* Default symbols to use for graph creation, "braille", "block" or "tty". +#* "braille" offers the highest resolution but might not be included in all fonts. +#* "block" has half the resolution of braille but uses more common characters. +#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. +#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. +graph_symbol = "braille" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_cpu = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_mem = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_net = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_proc = "default" + +#* Manually set which boxes to show. Available values are "cpu mem net proc", separate values with whitespace. +shown_boxes = "proc cpu mem net" + +#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. +update_ms = 2000 + +#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", +#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. +proc_sorting = "cpu lazy" + +#* Reverse sorting order, True or False. +proc_reversed = False + +#* Show processes as a tree. +proc_tree = False + +#* Use the cpu graph colors in the process list. +proc_colors = True + +#* Use a darkening gradient in the process list. +proc_gradient = True + +#* If process cpu usage should be of the core it's running on or usage of the total available cpu power. +proc_per_core = False + +#* Show process memory as bytes instead of percent. +proc_mem_bytes = True + +#* Show cpu graph for each process. +proc_cpu_graphs = True + +#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) +proc_info_smaps = False + +#* Show proc box on left side of screen instead of right. +proc_left = False + +#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). +proc_filter_kernel = False + +#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_upper = "total" + +#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_lower = "total" + +#* Toggles if the lower CPU graph should be inverted. +cpu_invert_lower = True + +#* Set to True to completely disable the lower CPU graph. +cpu_single_graph = False + +#* Show cpu box at bottom of screen instead of top. +cpu_bottom = False + +#* Shows the system uptime in the CPU box. +show_uptime = True + +#* Show cpu temperature. +check_temp = True + +#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. +cpu_sensor = "Auto" + +#* Show temperatures for cpu cores also if check_temp is True and sensors has been found. +show_coretemp = True + +#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. +#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. +#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. +#* Example: "4:0 5:1 6:3" +cpu_core_map = "" + +#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". +temp_scale = "celsius" + +#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. +base_10_sizes = True + +#* Show CPU frequency. +show_cpu_freq = True + +#* Draw a clock at top of screen, formatting according to strftime, empty string to disable. +#* Special formatting: /host = hostname | /user = username | /uptime = system uptime +clock_format = "%X" + +#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. +background_update = True + +#* Custom cpu model name, empty string to disable. +custom_cpu_name = "" + +#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". +#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user". +disks_filter = "" + +#* Show graphs instead of meters for memory values. +mem_graphs = True + +#* Show mem box below net box instead of above. +mem_below_net = False + +#* Count ZFS ARC in cached and available memory. +zfs_arc_cached = True + +#* If swap memory should be shown in memory box. +show_swap = True + +#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. +swap_disk = True + +#* If mem box should be split to also show disks info. +show_disks = False + +#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. +only_physical = True + +#* Read disks list from /etc/fstab. This also disables only_physical. +use_fstab = True + +#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) +zfs_hide_datasets = False + +#* Set to true to show available disk space for privileged users. +disk_free_priv = False + +#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. +show_io_stat = True + +#* Toggles io mode for disks, showing big graphs for disk read/write speeds. +io_mode = False + +#* Set to True to show combined read/write io graphs in io mode. +io_graph_combined = False + +#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". +#* Example: "/mnt/media:100 /:20 /boot:1". +io_graph_speeds = "" + +#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. +net_download = 100 + +net_upload = 100 + +#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. +net_auto = True + +#* Sync the auto scaling for download and upload to whichever currently has the highest scale. +net_sync = True + +#* Starts with the Network Interface specified here. +net_iface = "" + +#* Show battery stats in top right if battery is present. +show_battery = False + +#* Which battery to use if multiple are present. "Auto" for auto detection. +selected_battery = "Auto" + +#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". +#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. +log_level = "WARNING" \ No newline at end of file diff --git a/config/btop/themes/catppuccin_frappe.theme b/config/btop/themes/catppuccin_frappe.theme new file mode 100644 index 0000000..000a9b0 --- /dev/null +++ b/config/btop/themes/catppuccin_frappe.theme @@ -0,0 +1,42 @@ +theme[main_bg]="#303446" +theme[main_fg]="#C6D0F5" +theme[title]="#C6D0F5" +theme[hi_fg]="#8CAAEE" +theme[selected_bg]="#51576D" +theme[selected_fg]="#8CAAEE" +theme[inactive_fg]="#838BA7" +theme[graph_text]="#F2D5CF" +theme[meter_bg]="#51576D" +theme[proc_misc]="#F2D5CF" +theme[cpu_box]="#85C1DC" +theme[mem_box]="#A6D189" +theme[net_box]="#CA9EE6" +theme[proc_box]="#EEBEBE" +theme[div_line]="#737994" +theme[temp_start]="#E5C890" +theme[temp_mid]="#EF9F76" +theme[temp_end]="#E78284" +theme[cpu_start]="#85C1DC" +theme[cpu_mid]="#99D1DB" +theme[cpu_end]="#81C8BE" +theme[free_start]="#81C8BE" +theme[free_mid]="#81C8BE" +theme[free_end]="#A6D189" +theme[cached_start]="#F4B8E4" +theme[cached_mid]="#F4B8E4" +theme[cached_end]="#CA9EE6" +theme[available_start]="#F2D5CF" +theme[available_mid]="#EEBEBE" +theme[available_end]="#EEBEBE" +theme[used_start]="#EF9F76" +theme[used_mid]="#EF9F76" +theme[used_end]="#E78284" +theme[download_start]="#BABBF1" +theme[download_mid]="#BABBF1" +theme[download_end]="#CA9EE6" +theme[upload_start]="#BABBF1" +theme[upload_mid]="#BABBF1" +theme[upload_end]="#CA9EE6" +theme[process_start]="#85C1DC" +theme[process_mid]="#99D1DB" +theme[process_end]="#81C8BE" diff --git a/config/btop/themes/catppuccin_latte.theme b/config/btop/themes/catppuccin_latte.theme new file mode 100644 index 0000000..2975ba7 --- /dev/null +++ b/config/btop/themes/catppuccin_latte.theme @@ -0,0 +1,42 @@ +theme[main_bg]="#EFF1F5" +theme[main_fg]="#4C4F69" +theme[title]="#4C4F69" +theme[hi_fg]="#1E66F5" +theme[selected_bg]="#BCC0CC" +theme[selected_fg]="#1E66F5" +theme[inactive_fg]="#8C8FA1" +theme[graph_text]="#DC8A78" +theme[meter_bg]="#BCC0CC" +theme[proc_misc]="#DC8A78" +theme[cpu_box]="#209FB5" +theme[mem_box]="#40A02B" +theme[net_box]="#8839EF" +theme[proc_box]="#DD7878" +theme[div_line]="#9CA0B0" +theme[temp_start]="#DF8E1D" +theme[temp_mid]="#FE640B" +theme[temp_end]="#D20F39" +theme[cpu_start]="#209FB5" +theme[cpu_mid]="#04A5E5" +theme[cpu_end]="#179299" +theme[free_start]="#179299" +theme[free_mid]="#179299" +theme[free_end]="#40A02B" +theme[cached_start]="#EA76CB" +theme[cached_mid]="#EA76CB" +theme[cached_end]="#8839EF" +theme[available_start]="#DC8A78" +theme[available_mid]="#DD7878" +theme[available_end]="#DD7878" +theme[used_start]="#FE640B" +theme[used_mid]="#FE640B" +theme[used_end]="#D20F39" +theme[download_start]="#7287FD" +theme[download_mid]="#7287FD" +theme[download_end]="#8839EF" +theme[upload_start]="#7287FD" +theme[upload_mid]="#7287FD" +theme[upload_end]="#8839EF" +theme[process_start]="#209FB5" +theme[process_mid]="#04A5E5" +theme[process_end]="#179299" diff --git a/config/btop/themes/catppuccin_macchiato.theme b/config/btop/themes/catppuccin_macchiato.theme new file mode 100644 index 0000000..7abd0bf --- /dev/null +++ b/config/btop/themes/catppuccin_macchiato.theme @@ -0,0 +1,42 @@ +theme[main_bg]="#24273A" +theme[main_fg]="#CAD3F5" +theme[title]="#CAD3F5" +theme[hi_fg]="#8AADF4" +theme[selected_bg]="#494D64" +theme[selected_fg]="#8AADF4" +theme[inactive_fg]="#8087A2" +theme[graph_text]="#F4DBD6" +theme[meter_bg]="#494D64" +theme[proc_misc]="#F4DBD6" +theme[cpu_box]="#7DC4E4" +theme[mem_box]="#A6DA95" +theme[net_box]="#C6A0F6" +theme[proc_box]="#F0C6C6" +theme[div_line]="#6E738D" +theme[temp_start]="#EED49F" +theme[temp_mid]="#F5A97F" +theme[temp_end]="#ED8796" +theme[cpu_start]="#7DC4E4" +theme[cpu_mid]="#91D7E3" +theme[cpu_end]="#8BD5CA" +theme[free_start]="#8BD5CA" +theme[free_mid]="#8BD5CA" +theme[free_end]="#A6DA95" +theme[cached_start]="#F5BDE6" +theme[cached_mid]="#F5BDE6" +theme[cached_end]="#C6A0F6" +theme[available_start]="#F4DBD6" +theme[available_mid]="#F0C6C6" +theme[available_end]="#F0C6C6" +theme[used_start]="#F5A97F" +theme[used_mid]="#F5A97F" +theme[used_end]="#ED8796" +theme[download_start]="#B7BDF8" +theme[download_mid]="#B7BDF8" +theme[download_end]="#C6A0F6" +theme[upload_start]="#B7BDF8" +theme[upload_mid]="#B7BDF8" +theme[upload_end]="#C6A0F6" +theme[process_start]="#7DC4E4" +theme[process_mid]="#91D7E3" +theme[process_end]="#8BD5CA" diff --git a/config/btop/themes/catppuccin_mocha.theme b/config/btop/themes/catppuccin_mocha.theme new file mode 100644 index 0000000..13cec40 --- /dev/null +++ b/config/btop/themes/catppuccin_mocha.theme @@ -0,0 +1,42 @@ +theme[main_bg]="#1E1E2E" +theme[main_fg]="#CDD6F4" +theme[title]="#CDD6F4" +theme[hi_fg]="#89B4FA" +theme[selected_bg]="#45475A" +theme[selected_fg]="#89B4FA" +theme[inactive_fg]="#7F849C" +theme[graph_text]="#F5E0DC" +theme[meter_bg]="#45475A" +theme[proc_misc]="#F5E0DC" +theme[cpu_box]="#74C7EC" +theme[mem_box]="#A6E3A1" +theme[net_box]="#CBA6F7" +theme[proc_box]="#F2CDCD" +theme[div_line]="#6C7086" +theme[temp_start]="#F9E2AF" +theme[temp_mid]="#FAB387" +theme[temp_end]="#F38BA8" +theme[cpu_start]="#74C7EC" +theme[cpu_mid]="#89DCEB" +theme[cpu_end]="#94E2D5" +theme[free_start]="#94E2D5" +theme[free_mid]="#94E2D5" +theme[free_end]="#A6E3A1" +theme[cached_start]="#F5C2E7" +theme[cached_mid]="#F5C2E7" +theme[cached_end]="#CBA6F7" +theme[available_start]="#F5E0DC" +theme[available_mid]="#F2CDCD" +theme[available_end]="#F2CDCD" +theme[used_start]="#FAB387" +theme[used_mid]="#FAB387" +theme[used_end]="#F38BA8" +theme[download_start]="#B4BEFE" +theme[download_mid]="#B4BEFE" +theme[download_end]="#CBA6F7" +theme[upload_start]="#B4BEFE" +theme[upload_mid]="#B4BEFE" +theme[upload_end]="#CBA6F7" +theme[process_start]="#74C7EC" +theme[process_mid]="#89DCEB" +theme[process_end]="#94E2D5" diff --git a/config/cava/config b/config/cava/config new file mode 100644 index 0000000..7fad763 --- /dev/null +++ b/config/cava/config @@ -0,0 +1,184 @@ +## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting. + + +[general] + +# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 +; mode = normal + +# Accepts only non-negative values. +; framerate = 60 + +# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off +# new as of 0.6.0 autosens of low values (dynamic range) +# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0 +; autosens = 1 +; overshoot = 20 + +# Manual sensitivity in %. If autosens is enabled, this will only be the initial value. +# 200 means double height. Accepts only non-negative values. +; sensitivity = 100 + +# The number of bars (0-200). 0 sets it to auto (fill up console). +# Bars' width and space between bars in number of characters. +; bars = 0 +; bar_width = 2 +; bar_spacing = 1 + +# For SDL width and space between bars is in pixels, defaults are: +; bar_width = 20 +; bar_spacing = 5 + + +# Lower and higher cutoff frequencies for lowest and highest bars +# the bandwidth of the visualizer. +# Note: there is a minimum total bandwidth of 43Mhz x number of bars. +# Cava will automatically increase the higher cutoff if a too low band is specified. +; lower_cutoff_freq = 50 +; higher_cutoff_freq = 10000 + + +# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and +# only check for input once per second. Cava will wake up once input is detected. 0 = disable. +; sleep_timer = 0 + + +[input] + +# Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem' +# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with. +# +# All input methods uses the same config variable 'source' +# to define where it should get the audio. +# +# For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink +# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). +# +# For alsa 'source' will be the capture device. +# For fifo 'source' will be the path to fifo-file. +# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address +method = pulse +source = auto + +; method = alsa +; source = hw:Loopback,1 + +; method = fifo +; source = /tmp/mpd.fifo +; sample_rate = 44100 +; sample_bits = 16 + +; method = shmem +; source = /squeezelite-AA:BB:CC:DD:EE:FF + +; method = portaudio +; source = auto + + +[output] + +# Output method. Can be 'ncurses', 'noncurses', 'raw' or 'sdl'. +# 'noncurses' uses a custom framebuffer technique and prints only changes +# from frame to frame in the terminal. 'ncurses' is default if supported. +# +# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data +# stream of the bar heights that can be used to send to other applications. +# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. +# +# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context. +; method = ncurses + +# Visual channels. Can be 'stereo' or 'mono'. +# 'stereo' mirrors both channels with low frequencies in center. +# 'mono' outputs left to right lowest to highest frequencies. +# 'mono_option' set mono to either take input from 'left', 'right' or 'average'. +; channels = stereo +; mono_option = average + +# Raw output target. A fifo will be created if target does not exist. +; raw_target = /dev/stdout + +# Raw data format. Can be 'binary' or 'ascii'. +; data_format = binary + +# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). +; bit_format = 16bit + +# Ascii max value. In 'ascii' mode range will run from 0 to value specified here +; ascii_max_range = 1000 + +# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. +# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). +; bar_delimiter = 59 +; frame_delimiter = 10 + +# sdl window size and position. -1,-1 is centered. +; sdl_width = 1000 +; sdl_height = 500 +; sdl_x = -1 +; sdl_y= -1 + +[color] + +# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow. +# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires +# ncurses output method and a terminal that can change color definitions such as Gnome-terminal or rxvt. +# if supported, ncurses mode will be forced on if user defined colors are used. +# default is to keep current terminal color +; background = default +; foreground = default + +# SDL only support hex code colors, these are the default: +; background = '#111111' +; foreground = '#33cccc' + + +# Gradient mode, only hex defined colors (and thereby ncurses mode) are supported, +# background must also be defined in hex or remain commented out. 1 = on, 0 = off. +# You can define as many as 8 different colors. They range from bottom to top of screen +# In the [color] section + +[color] + +gradient = 1 + +gradient_color_1 = '#94e2d5' +gradient_color_2 = '#89dceb' +gradient_color_3 = '#74c7ec' +gradient_color_4 = '#89b4fa' +gradient_color_5 = '#cba6f7' +gradient_color_6 = '#f5c2e7' +gradient_color_7 = '#eba0ac' +gradient_color_8 = '#f38ba8' + + + +[smoothing] + +# Percentage value for integral smoothing. Takes values from 0 - 100. +# Higher values means smoother, but less precise. 0 to disable. +; integral = 77 + +# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. +; monstercat = 0 +; waves = 0 + +# Set gravity percentage for "drop off". Higher values means bars will drop faster. +# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". +; gravity = 100 + + +# In bar height, bars that would have been lower that this will not be drawn. +; ignore = 0 + + +[eq] + +# This one is tricky. You can have as much keys as you want. +# Remember to uncomment more then one key! More keys = more precision. +# Look at readme.md on github for further explanations and examples. +; 1 = 1 # bass +; 2 = 1 +; 3 = 1 # midtone +; 4 = 1 +; 5 = 1 # treble diff --git a/config/cava/shaders/bar_spectrum.frag b/config/cava/shaders/bar_spectrum.frag new file mode 100644 index 0000000..b078913 --- /dev/null +++ b/config/cava/shaders/bar_spectrum.frag @@ -0,0 +1,79 @@ +#version 330 + +in vec2 fragCoord; +out vec4 fragColor; + +// bar values. defaults to left channels first (low to high), then right (high to low). +uniform float bars[512]; + +uniform int bars_count; // number of bars (left + right) (configurable) +uniform int bar_width; // bar width (configurable), not used here +uniform int bar_spacing; // space bewteen bars (configurable) + +uniform vec3 u_resolution; // window resolution + +//colors, configurable in cava config file (r,g,b) (0.0 - 1.0) +uniform vec3 bg_color; // background color +uniform vec3 fg_color; // foreground color + +uniform int gradient_count; +uniform vec3 gradient_colors[8]; // gradient colors + +vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max) +{ + //create color based on fraction of this color and next color + float yr = (y - y_min) / (y_max - y_min); + return col_1 * (1.0 - yr) + col_2 * yr; +} + +void main() +{ + // find which bar to use based on where we are on the x axis + float x = u_resolution.x * fragCoord.x; + int bar = int(bars_count * fragCoord.x); + + //calculate a bar size + float bar_size = u_resolution.x / bars_count; + + //the y coordinate and bar values are the same + float y = bars[bar]; + + // make sure there is a thin line at bottom + if (y * u_resolution.y < 1.0) + { + y = 1.0 / u_resolution.y; + } + + //draw the bar up to current height + if (y > fragCoord.y) + { + //make some space between bars basen on settings + if (x > (bar + 1) * (bar_size) - bar_spacing) + { + fragColor = vec4(bg_color,1.0); + } + else + { + if (gradient_count == 0) + { + fragColor = vec4(fg_color,1.0); + } + else + { + //find which color in the configured gradient we are at + int color = int((gradient_count - 1) * fragCoord.y); + + //find where on y this and next color is supposed to be + float y_min = color / (gradient_count - 1.0); + float y_max = (color + 1.0) / (gradient_count - 1.0); + + //make color + fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0); + } + } + } + else + { + fragColor = vec4(bg_color,1.0); + } +} \ No newline at end of file diff --git a/config/cava/shaders/normalized_bars.frag b/config/cava/shaders/normalized_bars.frag new file mode 100644 index 0000000..81a27e2 --- /dev/null +++ b/config/cava/shaders/normalized_bars.frag @@ -0,0 +1,38 @@ +#version 330 + +in vec2 fragCoord; +out vec4 fragColor; + +// bar values. defaults to left channels first (low to high), then right (high to low). +uniform float bars[512]; + +uniform int bars_count; // number of bars (left + right) (configurable) + +uniform vec3 u_resolution; // window resolution, not used here + +//colors, configurable in cava config file +uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here +uniform vec3 fg_color; // foreground color, not used here + +float normalize_C(float x, float x_min, float x_max, float r_min, float r_max ) +{ + float xr; + xr = (r_max-r_min) * (x - x_min) / (x_max - x_min) + r_min; + return xr; +} + +void main() +{ + // find which bar to use based on where we are on the x axis + int bar = int(bars_count * fragCoord.x); + + // create a normal along the y axis based on the bar height + float x = normalize_C(fragCoord.y, 1.0, 0.0, 0.0, bars[bar]); + + // set color + fragColor.r=fg_color.x*x; + fragColor.g=fg_color.y*x; + fragColor.b=fg_color.z*x; + fragColor.a=1.0; + +} diff --git a/config/cava/shaders/pass_through.vert b/config/cava/shaders/pass_through.vert new file mode 100644 index 0000000..a4f20e5 --- /dev/null +++ b/config/cava/shaders/pass_through.vert @@ -0,0 +1,14 @@ +#version 330 + + +// Input vertex data, different for all executions of this shader. +layout(location = 0) in vec3 vertexPosition_modelspace; + +// Output data ; will be interpolated for each fragment. +out vec2 fragCoord; + +void main() +{ + gl_Position = vec4(vertexPosition_modelspace,1); + fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0; +} diff --git a/config/dunst/dunstrc b/config/dunst/dunstrc new file mode 120000 index 0000000..ce8674d --- /dev/null +++ b/config/dunst/dunstrc @@ -0,0 +1 @@ +/home/ja/00-Shared-Drives/Common-nvme/git-packages - nvme/01-Published/Hyprland-Dots/config/dunst/styles/dunstrc-dark \ No newline at end of file diff --git a/config/dunst/icons/backup.png b/config/dunst/icons/backup.png new file mode 100644 index 0000000..a60a495 Binary files /dev/null and b/config/dunst/icons/backup.png differ diff --git a/config/dunst/icons/battery-quarter-solid.svg b/config/dunst/icons/battery-quarter-solid.svg new file mode 100644 index 0000000..450ef3d --- /dev/null +++ b/config/dunst/icons/battery-quarter-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/config/dunst/icons/battery-status.png b/config/dunst/icons/battery-status.png new file mode 100644 index 0000000..07bf815 Binary files /dev/null and b/config/dunst/icons/battery-status.png differ diff --git a/config/dunst/icons/brightness-100.png b/config/dunst/icons/brightness-100.png new file mode 100644 index 0000000..1e28ac3 Binary files /dev/null and b/config/dunst/icons/brightness-100.png differ diff --git a/config/dunst/icons/brightness-20.png b/config/dunst/icons/brightness-20.png new file mode 100644 index 0000000..aee9c52 Binary files /dev/null and b/config/dunst/icons/brightness-20.png differ diff --git a/config/dunst/icons/brightness-40.png b/config/dunst/icons/brightness-40.png new file mode 100644 index 0000000..bbedd1c Binary files /dev/null and b/config/dunst/icons/brightness-40.png differ diff --git a/config/dunst/icons/brightness-60.png b/config/dunst/icons/brightness-60.png new file mode 100644 index 0000000..4cd838b Binary files /dev/null and b/config/dunst/icons/brightness-60.png differ diff --git a/config/dunst/icons/brightness-80.png b/config/dunst/icons/brightness-80.png new file mode 100644 index 0000000..6684bdb Binary files /dev/null and b/config/dunst/icons/brightness-80.png differ diff --git a/config/dunst/icons/dropper.png b/config/dunst/icons/dropper.png new file mode 100644 index 0000000..2e222a3 Binary files /dev/null and b/config/dunst/icons/dropper.png differ diff --git a/config/dunst/icons/microphone-mute.png b/config/dunst/icons/microphone-mute.png new file mode 100644 index 0000000..1780e33 Binary files /dev/null and b/config/dunst/icons/microphone-mute.png differ diff --git a/config/dunst/icons/microphone.png b/config/dunst/icons/microphone.png new file mode 100644 index 0000000..d1b6d76 Binary files /dev/null and b/config/dunst/icons/microphone.png differ diff --git a/config/dunst/icons/music.png b/config/dunst/icons/music.png new file mode 100644 index 0000000..92bf4c6 Binary files /dev/null and b/config/dunst/icons/music.png differ diff --git a/config/dunst/icons/palette.png b/config/dunst/icons/palette.png new file mode 100644 index 0000000..3ba73d0 Binary files /dev/null and b/config/dunst/icons/palette.png differ diff --git a/config/dunst/icons/picture.png b/config/dunst/icons/picture.png new file mode 100644 index 0000000..4669bc3 Binary files /dev/null and b/config/dunst/icons/picture.png differ diff --git a/config/dunst/icons/timer.png b/config/dunst/icons/timer.png new file mode 100644 index 0000000..420d1f1 Binary files /dev/null and b/config/dunst/icons/timer.png differ diff --git a/config/dunst/icons/uptime.png b/config/dunst/icons/uptime.png new file mode 100644 index 0000000..9dd08de Binary files /dev/null and b/config/dunst/icons/uptime.png differ diff --git a/config/dunst/icons/volume-high.png b/config/dunst/icons/volume-high.png new file mode 100644 index 0000000..200f17b Binary files /dev/null and b/config/dunst/icons/volume-high.png differ diff --git a/config/dunst/icons/volume-low.png b/config/dunst/icons/volume-low.png new file mode 100644 index 0000000..17cfff7 Binary files /dev/null and b/config/dunst/icons/volume-low.png differ diff --git a/config/dunst/icons/volume-mid.png b/config/dunst/icons/volume-mid.png new file mode 100644 index 0000000..1a3ad3a Binary files /dev/null and b/config/dunst/icons/volume-mid.png differ diff --git a/config/dunst/icons/volume-mute.png b/config/dunst/icons/volume-mute.png new file mode 100644 index 0000000..0b9b0c3 Binary files /dev/null and b/config/dunst/icons/volume-mute.png differ diff --git a/config/dunst/icons/vpn.png b/config/dunst/icons/vpn.png new file mode 100644 index 0000000..e31acaa Binary files /dev/null and b/config/dunst/icons/vpn.png differ diff --git a/config/dunst/images/notification.png b/config/dunst/images/notification.png new file mode 100644 index 0000000..48f6e3c Binary files /dev/null and b/config/dunst/images/notification.png differ diff --git a/config/dunst/images/notification2.png b/config/dunst/images/notification2.png new file mode 100644 index 0000000..557777d Binary files /dev/null and b/config/dunst/images/notification2.png differ diff --git a/config/dunst/images/notification3.png b/config/dunst/images/notification3.png new file mode 100644 index 0000000..40303e2 Binary files /dev/null and b/config/dunst/images/notification3.png differ diff --git a/config/dunst/images/notification4.png b/config/dunst/images/notification4.png new file mode 100755 index 0000000..4f3a210 Binary files /dev/null and b/config/dunst/images/notification4.png differ diff --git a/config/dunst/reload b/config/dunst/reload new file mode 100755 index 0000000..9e8ee07 --- /dev/null +++ b/config/dunst/reload @@ -0,0 +1,13 @@ +#!/bin/bash +pkill dunst +dunst -config ~/.config/dunst/dunstrc & + +notify-send -u critical "Test message: critical test 1" +notify-send -u normal "Test message: normal test 2" +notify-send -u low "Test message: low test 3" +notify-send -u critical "Test message: critical test 4" +notify-send -u normal "Test message: normal test 5" +notify-send -u low "Test message: low test 6" +notify-send -u critical "Test message: critical test 7" +notify-send -u normal "Test message: normal test 8" +notify-send -u low "Test message: low test 9" diff --git a/config/dunst/styles/dunstrc b/config/dunst/styles/dunstrc new file mode 120000 index 0000000..ce8674d --- /dev/null +++ b/config/dunst/styles/dunstrc @@ -0,0 +1 @@ +/home/ja/00-Shared-Drives/Common-nvme/git-packages - nvme/01-Published/Hyprland-Dots/config/dunst/styles/dunstrc-dark \ No newline at end of file diff --git a/config/dunst/styles/dunstrc-dark b/config/dunst/styles/dunstrc-dark new file mode 100755 index 0000000..ef1c864 --- /dev/null +++ b/config/dunst/styles/dunstrc-dark @@ -0,0 +1,422 @@ +[global] + ### Display ### + + # Which monitor should the notifications be displayed on. + monitor = 0 + + # Display notification on focused monitor. Possible modes are: + # mouse: follow mouse pointer + # keyboard: follow window with keyboard focus + # none: don't follow anything + # + # "keyboard" needs a window manager that exports the + # _NET_ACTIVE_WINDOW property. + # This should be the case for almost all modern window managers. + # + # If this option is set to mouse or keyboard, the monitor option + # will be ignored. + follow = mouse + + # The geometry of the window: + # [{width}]x{height}[+/-{x}+/-{y}] + # The geometry of the message window. + # The height is measured in number of notifications everything else + # in pixels. If the width is omitted but the height is given + # ("-geometry x2"), the message window expands over the whole screen + # (dmenu-like). If width is 0, the window expands to the longest + # message displayed. A positive x is measured from the left, a + # negative from the right side of the screen. Y is measured from + # the top and down respectively. + # The width can be negative. In this case the actual width is the + # screen width minus the width defined in within the geometry option. + #geometry = "300x60+15+46" + width = (250, 350) + height = 350 + origin = top-center + offset = 10x10 + + notification_limit = 9 + + # Show how many messages are currently hidden (because of geometry). + indicate_hidden = yes + + # Shrink window if it's smaller than the width. Will be ignored if + # width is 0. + shrink = no + + # The transparency of the window. Range: [0; 100]. + # This option will only work if a compositing window manager is + # present (e.g. xcompmgr, compiz, etc.). + transparency = 20 + + # The height of the entire notification. If the height is smaller + # than the font height and padding combined, it will be raised + # to the font height and padding. + notification_height = 15 + + # Draw a line of "separator_height" pixel height between two + # notifications. + # Set to 0 to disable. + separator_height = 2 + + # Padding between text and separator. + padding = 8 + + # Horizontal padding. + horizontal_padding = 8 + + # Defines width in pixels of frame around the notification window. + # Set to 0 to disable. + frame_width = 1 + + # Defines color of the frame around the notification window. + frame_color = "#cdd6f4" + + # Define a color for the separator. + # possible values are: + # * auto: dunst tries to find a color fitting to the background; + # * foreground: use the same color as the foreground; + # * frame: use the same color as the frame; + # * anything else will be interpreted as a X color. + separator_color = frame + + # Sort messages by urgency. + sort = yes + + # Don't remove messages, if the user is idle (no mouse or keyboard input) + # for longer than idle_threshold seconds. + # Set to 0 to disable. + # A client can set the 'transient' hint to bypass this. See the rules + # section for how to disable this if necessary + idle_threshold = 120 + + ### Text ### + + font = Fantasque Sans Mono 15 + + # The spacing between lines. If the height is smaller than the + # font height, it will get raised to the font height. + line_height = 0 + + # Possible values are: + # full: Allow a small subset of html markup in notifications: + # bold + # italic + # strikethrough + # underline + # + # For a complete reference see + # . + # + # strip: This setting is provided for compatibility with some broken + # clients that send markup even though it's not enabled on the + # server. Dunst will try to strip the markup but the parsing is + # simplistic so using this option outside of matching rules for + # specific applications *IS GREATLY DISCOURAGED*. + # + # no: Disable markup parsing, incoming notifications will be treated as + # plain text. Dunst will not advertise that it has the body-markup + # capability if this is set as a global setting. + # + # It's important to note that markup inside the format option will be parsed + # regardless of what this is set to. + markup = full + + # The format of the message. Possible variables are: + # %a appname + # %s summary + # %b body + # %i iconname (including its path) + # %I iconname (without its path) + # %p progress value if set ([ 0%] to [100%]) or nothing + # %n progress value if set without any extra characters + # %% Literal % + # Markup is allowed + format = "%s\n%b" + + # Alignment of message text. + # Possible values are "left", "center" and "right". + alignment = center + + # Show age of message if message is older than show_age_threshold + # seconds. + # Set to -1 to disable. + show_age_threshold = 60 + + # Split notifications into multiple lines if they don't fit into + # geometry. + word_wrap = yes + + # When word_wrap is set to no, specify where to make an ellipsis in long lines. + # Possible values are "start", "middle" and "end". + ellipsize = middle + + # Ignore newlines '\n' in notifications. + ignore_newline = no + + # Stack together notifications with the same content + stack_duplicates = true + + # Hide the count of stacked notifications with the same content + hide_duplicate_count = false + + # Display indicators for URLs (U) and actions (A). + show_indicators = yes + + ### Icons ### + + # Align icons left/right/off + icon_position = left + + # Scale larger icons down to this size, set to 0 to disable + max_icon_size = 32 + + # Paths to default icons. + #icon_path = /usr/share/icons/candy-icons/apps/scalable:/usr/share/icons/candy-icons/devices/scalable/ + + ### History ### + + # Should a notification popped up from history be sticky or timeout + # as if it would normally do. + sticky_history = yes + + # Maximum amount of notifications kept in history + history_length = 20 + + ### Misc/Advanced ### + + # dmenu path. + dmenu = /usr/bin/dmenu -p dunst: + + # Browser for opening urls in context menu. + browser = /usr/bin/firefox -new-tab + + # Always run rule-defined scripts, even if the notification is suppressed + always_run_script = true + + # Define the title of the windows spawned by dunst + title = Dunst + + # Define the class of the windows spawned by dunst + class = Dunst + + # Print a notification on startup. + # This is mainly for error detection, since dbus (re-)starts dunst + # automatically after a crash. + startup_notification = false + + # Manage dunst's desire for talking + # Can be one of the following values: + # crit: Critical features. Dunst aborts + # warn: Only non-fatal warnings + # mesg: Important Messages + # info: all unimportant stuff + # debug: all less than unimportant stuff + verbosity = mesg + + # Define the corner radius of the notification window + # in pixel size. If the radius is 0, you have no rounded + # corners. + # The radius will be automatically lowered if it exceeds half of the + # notification height to avoid clipping text and/or icons. + corner_radius = 8 + + ### Legacy + + # Use the Xinerama extension instead of RandR for multi-monitor support. + # This setting is provided for compatibility with older nVidia drivers that + # do not support RandR and using it on systems that support RandR is highly + # discouraged. + # + # By enabling this setting dunst will not be able to detect when a monitor + # is connected or disconnected which might break follow mode if the screen + # layout changes. + force_xinerama = false + + ### mouse + + # Defines action of mouse event + # Possible values are: + # * none: Don't do anything. + # * do_action: If the notification has exactly one action, or one is marked as default, + # invoke it. If there are multiple and no default, open the context menu. + # * close_current: Close current notification. + # * close_all: Close all notifications. + mouse_left_click = do_action + mouse_middle_click = close_all + mouse_right_click = close_current + +# Experimental features that may or may not work correctly. Do not expect them +# to have a consistent behaviour across releases. +[experimental] + # Calculate the dpi to use on a per-monitor basis. + # If this setting is enabled the Xft.dpi value will be ignored and instead + # dunst will attempt to calculate an appropriate dpi value for each monitor + # using the resolution and physical size. This might be useful in setups + # where there are multiple screens with very different dpi values. + per_monitor_dpi = false + +[shortcuts] + + # Shortcuts are specified as [modifier+][modifier+]...key + # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", + # "mod3" and "mod4" (windows-key). + # Xev might be helpful to find names for keys. + + # Close notification. + close = ctrl+space + + # Close all notifications. + close_all = ctrl+shift+space + + # Redisplay last message(s). + # On the US keyboard layout "grave" is normally above TAB and left + # of "1". Make sure this key actually exists on your keyboard layout, + # e.g. check output of 'xmodmap -pke' + history = ctrl+grave + + # Context menu. + context = ctrl+shift+grave + +[urgency_low] + # IMPORTANT: colors have to be defined in quotation marks. + # Otherwise the "#" and following would be interpreted as a comment. + background = "#1e1e2e" + foreground = "#cdd6f4" + #frame_color = "#2c2c2c" + timeout = 2 + # Icon for notifications with low urgency, uncomment to enable + icon = ~/.config/hypr/dunst/images/notification.png + +[urgency_normal] + background = "#1e1e2e" + foreground = "#cdd6f4" + #frame_color = "#2c2c2c" + timeout = 5 + # Icon for notifications with normal urgency, uncomment to enable + icon = ~/.config/hypr/dunst/images/notification.png + +[urgency_critical] + background = "#131313" + foreground = "#f5cb42" + frame_color = "#f38ba8" + timeout = 0 + # Icon for notifications with critical urgency, uncomment to enable + icon = ~/.config/hypr/dunst/images/notification.png + +# Every section that isn't one of the above is interpreted as a rules to +# override settings for certain messages. +# +# Messages can be matched by +# appname (discouraged, see desktop_entry) +# body +# category +# desktop_entry +# icon +# match_transient +# msg_urgency +# stack_tag +# summary +# +# and you can override the +# background = "#1e1e2e" +# foreground +# format +# frame_color +# fullscreen +# new_icon +# set_stack_tag +# set_transient +# timeout +# urgency +# +# Shell-like globbing will get expanded. +# +# Instead of the appname filter, it's recommended to use the desktop_entry filter. +# GLib based applications export their desktop-entry name. In comparison to the appname, +# the desktop-entry won't get localized. +# +# SCRIPTING +# You can specify a script that gets run when the rule matches by +# setting the "script" option. +# The script will be called as follows: +# script appname summary body icon urgency +# where urgency can be "LOW", "NORMAL" or "CRITICAL". +# +# NOTE: if you don't want a notification to be displayed, set the format +# to "". +# NOTE: It might be helpful to run dunst -print in a terminal in order +# to find fitting options for rules. + +# Disable the transient hint so that idle_threshold cannot be bypassed from the +# client +#[transient_disable] +# match_transient = yes +# set_transient = no +# +# Make the handling of transient notifications more strict by making them not +# be placed in history. +#[transient_history_ignore] +# match_transient = yes +# history_ignore = yes + +# fullscreen values +# show: show the notifications, regardless if there is a fullscreen window opened +# delay: displays the new notification, if there is no fullscreen window active +# If the notification is already drawn, it won't get undrawn. +# pushback: same as delay, but when switching into fullscreen, the notification will get +# withdrawn from screen again and will get delayed like a new notification +#[fullscreen_delay_everything] +# fullscreen = delay +#[fullscreen_show_critical] +# msg_urgency = critical +# fullscreen = show + +#[espeak] +# summary = "*" +# script = dunst_espeak.sh + +#[script-test] +# summary = "*script*" +# script = dunst_test.sh + +#[ignore] +# # This notification will not be displayed +# summary = "foobar" +# format = "" + +#[history-ignore] +# # This notification will not be saved in history +# summary = "foobar" +# history_ignore = yes + +#[skip-display] +# # This notification will not be displayed, but will be included in the history +# summary = "foobar" +# skip_display = yes + +#[signed_on] +# appname = Pidgin +# summary = "*signed on*" +# urgency = low +# +#[signed_off] +# appname = Pidgin +# summary = *signed off* +# urgency = low +# +#[says] +# appname = Pidgin +# summary = *says* +# urgency = critical +# +#[twitter] +# appname = Pidgin +# summary = *twitter.com* +# urgency = normal +# +#[stack-volumes] +# appname = "some_volume_notifiers" +# set_stack_tag = "volume" +# +# vim: ft=cfg diff --git a/config/dunst/styles/dunstrc-light b/config/dunst/styles/dunstrc-light new file mode 100755 index 0000000..e738d22 --- /dev/null +++ b/config/dunst/styles/dunstrc-light @@ -0,0 +1,422 @@ +[global] + ### Display ### + + # Which monitor should the notifications be displayed on. + monitor = 0 + + # Display notification on focused monitor. Possible modes are: + # mouse: follow mouse pointer + # keyboard: follow window with keyboard focus + # none: don't follow anything + # + # "keyboard" needs a window manager that exports the + # _NET_ACTIVE_WINDOW property. + # This should be the case for almost all modern window managers. + # + # If this option is set to mouse or keyboard, the monitor option + # will be ignored. + follow = mouse + + # The geometry of the window: + # [{width}]x{height}[+/-{x}+/-{y}] + # The geometry of the message window. + # The height is measured in number of notifications everything else + # in pixels. If the width is omitted but the height is given + # ("-geometry x2"), the message window expands over the whole screen + # (dmenu-like). If width is 0, the window expands to the longest + # message displayed. A positive x is measured from the left, a + # negative from the right side of the screen. Y is measured from + # the top and down respectively. + # The width can be negative. In this case the actual width is the + # screen width minus the width defined in within the geometry option. + #geometry = "300x60+15+46" + width = (250, 350) + height = 350 + origin = top-center + offset = 10x10 + + notification_limit = 9 + + # Show how many messages are currently hidden (because of geometry). + indicate_hidden = yes + + # Shrink window if it's smaller than the width. Will be ignored if + # width is 0. + shrink = no + + # The transparency of the window. Range: [0; 100]. + # This option will only work if a compositing window manager is + # present (e.g. xcompmgr, compiz, etc.). + transparency = 20 + + # The height of the entire notification. If the height is smaller + # than the font height and padding combined, it will be raised + # to the font height and padding. + notification_height = 15 + + # Draw a line of "separator_height" pixel height between two + # notifications. + # Set to 0 to disable. + separator_height = 2 + + # Padding between text and separator. + padding = 8 + + # Horizontal padding. + horizontal_padding = 8 + + # Defines width in pixels of frame around the notification window. + # Set to 0 to disable. + frame_width = 1 + + # Defines color of the frame around the notification window. + frame_color = "#313244" + + # Define a color for the separator. + # possible values are: + # * auto: dunst tries to find a color fitting to the background; + # * foreground: use the same color as the foreground; + # * frame: use the same color as the frame; + # * anything else will be interpreted as a X color. + separator_color = frame + + # Sort messages by urgency. + sort = yes + + # Don't remove messages, if the user is idle (no mouse or keyboard input) + # for longer than idle_threshold seconds. + # Set to 0 to disable. + # A client can set the 'transient' hint to bypass this. See the rules + # section for how to disable this if necessary + idle_threshold = 120 + + ### Text ### + + font = Fantasque Sans Mono 15 + + # The spacing between lines. If the height is smaller than the + # font height, it will get raised to the font height. + line_height = 0 + + # Possible values are: + # full: Allow a small subset of html markup in notifications: + # bold + # italic + # strikethrough + # underline + # + # For a complete reference see + # . + # + # strip: This setting is provided for compatibility with some broken + # clients that send markup even though it's not enabled on the + # server. Dunst will try to strip the markup but the parsing is + # simplistic so using this option outside of matching rules for + # specific applications *IS GREATLY DISCOURAGED*. + # + # no: Disable markup parsing, incoming notifications will be treated as + # plain text. Dunst will not advertise that it has the body-markup + # capability if this is set as a global setting. + # + # It's important to note that markup inside the format option will be parsed + # regardless of what this is set to. + markup = full + + # The format of the message. Possible variables are: + # %a appname + # %s summary + # %b body + # %i iconname (including its path) + # %I iconname (without its path) + # %p progress value if set ([ 0%] to [100%]) or nothing + # %n progress value if set without any extra characters + # %% Literal % + # Markup is allowed + format = "%s\n%b" + + # Alignment of message text. + # Possible values are "left", "center" and "right". + alignment = center + + # Show age of message if message is older than show_age_threshold + # seconds. + # Set to -1 to disable. + show_age_threshold = 60 + + # Split notifications into multiple lines if they don't fit into + # geometry. + word_wrap = yes + + # When word_wrap is set to no, specify where to make an ellipsis in long lines. + # Possible values are "start", "middle" and "end". + ellipsize = middle + + # Ignore newlines '\n' in notifications. + ignore_newline = no + + # Stack together notifications with the same content + stack_duplicates = true + + # Hide the count of stacked notifications with the same content + hide_duplicate_count = false + + # Display indicators for URLs (U) and actions (A). + show_indicators = yes + + ### Icons ### + + # Align icons left/right/off + icon_position = left + + # Scale larger icons down to this size, set to 0 to disable + max_icon_size = 32 + + # Paths to default icons. + #icon_path = /usr/share/icons/candy-icons/apps/scalable:/usr/share/icons/candy-icons/devices/scalable/ + + ### History ### + + # Should a notification popped up from history be sticky or timeout + # as if it would normally do. + sticky_history = yes + + # Maximum amount of notifications kept in history + history_length = 20 + + ### Misc/Advanced ### + + # dmenu path. + dmenu = /usr/bin/dmenu -p dunst: + + # Browser for opening urls in context menu. + browser = /usr/bin/firefox -new-tab + + # Always run rule-defined scripts, even if the notification is suppressed + always_run_script = true + + # Define the title of the windows spawned by dunst + title = Dunst + + # Define the class of the windows spawned by dunst + class = Dunst + + # Print a notification on startup. + # This is mainly for error detection, since dbus (re-)starts dunst + # automatically after a crash. + startup_notification = false + + # Manage dunst's desire for talking + # Can be one of the following values: + # crit: Critical features. Dunst aborts + # warn: Only non-fatal warnings + # mesg: Important Messages + # info: all unimportant stuff + # debug: all less than unimportant stuff + verbosity = mesg + + # Define the corner radius of the notification window + # in pixel size. If the radius is 0, you have no rounded + # corners. + # The radius will be automatically lowered if it exceeds half of the + # notification height to avoid clipping text and/or icons. + corner_radius = 8 + + ### Legacy + + # Use the Xinerama extension instead of RandR for multi-monitor support. + # This setting is provided for compatibility with older nVidia drivers that + # do not support RandR and using it on systems that support RandR is highly + # discouraged. + # + # By enabling this setting dunst will not be able to detect when a monitor + # is connected or disconnected which might break follow mode if the screen + # layout changes. + force_xinerama = false + + ### mouse + + # Defines action of mouse event + # Possible values are: + # * none: Don't do anything. + # * do_action: If the notification has exactly one action, or one is marked as default, + # invoke it. If there are multiple and no default, open the context menu. + # * close_current: Close current notification. + # * close_all: Close all notifications. + mouse_left_click = do_action + mouse_middle_click = close_all + mouse_right_click = close_current + +# Experimental features that may or may not work correctly. Do not expect them +# to have a consistent behaviour across releases. +[experimental] + # Calculate the dpi to use on a per-monitor basis. + # If this setting is enabled the Xft.dpi value will be ignored and instead + # dunst will attempt to calculate an appropriate dpi value for each monitor + # using the resolution and physical size. This might be useful in setups + # where there are multiple screens with very different dpi values. + per_monitor_dpi = false + +[shortcuts] + + # Shortcuts are specified as [modifier+][modifier+]...key + # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", + # "mod3" and "mod4" (windows-key). + # Xev might be helpful to find names for keys. + + # Close notification. + close = ctrl+space + + # Close all notifications. + close_all = ctrl+shift+space + + # Redisplay last message(s). + # On the US keyboard layout "grave" is normally above TAB and left + # of "1". Make sure this key actually exists on your keyboard layout, + # e.g. check output of 'xmodmap -pke' + history = ctrl+grave + + # Context menu. + context = ctrl+shift+grave + +[urgency_low] + # IMPORTANT: colors have to be defined in quotation marks. + # Otherwise the "#" and following would be interpreted as a comment. + background = "#e7e7ec" + foreground = "#1e1e2e" + #frame_color = "#2c2c2c" + timeout = 2 + # Icon for notifications with low urgency, uncomment to enable + icon = ~/.config/hypr/dunst/images/notification2.png + +[urgency_normal] + background = "#e7e7ec" + foreground = "#1e1e2e" + #frame_color = "#2c2c2c" + timeout = 5 + # Icon for notifications with normal urgency, uncomment to enable + icon = ~/.config/hypr/dunst/images/notification2.png + +[urgency_critical] + background = "#e7e7ec" + foreground = "#f5cb42" + frame_color = "#f38ba8" + timeout = 0 + # Icon for notifications with critical urgency, uncomment to enable + icon = ~/.config/hypr/dunst/images/notification2.png + +# Every section that isn't one of the above is interpreted as a rules to +# override settings for certain messages. +# +# Messages can be matched by +# appname (discouraged, see desktop_entry) +# body +# category +# desktop_entry +# icon +# match_transient +# msg_urgency +# stack_tag +# summary +# +# and you can override the +# background = "#e7e7ec" +# foreground +# format +# frame_color +# fullscreen +# new_icon +# set_stack_tag +# set_transient +# timeout +# urgency +# +# Shell-like globbing will get expanded. +# +# Instead of the appname filter, it's recommended to use the desktop_entry filter. +# GLib based applications export their desktop-entry name. In comparison to the appname, +# the desktop-entry won't get localized. +# +# SCRIPTING +# You can specify a script that gets run when the rule matches by +# setting the "script" option. +# The script will be called as follows: +# script appname summary body icon urgency +# where urgency can be "LOW", "NORMAL" or "CRITICAL". +# +# NOTE: if you don't want a notification to be displayed, set the format +# to "". +# NOTE: It might be helpful to run dunst -print in a terminal in order +# to find fitting options for rules. + +# Disable the transient hint so that idle_threshold cannot be bypassed from the +# client +#[transient_disable] +# match_transient = yes +# set_transient = no +# +# Make the handling of transient notifications more strict by making them not +# be placed in history. +#[transient_history_ignore] +# match_transient = yes +# history_ignore = yes + +# fullscreen values +# show: show the notifications, regardless if there is a fullscreen window opened +# delay: displays the new notification, if there is no fullscreen window active +# If the notification is already drawn, it won't get undrawn. +# pushback: same as delay, but when switching into fullscreen, the notification will get +# withdrawn from screen again and will get delayed like a new notification +#[fullscreen_delay_everything] +# fullscreen = delay +#[fullscreen_show_critical] +# msg_urgency = critical +# fullscreen = show + +#[espeak] +# summary = "*" +# script = dunst_espeak.sh + +#[script-test] +# summary = "*script*" +# script = dunst_test.sh + +#[ignore] +# # This notification will not be displayed +# summary = "foobar" +# format = "" + +#[history-ignore] +# # This notification will not be saved in history +# summary = "foobar" +# history_ignore = yes + +#[skip-display] +# # This notification will not be displayed, but will be included in the history +# summary = "foobar" +# skip_display = yes + +#[signed_on] +# appname = Pidgin +# summary = "*signed on*" +# urgency = low +# +#[signed_off] +# appname = Pidgin +# summary = *signed off* +# urgency = low +# +#[says] +# appname = Pidgin +# summary = *says* +# urgency = critical +# +#[twitter] +# appname = Pidgin +# summary = *twitter.com* +# urgency = normal +# +#[stack-volumes] +# appname = "some_volume_notifiers" +# set_stack_tag = "volume" +# +# vim: ft=cfg diff --git a/config/foot/foot.ini b/config/foot/foot.ini new file mode 100644 index 0000000..7fd2c86 --- /dev/null +++ b/config/foot/foot.ini @@ -0,0 +1,194 @@ +# -*- conf -*- + +# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd) +# term=foot (or xterm-256color if built with -Dterminfo=disabled) +# login-shell=no + +# app-id=foot +# title=foot +# locked-title=no + +#font=Fira Code:weight=SemiBold:size=12 +font=Fantasque Sans Mono:weight=SemiBold:size=13 +# font-bold= +# font-italic= +# font-bold-italic= +# line-height= +# letter-spacing=0 +# horizontal-letter-offset=0 +# vertical-letter-offset=0 +# underline-offset= +# box-drawings-uses-font-glyphs=no +dpi-aware=no + +# initial-window-size-pixels=700x500 # Or, +# initial-window-size-chars= +# initial-window-mode=windowed +# pad=2x2 # optionally append 'center' +# resize-delay-ms=100 + +# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body} + +bold-text-in-bright=yes +# word-delimiters=,│`|:"'()[]{}<> +# selection-target=primary +# workers= + +#[environment] +# name=value + +[bell] +# urgent=no +# notify=no +# command= +# command-focused=no + +[scrollback] +# lines=1000 +# multiplier=3.0 +# indicator-position=relative +# indicator-format= + +[url] +# launch=xdg-open ${url} +# label-letters=sadfjklewcmpgh +# osc8-underline=url-mode +# protocols=http, https, ftp, ftps, file, gemini, gopher +# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[] + +[cursor] +# style=block +# color= +# blink=no +# beam-thickness=1.5 +# underline-thickness= + +[mouse] +# hide-when-typing=no +# alternate-scroll-mode=yes + +[colors] +alpha=0.6 +foreground=dddddd +background=000000 + +## kitty themes ## +regular0=000000 # black +regular1=cc0403 # red +regular2=19cb00 # green +regular3=cecb00 # yellow +regular4=0d73cc # blue +regular5=cb1ed1 # magenta +regular6=0dcdcd # cyan +regular7=dddddd # white +bright0=767676 # bright black +bright1=f2201f # bright red +bright2=23fd00 # bright green +bright3=fffd00 # bright yellow +bright4=1a8fff # bright blue +bright5=fd28ff # bright magenta +bright6=14ffff # bright cyan +bright7=ffffff # bright white + +## dimmed colors (see foot.ini(5) man page) +# dim0= +# ... +# dim7= + +## The remaining 256-color palette +# 16 = <256-color palette #16> +# ... +# 255 = <256-color palette #255> + +## Misc colors +# selection-foreground= +# selection-background= +# jump-labels= # black-on-yellow +# scrollback-indicator= # black-on-bright-blue +# search-box-no-match= # black-on-red +# search-box-match= # black-on-yellow +# urls= + +[csd] +# preferred=server +# size=26 +# font= +# color= +# hide-when-typing=no +# border-width=0 +# border-color= +# button-width=26 +# button-color= +# button-minimize-color= +# button-maximize-color= +# button-close-color= + +[key-bindings] +# scrollback-up-page=Shift+Page_Up +# scrollback-up-half-page=none +# scrollback-up-line=none +# scrollback-down-page=Shift+Page_Down +# scrollback-down-half-page=none +# scrollback-down-line=none +# clipboard-copy=Control+Shift+c XF86Copy +# clipboard-paste=Control+Shift+v XF86Paste +# primary-paste=Shift+Insert +# search-start=Control+Shift+r +# font-increase=Control+plus Control+equal Control+KP_Add +# font-decrease=Control+minus Control+KP_Subtract +# font-reset=Control+0 Control+KP_0 +# spawn-terminal=Control+Shift+n +# minimize=none +# maximize=none +# fullscreen=none +# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none +# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none +# pipe-selected=[xargs -r firefox] none +# show-urls-launch=Control+Shift+u +# show-urls-copy=none +# show-urls-persistent=none +# prompt-prev=Control+Shift+z +# prompt-next=Control+Shift+x +# unicode-input=none +# noop=none + +[search-bindings] +# cancel=Control+g Control+c Escape +# commit=Return +# find-prev=Control+r +# find-next=Control+s +# cursor-left=Left Control+b +# cursor-left-word=Control+Left Mod1+b +# cursor-right=Right Control+f +# cursor-right-word=Control+Right Mod1+f +# cursor-home=Home Control+a +# cursor-end=End Control+e +# delete-prev=BackSpace +# delete-prev-word=Mod1+BackSpace Control+BackSpace +# delete-next=Delete +# delete-next-word=Mod1+d Control+Delete +# extend-to-word-boundary=Control+w +# extend-to-next-whitespace=Control+Shift+w +# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste +# primary-paste=Shift+Insert +# unicode-input=none + +[url-bindings] +# cancel=Control+g Control+c Control+d Escape +# toggle-url-visible=t + +[text-bindings] +# \x03=Mod4+c # Map Super+c -> Ctrl+c + +[mouse-bindings] +# selection-override-modifiers=Shift +# primary-paste=BTN_MIDDLE +# select-begin=BTN_LEFT +# select-begin-block=Control+BTN_LEFT +# select-extend=BTN_RIGHT +# select-extend-character-wise=Control+BTN_RIGHT +# select-word=BTN_LEFT-2 +# select-word-whitespace=Control+BTN_LEFT-2 +# select-row=BTN_LEFT-3 + +# vim: ft=dosini diff --git a/config/hypr/HelpFile.md b/config/hypr/HelpFile.md new file mode 100644 index 0000000..a7e4d60 --- /dev/null +++ b/config/hypr/HelpFile.md @@ -0,0 +1,94 @@ +# Welcome to my Hyprland help, and tips and tricks # +# If you have questions, or need help you can open issue on my github +# Or you can reach me in or join on Discord that I admin +# Discord link https://discord.gg/V2SJ92vbEN +# Github page: https://github.com/JaKooLit + + Super = Windows Key + +# common operations + Super h *keyhint* (THIS DOCUMENT) + Super Return *term* (`foot`) + Super q *quit* (kill focused window) + Super Shift q *quit* (kill focused window) + Super d *show app menu* (`wofi small`) + Super Shift d *show app menu* (`wofi large`) + +# wallpaper / styling stuff + Super w *wallpaper shuffle* (right click on wallpaper  waybar module) + Super Shift w *waybar style-change* (middle click on wallpaper  waybar module) + Super Ctrl w *wallpaper switcher* (click on wallpaper waybar  module) + + - right click on update  waybar module *wallpaper cycle using swaybg* (no animations) + + - To change permanently the wallpaper edit the file in *~/.config/hypr/configs/Execs.conf* + - For a persistent wallpaper after dark-light mode, edit your Execs.conf. Either delete or put # before exec-once=swww query | swww init and delete the # before exec-once = swww init (Lines 6 and 7 on Execs.conf ) + + - for the wallpaper styles and configurations, you can watch my video about it *https://youtu.be/6ZGzOjMJBe4* + + - scripts for wallpaper stuff are located in *~/.config/hypr/scripts* file names `DarkLight.sh` `DarkLight-swaybg.sh` `Wallpaper.sh` `WallpaperSelect.sh` `WaybarStyles.sh` (last one for waybar) + + - swww is broken if you use fractional scaling. Use swaybg as your wallpaper provider. + - Sample of swaybg for wallpaper is located in ~/.config/hypr/configs/Execs.conf + +# Monitor, executables, keybindings, window rules, + files are located in *~/.config/hypr/configs* + Keybindings file is located here *~/.config/hypr/configs/Keybinds.conf* + +# screenshot may need to hold down the function (`fn`) key. You can change keybinds in *~/.config/hypr/configs/Keybinds.conf* + Super PrintScr(button) *full screenshot* + Super Shift PrintSrc(button) *active window screenshot* + Super CTRL SHIFT PrintScr *full screenshot + timer (5s)* + Super Alt PrintScr *full screenshot + timer (10s)* + Super Shift S *screenshot with swappy* + +# clipboard manager (cliphist) + Super Alt V *launch the wofi menu of clipboard manager* + - double click to select the clipboard. And paste as normal + - to clean up clipboard manager, launch foot (super enter) then type cliphist wipe + +# applications shortcuts + Super T *file manager* (`thunar`) - if installed + + +# container layout + Super Shift Space *toggle tiling/floating mode* + Super left mouse button *move window* + Super right mouse button *resize window* (note only in float mode) + + +# workspaces + Super 1 .. 0 *switch to workspace 1 .. 10* + Super Shift 1 .. 0 *move container to workspace 1 .. 10* + Super Tab *cycle through workspaces* + +# waybar customizations + - waybar font too big or too small. Edit the font-size in waybar styles located in ~/.config/hypr/waybar/styles/ . By default, it is set to 100%. After adjusting the GTK font scaling to your liking, edit all the waybar styles. Reduce or increase according to your needs. NOTE that its on percent %. You can also change to px whichever suits you. + + - if you want 12h format instead of 24H format, edit the ~/.config/hypr/waybar/modules look for clock. delete the // and add // or delete the previous one + + - CPU Temperature: + - a.) to change from deg C to deg F , edit the ~/.config/hypr/waybar/modules look for "temperature". Change the format to "format": "{temperatureF}°F {icon}", + - b.) to fix the temperature if not showing correctly, comment "thermal zone": 0 by putting // before. Delete the // on the "hwmon path". Refresh waybar by pressing CTRL SHIFT w. If still not showing correctly, navigate to /sys/class/hwmon/ and open each hwmon. Look for k10temp for amd. Not sure about intel cpu. and edit accordingly the hwmon path in the "temperature" waybar module. + - b.1) use this function to easily identify the hwmon path. Ran this in your terminal ``` for i in /sys/class/hwmon/hwmon*/temp*_input; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null || echo $(basename ${i%_*})) $(readlink -f $i)"; done ``` + + - Weather.sh (Default weather app in waybar) edit ~/.config/hypr/scripts/Weather.sh and add your city. Make sure a major city in your Area. Delete rbn folder in ~/.cache and refresh waybar by either pressing super shift w or choose waybar layout super alt w. + +# Hyprland configurations + - *Hyprland* configuration files are in `~/.config/hypr/` + - files located in this folder can be edited using editor of your choice. + +# notes for nvidia gpu users + - Do note that you need to enable or disable some items in ENVariables.conf file located in `~/.config/hypr/configs/ENVariables.conf` + + - a guide on wiki - https://wiki.hyprland.org/Nvidia/ + + +# other notes + - *Multimedia keys* - may not work for every keyboard may need to hold down the function (`fn`) key + - Follow the wiki - https://wiki.hyprland.org/ + - Follow the github - https://github.com/hyprwm/Hyprland + + + +TO CLOSE THIS DOCUMENT - Super q or Super Shift q or if vim, press esc :q! diff --git a/config/hypr/configs/ENVariables.conf b/config/hypr/configs/ENVariables.conf new file mode 100644 index 0000000..a48c916 --- /dev/null +++ b/config/hypr/configs/ENVariables.conf @@ -0,0 +1,32 @@ +## JaKooLit Github - https://github.com/JaKooLit + +#environment-variables +env = QT_QPA_PLATFORMTHEME,qt5ct #necessary to run qt5ct properly +env = GDK_BACKEND,wayland,x11 +env = QT_QPA_PLATFORM,wayland;xcb +env = CLUTTER_BACKEND,wayland +env = XDG_CURRENT_DESKTOP,Hyprland +env = XDG_SESSION_DESKTOP,Hyprland +env = QT_AUTO_SCREEN_SCALE_FACTOR,1 +env = XDG_SESSION_TYPE,wayland +env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 +env = QT_AUTO_SCREEN_SCALE_FACTOR,1 + +# vulkan +env = WLR_RENDERER,vulkan + +# firefox +env = MOZ_ENABLE_WAYLAND,1 + +# NVIDIA +# This is from Hyprland Wiki but my Hyprland keeps crashing when I enabled this variables +#env = WLR_NO_HARDWARE_CURSORS,1 +#env = LIBVA_DRIVER_NAME,nvidia +#env = __GLX_VENDOR_LIBRARY_NAME,nvidia +#env = GBM_BACKEND,nvidia-drm + +#env = __NV_PRIME_RENDER_OFFLOAD,1 +#env = __VK_LAYER_NV_optimus,NVIDIA_only +#env = WLR_DRM_NO_ATOMIC,1 +#env = NVD_BACKEND,direct + diff --git a/config/hypr/configs/Execs.conf b/config/hypr/configs/Execs.conf new file mode 100644 index 0000000..15bd093 --- /dev/null +++ b/config/hypr/configs/Execs.conf @@ -0,0 +1,47 @@ +#Commands to be executed at launch +$scriptsDir = $HOME/.config/hypr/scripts +$themes = $HOME/.config/hypr/themes +$lock = $scriptsDir/LockScreen.sh + +# wallpaper stuff +exec-once = swww query || swww init +#exec-once = swww query || swww init && swww img $HOME/Pictures/wallpapers/mecha-nostalgia.png #using swww utility +#exec-once = swaybg -m fill -i $HOME/Pictures/wallpapers/mecha-nostalgia.png #using swaybg + +# Startup +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP + +# Polkit (Polkit Gnome / KDE) +exec-once = $scriptsDir/Polkit.sh + +# Portal Hyprland +#exec-once = $scriptsDir/PortalHyprland.sh + +# starup apps +exec-once = waybar & +exec-once = dunst & +exec-once = blueman-applet & +exec-once = nm-applet --indicator & +#exec-once = rog-control-center & +#exec-once = easyeffects --gapplication-service -l my_own + +#clipboard manager +exec-once = wl-paste --watch cliphist store + +#Catpuccin Hyprland Themes +source = $themes/mocha.conf + +# Rainbow borders +exec-once = $scriptsDir/RainbowBorders.sh + +# wlsunset - for automatic gamma adjustment. Default is 1900 to 0700 (7pm to 7am). Edit Sunset.sh accordingly +# exec-once = $scriptsDir/Sunset.sh + +# auto close of apps (timeout 5 secs) +# exec-once = $scriptsDir/AppAutoClose.sh + +# sway-idle with lock +exec-once = swayidle -w timeout 1200 '$lock' timeout 1200 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' before-sleep '$lock' +# without lock +#exec-once = swayidle -w timeout 1200 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' diff --git a/config/hypr/configs/Keybinds.conf b/config/hypr/configs/Keybinds.conf new file mode 100644 index 0000000..86a996b --- /dev/null +++ b/config/hypr/configs/Keybinds.conf @@ -0,0 +1,214 @@ +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +# Setting variables +$mainMod = SUPER +$files = thunar +$browser = firefox +$term = foot +$hyprDir = $HOME/.config/hypr +$scriptsDir = $HOME/.config/hypr/scripts + +# Scripts Variables +$AirplaneMode = $scriptsDir/AirplaneMode.sh +$backlight = $scriptsDir/Brightness.sh +$ChangeBlur = $scriptsDir/ChangeBlur.sh +$ChangeLayout = $scriptsDir/ChangeLayout.sh +$ChangeLayoutMenu = $scriptsDir/ChangeLayoutMenu.sh +$Clipboard = $scriptsDir/ClipManager.sh +$DarkLight = $scriptsDir/DarkLight.sh +$GameMode = $scriptsDir/GameMode.sh +$Help = $scriptsDir/Help.sh +$kbacklight = $scriptsDir/BrightnessKbd.sh +$LidSwitch = $scriptsDir/LidSwitch.sh +$LockScreen = $scriptsDir/LockScreen.sh +$Media = $scriptsDir/MediaCtrl.sh +$QuickEdit = $scriptsDir/QuickEdit.sh +$screenshot = $scriptsDir/ScreenShot.sh +$touchpad = $scriptsDir/TouchPad.sh +$volume = $scriptsDir/Volume.sh +$wallpaper = $scriptsDir/Wallpaper.sh +$wallpaperSelect = $scriptsDir/WallpaperSelect.sh +$waybar = $scriptsDir/Waybar.sh +$waybarStyle = $scriptsDir/WaybarStyles.sh +$Wofi = $scriptsDir/Wofi.sh +$WofiBeats = $scriptsDir/WofiBeats.sh +$WofiBig = $scriptsDir/WofiBig.sh +$WofiEmoji = $scriptsDir/WofiEmoji.sh +$WofiPower = $scriptsDir/WofiPower.sh + +# see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = CTRL ALT, Delete, exit +bind = $mainMod SHIFT, C, exec, hyprctl reload +bind = $mainMod SHIFT, D, exec, $WofiBig +bind = $mainMod, D, exec, $Wofi +bind = $mainMod SHIFT, Q, killactive, +bind = $mainMod SHIFT, Space, togglefloating, +bind = $mainMod, F, fullscreen +bind = $mainMod, Q, killactive, +bind = $mainMod, Return, exec, $term +bind = $mainMod, T, exec, $files +bind = CTRL ALT, L, exec, $LockScreen +bind = CTRL ALT, P, exec, $WofiPower +bind = $mainMod CTRL, S, exec, $WofiBeats +bind = $mainMod ALT, E, exec, $WofiEmoji +bind = $mainMod, W, exec, $wallpaper swaybg +bind = $mainMod SHIFT, W, exec, $waybarStyle +bind = $mainMod CTRL, W, exec, $wallpaperSelect +bind = $mainMod ALT, W, exec, $ChangeLayoutMenu +bind = $mainMod, H, exec, $Help +bind = $mainMod, E, exec, $QuickEdit +bind = $mainMod, B, exec, killall -SIGUSR1 waybar # Toggle hide/show waybar +bind = $mainMod SHIFT, G, exec, $GameMode + +#bind = $mainMod SHIFT, M, exec, hyprctl dispatch splitratio -0.3 +#bind = $mainMod SHIFT, Y, exec, $term --class clock -T clock -e tty-clock -c -C 7 -r -s -f "%A, %B, %d" + +bind = $mainMod CTRL, D, layoutmsg, removemaster +bind = $mainMod, Escape, exec, hyprctl kill +bind = $mainMod, I, layoutmsg, addmaster +bind = $mainMod, J, layoutmsg, cyclenext +bind = $mainMod, K, layoutmsg, cycleprev +bind = $mainMod, M, exec, hyprctl dispatch splitratio 0.3 +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod CTRL, Return, layoutmsg, swapwithmaster +bind = $mainMod, Space, exec, $ChangeLayout +bind = $mainMod ALT, V, exec, $Clipboard + +# group +bind = $mainMod, G, togglegroup +bind = $mainMod, tab, workspace, m+1 +bind = $mainMod SHIFT, tab, workspace, m-1 +bind = ALT, tab, cyclenext, # change focus to another window +bind = ALT SHIFT, tab, bringactivetotop, # bring it to the top + +# Special Keys / Hot Keys +bind = , xf86audioraisevolume, exec, $volume --inc #volume up +bind = , xf86audiolowervolume, exec, $volume --dec #volume down +bind = , xf86AudioMicMute, exec, $volume --toggle-mic #mute mic +bind = , xf86Launch1, exec, rog-control-center # ASUS Armory crate button +bind = , xf86audiomute, exec, $volume --toggle #FN+F1 +bind = , xf86KbdBrightnessDown, exec, $kbacklight --dec #FN+F2 Keyboard brightness down +bind = , xf86KbdBrightnessUp, exec, $kbacklight --inc #FN+F3 Keyboard brightnes up +bind = , xf86Launch3, exec, asusctl led-mode -n #FN+F4 Switch keyboard RGB profile +bind = , xf86Launch4, exec, asusctl profile -n #FN+F5 change of fan profiles (Quite, Balance Performance) +bind = , xf86MonBrightnessDown, exec, $backlight --dec #FN+F7 +bind = , xf86MonBrightnessUp, exec, $backlight --inc #FN+F8 +bind = , xf86TouchpadToggle, exec, $touchpad #FN+10 disable touchpad +bind = , xf86Sleep, exec, $LockScreen #FN+F11 (sleep button) +bind = , xf86Rfkill, exec, $AirplaneMode #Airplane mode FN+F12 + +# media controls using keyboards +bind = , xf86AudioPlayPause, exec, $Media --pause +bind = , xf86AudioPause, exec, $Media --pause +bind = , xf86AudioPlay, exec, $Media --pause +bind = , xf86AudioNext, exec, $Media --nxt +bind = , xf86AudioPrev, exec, $Media --prv +bind = , xf86audiostop, exec, $Media --stop + +# triggered when external monitor is connected and closing lid (For Laptop) +bindl=,switch:Lid Switch, exec, $LidSwitch + +# From manual but it does not work +#bindl = , switch:off:Lid Switch,exec,hyprctl keyword monitor "eDP-1, 2560x1440@165, 0x0, 1" +#bindl = , switch:on:Lid Switch,exec,hyprctl keyword monitor "eDP-1, disable" + +# Resize (vim style) +binde = $mainMod SHIFT, H, resizeactive,-50 0 +binde = $mainMod SHIFT, L, resizeactive,50 0 +binde = $mainMod SHIFT, K, resizeactive,0 -50 +binde = $mainMod SHIFT, J, resizeactive,0 50 + +binde = $mainMod SHIFT, left, resizeactive,-50 0 +binde = $mainMod SHIFT, right, resizeactive,50 0 +binde = $mainMod SHIFT, up, resizeactive,0 -50 +binde = $mainMod SHIFT, down, resizeactive,0 50 + +# Move (vim style) +bind = $mainMod CTRL, H, movewindow, l +bind = $mainMod CTRL, L, movewindow, r +bind = $mainMod CTRL, K, movewindow, u +bind = $mainMod CTRL, J, movewindow, d + +bind = $mainMod CTRL, left, movewindow, l +bind = $mainMod CTRL, right, movewindow, r +bind = $mainMod CTRL, up, movewindow, u +bind = $mainMod CTRL, down, movewindow, d + + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +# Special workspace +bind = $mainMod SHIFT, U, movetoworkspace, special +bind = $mainMod, U, togglespecialworkspace, + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window and follow to workspace +bind = $mainMod CTRL, 1, movetoworkspace, 1 +bind = $mainMod CTRL, 2, movetoworkspace, 2 +bind = $mainMod CTRL, 3, movetoworkspace, 3 +bind = $mainMod CTRL, 4, movetoworkspace, 4 +bind = $mainMod CTRL, 5, movetoworkspace, 5 +bind = $mainMod CTRL, 6, movetoworkspace, 6 +bind = $mainMod CTRL, 7, movetoworkspace, 7 +bind = $mainMod CTRL, 8, movetoworkspace, 8 +bind = $mainMod CTRL, 9, movetoworkspace, 9 +bind = $mainMod CTRL, 0, movetoworkspace, 10 +bind = $mainMod CTRL, bracketleft, movetoworkspace, -1 +bind = $mainMod CTRL, bracketright, movetoworkspace, +1 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1 +bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2 +bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3 +bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4 +bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5 +bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6 +bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7 +bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8 +bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9 +bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10 +bind = $mainMod SHIFT, bracketleft, movetoworkspacesilent, -1 +bind = $mainMod SHIFT, bracketright, movetoworkspacesilent, +1 + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 +bind = $mainMod, period, workspace, e+1 +bind = $mainMod, comma, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Screenshot keybindings NOTE: +#bind = , Print, exec, $screenshot --now +bind = $mainMod, Print, exec, $screenshot --now +bind = $mainMod CTRL SHIFT, Print, exec, $screenshot --in5 +bind = $mainMod ALT, Print, exec, $screenshot --in10 +#bind = CTRL, Print, exec, $screenshot --win +#bind = SHIFT, Print, exec, $screenshot --area +bind = $mainMod SHIFT, Print, exec, $screenshot --area + +# screenshot with swappy +bind = $mainMod SHIFT, S, exec, grim -g "$(slurp)" - | swappy -f - + +# Screenshot keybindings for Asus G15 (no PrinSrc button) +bind = $mainMod, F6, exec, $screenshot --now +bind = $mainMod SHIFT, F6, exec, $screenshot --area +bind = $mainMod CTRL SHIFT, F6, exec, $screenshot --in5 +bind = $mainMod ALT, F6, exec, $screenshot --in10 + diff --git a/config/hypr/configs/Monitors.conf b/config/hypr/configs/Monitors.conf new file mode 100644 index 0000000..0856594 --- /dev/null +++ b/config/hypr/configs/Monitors.conf @@ -0,0 +1,26 @@ +# Monitor Configuration +# Configure your Display resolution, offset, scale and Monitors here, use `hyprctl monitors` to get the info. + +# Monitors +monitor=,preferred,auto,1 + +# my G15 Laptop +# monitor = eDP-1, preferred, auto, 1 +#monitor = eDP-1, 2560x1440@165, 0x0, 1 #own screen +#monitor = DP-2, preferred, auto, 1 #my Samsung Odyssey-G7 +#monitor = DP-1, preferred, auto, 1 +#monitor = HDMI-A-1, preferred,auto,1 + +# QEMU +#monitor = Virtual-1, 1920x1080@60,auto,1 + +# Example : +#monitor=eDP-1,2560x1440@165,0x0,1 +#workspace=HDMI-A-1,1 +#monitor=HDMI-A-1,2560x1440@144,0x0,1,mirror,eDP-1 +#workspace=HDMI-A-2,2 + +#monitor=eDP-1,transform,0 +#monitor=eDP-1,addreserved,10,10,10,49 +#workspace=eDP-1,1 + diff --git a/config/hypr/configs/Settings.conf b/config/hypr/configs/Settings.conf new file mode 100644 index 0000000..10766e3 --- /dev/null +++ b/config/hypr/configs/Settings.conf @@ -0,0 +1,144 @@ +## refer to Hyprland wiki for more info https://wiki.hyprland.org/Configuring/Variables +## JaKooLit Github - https://github.com/JaKooLit + +# blurls = waybar +blurls = wofi + +dwindle { + pseudotile = yes + preserve_split = yes + special_scale_factor = 0.8 +} + +master { + new_is_master=1 + new_on_top=0 + mfact = 0.5 +} + +general { + sensitivity=1.00 + apply_sens_to_raw=1 + gaps_in = 4 + gaps_out = 8 + border_size = 1 + resize_on_border = true + + #one color + #col.active_border = rgba(7aa2f7aa) + + #more colors - gradient + #col.active_border = rgb(8839ef) rgb(cba6f7) rgb(ca9ee6) rgb(c6a0f6) 45deg + col.active_border = rgb(7287fd) rgb(74c7ec) rgb(89b4fa) 45deg + col.inactive_border = rgb(6c7086) + + layout = master +} + +#group { +# col.border_active = rgba(7aa2f7aa) + +# groupbar { +# col.active = rgba(7aa2f7aa) +# } +#} + +decoration { + rounding = 8 + + active_opacity = 1.0 + inactive_opacity = 0.8 + fullscreen_opacity = 1.0 + + dim_inactive = true + dim_strength = 0.1 + + drop_shadow=true + shadow_range=4 + shadow_render_power = 1 + col.shadow = rgb(cba7f7) + col.shadow_inactive = 0x50000000 + + blur { + enabled = true + size = 5 + passes = 1 + ignore_opacity = true + new_optimizations = true + } +} + +animations { + enabled = yes + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + bezier = linear, 0.0, 0.0, 1.0, 1.0 + bezier = wind, 0.05, 0.9, 0.1, 1.05 + bezier = winIn, 0.1, 1.1, 0.1, 1.1 + bezier = winOut, 0.3, -0.3, 0, 1 + bezier = slow, 0, 0.85, 0.3, 1 + bezier = overshot, 0.7, 0.6, 0.1, 1.1 + bezier = bounce, 1.1, 1.6, 0.1, 0.85 + bezier = sligshot, 1, -1, 0.15, 1.25 + bezier = nice, 0, 6.9, 0.5, -4.20 + + animation = windowsIn, 1, 5, slow, popin + animation = windowsOut, 1, 5, winOut, popin + animation = windowsMove, 1, 5, wind, slide + animation = border, 1, 10, linear + animation = borderangle, 1, 100, linear, loop + animation = fade, 1, 5, overshot + animation = workspaces, 1, 5, wind + animation = windows, 1, 5, bounce, popin +} + +input { + kb_layout=us + kb_variant= + kb_model= + kb_options=grp:alt_shift_toggle + kb_rules= + repeat_rate=50 + repeat_delay=300 + numlock_by_default=0 + left_handed=0 + follow_mouse=1 + float_switch_override_focus=0 + + touchpad { + disable_while_typing=1 + natural_scroll=0 + clickfinger_behavior=0 + middle_button_emulation=1 + tap-to-click=1 + drag_lock=0 + } +} + +gestures { + workspace_swipe=1 + workspace_swipe_fingers=3 + workspace_swipe_distance=400 + workspace_swipe_invert=1 + workspace_swipe_min_speed_to_force=30 + workspace_swipe_cancel_ratio=0.5 + workspace_swipe_create_new=1 + workspace_swipe_forever=1 +} + +misc { + disable_hyprland_logo = true + disable_splash_rendering = true + mouse_move_enables_dpms = true + vrr = 2 + enable_swallow = true + no_direct_scanout = true #for fullscreen games + focus_on_activate = false + swallow_regex = ^(foot)$ +} + +binds { + workspace_back_and_forth=1 + allow_workspace_cycles=1 + pass_mouse_when_bound=0 +} diff --git a/config/hypr/configs/WindowRules.conf b/config/hypr/configs/WindowRules.conf new file mode 100644 index 0000000..92ae7d1 --- /dev/null +++ b/config/hypr/configs/WindowRules.conf @@ -0,0 +1,46 @@ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +## JaKooLit Github - https://github.com/JaKooLit + +windowrule = float, org.kde.polkit-kde-authentication-agent-1 +windowrule = float, nm-connection-editor|blueman-manager +windowrule = float, viewnior|pavucontrol +windowrule = float, nwg-look|qt5ct|mpv +windowrule = float, onedriver|onedriver-launcher +windowrule = float, swayimg|zoom +windowrule = float, wofi +windowrule = float, gnome-system-monitor + +#windowrule = noblur,gamescope +#windowrule = fullscreen,gamescope +#windowrule = workspace 6 silent,^(gamescope)$ + +# windowrule = move 1380 495,^(pavucontrol) # Make sure to change these valuers +windowrule = center,^(pavucontrol) # Make sure to delete this line if uncommen the line above +#windowrule = size 533 533,^(pavucontrol) # These are optionals. But recommended + +# windowrule v2 +windowrulev2 = workspace 2, class:^(firefox)$ +windowrulev2 = workspace 2, class:^(Firefox-esr)$ +windowrulev2 = workspace 2, class:^(Microsoft-edge-beta)$ #this is on arch +windowrulev2 = workspace 3, class:^(thunar)$ +windowrulev2 = workspace 3, class:^(Thunar)$ +windowrulev2 = workspace 1, class:^(thunderbird)$ +windowrulev2 = workspace 4, class:^(com.obsproject.Studio)$ +windowrulev2 = workspace 5 silent, class:^(Steam)$,title:^(Steam)$ +windowrulev2 = workspace 5 silent, class:^(lutris)$ +windowrulev2 = workspace 6, class:^(virt-manager)$ +windowrulev2 = workspace 7 silent, class:^(discord)$ +windowrulev2 = workspace 9 silent, class:^(audacious)$ + +#opacity (transparent) #enable as desired +windowrulev2 = opacity 0.9 0.7, class:^(firefox)$ +windowrulev2 = opacity 0.9 0.7, class:^(thunar)$ +#windowrulev2 = opacity 0.8 0.7, class:^(foot)$ +#windowrulev2 = opacity 0.9 0.7, class:^(mousepad)$ +windowrulev2 = opacity 0.9 0.7, class:^(codium-url-handler)$ +windowrulev2 = opacity 0.9 0.7, class:^(VSCodium)$ + +#windowrulev2 = bordercolor rgb(EE4B55) rgb(880808), fullscreen:1 +#windowrulev2 = bordercolor rgb(282737) rgb(1E1D2D), floating:1 +#windowrulev2 = opacity 0.8 0.8, pinned:1 + diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf new file mode 100644 index 0000000..cff39f4 --- /dev/null +++ b/config/hypr/hyprland.conf @@ -0,0 +1,15 @@ +# Sourcing external config files +$configs = $HOME/.config/hypr/configs + +source=$configs/ENVariables.conf +source=$configs/Execs.conf +source=$configs/Keybinds.conf +source=$configs/Monitors.conf +source=$configs/WindowRules.conf +source=$configs/Settings.conf + + + + + + diff --git a/config/hypr/scripts/AirplaneMode.sh b/config/hypr/scripts/AirplaneMode.sh new file mode 100755 index 0000000..823dce7 --- /dev/null +++ b/config/hypr/scripts/AirplaneMode.sh @@ -0,0 +1,9 @@ +#!/bin/bash +wifi="$(nmcli r wifi | awk 'FNR = 2 {print $1}')" +if [ "$wifi" == "enabled" ]; then + rfkill block all & + notify-send -t 1000 'airplane mode: active' +else + rfkill unblock all & + notify-send -t 1000 'airplane mode: inactive' +fi diff --git a/config/hypr/scripts/AppAutoClose.sh b/config/hypr/scripts/AppAutoClose.sh new file mode 100755 index 0000000..32a6d73 --- /dev/null +++ b/config/hypr/scripts/AppAutoClose.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# Variables: put the process names you want to auto close here. Make sure to add "" and inside the () +processes=("pavucontrol") + +# Loop through each process name +while true; do + active_window=$(hyprctl activewindow | grep class | awk '{print $2}') + + # Loop through each process name in the array + for process in "${processes[@]}"; do + if [ "$active_window" == "$process" ]; then + # If the active window matches the process, mark it as active + process_active=true + else + # If not, mark it as inactive and try to kill the process + process_active=false + pkill "$process" + fi + done + + sleep 5 +done diff --git a/config/hypr/scripts/Brightness.sh b/config/hypr/scripts/Brightness.sh new file mode 100755 index 0000000..040d1c7 --- /dev/null +++ b/config/hypr/scripts/Brightness.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +iDIR="$HOME/.config/dunst/icons" +notification_timeout=1000 + +# Get brightness +get_backlight() { + echo $(brightnessctl -m | cut -d, -f4) +} + +# Get icons +get_icon() { + current=$(get_backlight | sed 's/%//') + if [ "$current" -le "20" ]; then + icon="$iDIR/brightness-20.png" + elif [ "$current" -le "40" ]; then + icon="$iDIR/brightness-40.png" + elif [ "$current" -le "60" ]; then + icon="$iDIR/brightness-60.png" + elif [ "$current" -le "80" ]; then + icon="$iDIR/brightness-80.png" + else + icon="$iDIR/brightness-100.png" + fi +} + +# Notify +notify_user() { + notify-send -h string:x-dunst-stack-tag:brightness_notif -h int:value:$current -u low -i "$icon" "Brightness : $current%" +} + +# Change brightness +change_backlight() { + brightnessctl set "$1" && get_icon && notify_user +} + +# Execute accordingly +case "$1" in + "--get") + get_backlight + ;; + "--inc") + change_backlight "+10%" + ;; + "--dec") + change_backlight "10%-" + ;; + *) + get_backlight + ;; +esac \ No newline at end of file diff --git a/config/hypr/scripts/BrightnessKbd.sh b/config/hypr/scripts/BrightnessKbd.sh new file mode 100755 index 0000000..f48dc1c --- /dev/null +++ b/config/hypr/scripts/BrightnessKbd.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env bash + +iDIR="$HOME/.config/dunst/icons" + +# Get keyboard brightness +get_kbd_backlight() { + echo $(brightnessctl -d '*::kbd_backlight' -m | cut -d, -f4) +} + +# Get icons +get_icon() { + current=$(get_kbd_backlight | sed 's/%//') + if [ "$current" -le "20" ]; then + icon="$iDIR/brightness-20.png" + elif [ "$current" -le "40" ]; then + icon="$iDIR/brightness-40.png" + elif [ "$current" -le "60" ]; then + icon="$iDIR/brightness-60.png" + elif [ "$current" -le "80" ]; then + icon="$iDIR/brightness-80.png" + else + icon="$iDIR/brightness-100.png" + fi +} +# Notify +notify_user() { + notify-send -h string:x-dunst-stack-tag:brightness_notif -h int:value:$current -u low -i "$icon" "Keyboard Brightness : $current%" +} + +# Change brightness +change_kbd_backlight() { + brightnessctl -d *::kbd_backlight set "$1" && get_icon && notify_user +} + +# Execute accordingly +case "$1" in + "--get") + get_kbd_backlight + ;; + "--inc") + change_kbd_backlight "+30%" + ;; + "--dec") + change_kbd_backlight "30%-" + ;; + *) + get_kbd_backlight + ;; +esac diff --git a/config/hypr/scripts/ChangeBlur.sh b/config/hypr/scripts/ChangeBlur.sh new file mode 100755 index 0000000..247265f --- /dev/null +++ b/config/hypr/scripts/ChangeBlur.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +STATE=$(hyprctl -j getoption decoration:blur:passes | jq ".int") + +if [ "${STATE}" == "2" ]; then + hyprctl keyword decoration:blur:size 3 + hyprctl keyword decoration:blur:passes 1 + notify-send "Less blur" +else + hyprctl keyword decoration:blur:size 7.8 + hyprctl keyword decoration:blur:passes 2 + notify-send "Normal blur" +fi diff --git a/config/hypr/scripts/ChangeLayout.sh b/config/hypr/scripts/ChangeLayout.sh new file mode 100755 index 0000000..6cb342f --- /dev/null +++ b/config/hypr/scripts/ChangeLayout.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +LAYOUT=$(hyprctl -j getoption general:layout | jq '.str' | sed 's/"//g') + +case $LAYOUT in +"master") + hyprctl keyword general:layout dwindle + hyprctl keyword unbind SUPER,J + hyprctl keyword unbind SUPER,K + hyprctl keyword bind SUPER,J,cyclenext + hyprctl keyword bind SUPER,K,cyclenext,prev + hyprctl keyword bind SUPER,O,togglesplit + notify-send "Dwindle Layout" + ;; +"dwindle") + hyprctl keyword general:layout master + hyprctl keyword unbind SUPER,J + hyprctl keyword unbind SUPER,K + hyprctl keyword unbind SUPER,O + hyprctl keyword bind SUPER,J,layoutmsg,cyclenext + hyprctl keyword bind SUPER,K,layoutmsg,cycleprev + notify-send "Master Layout" + ;; +*) ;; + +esac diff --git a/config/hypr/scripts/ChangeLayoutMenu.sh b/config/hypr/scripts/ChangeLayoutMenu.sh new file mode 100755 index 0000000..a1ca30c --- /dev/null +++ b/config/hypr/scripts/ChangeLayoutMenu.sh @@ -0,0 +1,116 @@ +#!/bin/bash + +# Files +#waybar +CONFIG="$HOME/.config/waybar/configs" +WCONFIG="$HOME/.config/waybar/config" + +#wofi configs +CONFIGB="$HOME/.config/wofi/WofiBig/config" +STYLE="$HOME/.config/wofi/style.css" +COLORS="$HOME/.config/wofi/colors" +WOFICONFIGS="$HOME/.config/wofi/configs" +WOFICONFIG="$HOME/.config/wofi/config" + +# wofi window config (in %) +WIDTH=12 +HEIGHT=40 + +## Wofi Command +wofi_command="wofi --show dmenu \ + --prompt choose... + --conf $CONFIGB --style $STYLE --color $COLORS \ + --width=$WIDTH% --height=$HEIGHT% \ + --cache-file=/dev/null \ + --hide-scroll --no-actions \ + --matching=fuzzy" + + +menu(){ +printf "1. default\n" +printf "2. plasma-style\n" +printf "3. gnome-style\n" +printf "4. simple panel\n" +printf "5. top & bot panel\n" +printf "6. left panel\n" +printf "7. right panel\n" +printf "8. top & left panel\n" +printf "9. top & right panel\n" +printf "10. bottom & left panel\n" +printf "11. bottom & right panel\n" +printf "12. all sides\n" +printf "13. no panel" +} + +main() { + choice=$(menu | ${wofi_command} | cut -d. -f1) + case $choice in + 1) + ln -sf "$CONFIG/config-default" "$WCONFIG" + ln -sf "$WOFICONFIGS/config-default" "$WOFICONFIG" + ;; + 2) + ln -sf "$CONFIG/config-plasma" "$WCONFIG" + ln -sf "$WOFICONFIGS/config-plasma" "$WOFICONFIG" + ;; + 3) + ln -sf "$CONFIG/config-gnome" "$WCONFIG" + ln -sf "$WOFICONFIGS/config-gnome" "$WOFICONFIG" + ;; + 4) + ln -sf "$CONFIG/config-simple" "$WCONFIG" + ln -sf "$WOFICONFIGS/config-default" "$WOFICONFIG" + ;; + 5) + ln -sf "$CONFIG/config-dual" "$WCONFIG" + ln -sf "$WOFICONFIGS/config-default" "$WOFICONFIG" + ;; + 6) + ln -sf "$CONFIG/config-left" "$WCONFIG" + ln -sf "$WOFICONFIGS/config-default" "$WOFICONFIG" + ;; + 7) + ln -sf "$CONFIG/config-right" "$WCONFIG" + ln -sf "$WOFICONFIGS/config-default" "$WOFICONFIG" + ;; + 8) + ln -sf "$CONFIG/config-dual-TL" "$WCONFIG" + ln -sf "$WOFICONFIGS/config-default" "$WOFICONFIG" + ;; + 9) + ln -sf "$CONFIG/config-dual-TR" "$WCONFIG" + ln -sf "$WOFICONFIGS/config-default" "$WOFICONFIG" + ;; + 10) + ln -sf "$CONFIG/config-dual-BL" "$WCONFIG" + ln -sf "$WOFICONFIGS/config-default" "$WOFICONFIG" + ;; + 11) + ln -sf "$CONFIG/config-dual-BR" "$WCONFIG" + ln -sf "$WOFICONFIGS/config-default" "$WOFICONFIG" + ;; + 12) + ln -sf "$CONFIG/config-all" "$WCONFIG" + ln -sf "$WOFICONFIGS/config-default" "$WOFICONFIG" + ;; + 13) + if pgrep -x "waybar" >/dev/null; then + killall waybar + exit + fi + ;; + *) + ;; + esac +} + +# Check if wofi is already running +if pidof wofi >/dev/null; then + killall wofi + exit 0 +else + main +fi + +exec ~/.config/hypr/scripts/Refresh.sh & + \ No newline at end of file diff --git a/config/hypr/scripts/ClipManager.sh b/config/hypr/scripts/ClipManager.sh new file mode 100755 index 0000000..135f75d --- /dev/null +++ b/config/hypr/scripts/ClipManager.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +# WOFI STYLES +CONFIG="$HOME/.config/wofi/WofiBig/config" +STYLE="$HOME/.config/wofi/style.css" +COLORS="$HOME/.config/wofi/colors" + +if [[ ! $(pidof wofi) ]]; then + cliphist list | wofi --show dmenu --prompt 'Search...' \ + --conf ${CONFIG} --style ${STYLE} --color ${COLORS} \ + --width=600 --height=400 | cliphist decode | wl-copy +else + pkill wofi +fi \ No newline at end of file diff --git a/config/hypr/scripts/DarkLight-swaybg.sh b/config/hypr/scripts/DarkLight-swaybg.sh new file mode 100755 index 0000000..ad8aa19 --- /dev/null +++ b/config/hypr/scripts/DarkLight-swaybg.sh @@ -0,0 +1,57 @@ +#!/bin/bash +set -x +# Define the path +wallpaper_path="$HOME/Pictures/wallpapers/Dynamic-Wallpapers" +hypr_config_path="$HOME/.config/hypr" +waybar_config="$HOME/.config/waybar" +dunst_config="$HOME/.config/dunst" +wofi_config="$HOME/.config/wofi" + +# Tokyo Night +light_gtk_theme="Tokyonight-Light-B" +dark_gtk_theme="Tokyonight-Dark-B" +light_icon_theme="TokyoNight-SE" +dark_icon_theme="TokyoNight-SE" + +# Define functions for notifying user and updating symlinks +notify_user() { + notify-send -h string:x-canonical-private-synchronous:sys-notify -u normal "Switching to $1 mode" +} + +# Determine the current wallpaper mode by checking a configuration file +if [ "$(cat ~/.wallpaper_mode)" = "light" ]; then + current_mode="light" + next_mode="dark" +else + current_mode="dark" + next_mode="light" +fi +path_param=$(echo $next_mode | sed 's/.*/\u&/') + +notify_user "$next_mode" +ln -sf "${waybar_config}/style/style-${next_mode}.css" "${waybar_config}/style.css" +ln -sf "${dunst_config}/styles/dunstrc-${next_mode}" "${dunst_config}/styles/dunstrc" +ln -sf "${wofi_config}/styles/style-${next_mode}.css" "${wofi_config}/style.css" + +gtk_theme="${next_mode}_gtk_theme" +icon_theme="${next_mode}_icon_theme" + +gsettings set org.gnome.desktop.interface gtk-theme "${!gtk_theme}" +gsettings set org.gnome.desktop.interface icon-theme "${!icon_theme}" + +# Find the next wallpaper if one exists +current_wallpaper="$(cat ~/.current_wallpaper)" +next_wallpaper="${current_wallpaper/_"$current_mode"/_"$next_mode"}" + +if ! [ -f "$next_wallpaper" ]; then + next_wallpaper="$(find "${wallpaper_path/"${path_param}"}" -type f -iname "*_"${next_mode}".jpg" -print0 | shuf -n1 -z | xargs -0)" +fi + +swaybg -m fill -i "${next_wallpaper}" & + +# Update the configuration file to reflect the new wallpaper mode and current wallpaper +echo "$next_mode" > ~/.wallpaper_mode +echo "$next_wallpaper" > ~/.current_wallpaper + +sleep 2 +exec ~/.config/hypr/scripts/Refresh.sh & \ No newline at end of file diff --git a/config/hypr/scripts/DarkLight.sh b/config/hypr/scripts/DarkLight.sh new file mode 100755 index 0000000..c7db928 --- /dev/null +++ b/config/hypr/scripts/DarkLight.sh @@ -0,0 +1,66 @@ +#!/bin/bash +set -x +# Define the path +wallpaper_path="$HOME/Pictures/wallpapers/Dynamic-Wallpapers" +hypr_config_path="$HOME/.config/hypr" +waybar_config="$HOME/.config/waybar" +dunst_config="$HOME/.config/dunst" +wofi_config="$HOME/.config/wofi" + +# Tokyo Night +light_gtk_theme="Tokyonight-Light-B" +dark_gtk_theme="Tokyonight-Dark-B" +light_icon_theme="TokyoNight-SE" +dark_icon_theme="TokyoNight-SE" + +pkill swaybg + +# Initialize swww if needed +swww query || swww init + +# Set swww options +swww="swww img" +effect="--transition-bezier .43,1.19,1,.4 --transition-fps 60 --transition-type grow --transition-pos 0.925,0.977 --transition-duration 2" + +# Define functions for notifying user and updating symlinks +notify_user() { + notify-send -h string:x-canonical-private-synchronous:sys-notify -u normal "Switching to $1 mode" +} + +# Determine the current wallpaper mode by checking a configuration file +if [ "$(cat ~/.wallpaper_mode)" = "light" ]; then + current_mode="light" + next_mode="dark" +else + current_mode="dark" + next_mode="light" +fi +path_param=$(echo $next_mode | sed 's/.*/\u&/') + +notify_user "$next_mode" +ln -sf "${waybar_config}/style/style-${next_mode}.css" "${waybar_config}/style.css" +ln -sf "${dunst_config}/styles/dunstrc-${next_mode}" "${dunst_config}/styles/dunstrc" +ln -sf "${wofi_config}/styles/style-${next_mode}.css" "${wofi_config}/style.css" + +gtk_theme="${next_mode}_gtk_theme" +icon_theme="${next_mode}_icon_theme" + +gsettings set org.gnome.desktop.interface gtk-theme "${!gtk_theme}" +gsettings set org.gnome.desktop.interface icon-theme "${!icon_theme}" + +# Find the next wallpaper if one exists +current_wallpaper="$(cat ~/.current_wallpaper)" +next_wallpaper="${current_wallpaper/_"$current_mode"/_"$next_mode"}" + +if ! [ -f "$next_wallpaper" ]; then + next_wallpaper="$(find "${wallpaper_path/"${path_param}"}" -type f -iname "*_"${next_mode}".jpg" -print0 | shuf -n1 -z | xargs -0)" +fi + +$swww "${next_wallpaper}" $effect + +# Update the configuration file to reflect the new wallpaper mode and current wallpaper +echo "$next_mode" > ~/.wallpaper_mode +echo "$next_wallpaper" > ~/.current_wallpaper + +sleep 2 +exec ~/.config/hypr/scripts/Refresh.sh & \ No newline at end of file diff --git a/config/hypr/scripts/Dunst.sh b/config/hypr/scripts/Dunst.sh new file mode 100755 index 0000000..a440e3a --- /dev/null +++ b/config/hypr/scripts/Dunst.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +CONFIG="$HOME/.config/dunst/dunstrc" + +if [[ ! $(pidof dunst) ]]; then + dunst -conf ${CONFIG} +fi diff --git a/config/hypr/scripts/GameMode.sh b/config/hypr/scripts/GameMode.sh new file mode 100755 index 0000000..2d22287 --- /dev/null +++ b/config/hypr/scripts/GameMode.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env sh +HYPRGAMEMODE=$(hyprctl getoption animations:enabled | awk 'NR==2{print $2}') +if [ "$HYPRGAMEMODE" = 1 ] ; then + hyprctl --batch "\ + keyword animations:enabled 0;\ + keyword decoration:drop_shadow 0;\ + keyword decoration:blur 0;\ + keyword general:gaps_in 0;\ + keyword general:gaps_out 0;\ + keyword general:border_size 1;\ + keyword decoration:rounding 0" + swww kill + notify-send "animations off" + exit +fi +hyprctl reload diff --git a/config/hypr/scripts/Help.sh b/config/hypr/scripts/Help.sh new file mode 100755 index 0000000..d8de755 --- /dev/null +++ b/config/hypr/scripts/Help.sh @@ -0,0 +1,2 @@ +#!/bin/sh +foot -e vim ~/.config/hypr/HelpFile.md diff --git a/config/hypr/scripts/LidSwitch.sh b/config/hypr/scripts/LidSwitch.sh new file mode 100755 index 0000000..76bce1f --- /dev/null +++ b/config/hypr/scripts/LidSwitch.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +if grep open /proc/acpi/button/lid/LID/state; then + hyprctl keyword monitor "eDP-1, preferred, auto, 1" +else + if [[ `hyprctl monitors | grep "Monitor" | wc -l` != 1 ]]; then + hyprctl keyword monitor "eDP-1, disable" + fi +fi \ No newline at end of file diff --git a/config/hypr/scripts/LockScreen.sh b/config/hypr/scripts/LockScreen.sh new file mode 100755 index 0000000..538b6ef --- /dev/null +++ b/config/hypr/scripts/LockScreen.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +CONFIG="$HOME/.config/swaylock/config" + +sleep 0.5s; swaylock --config ${CONFIG} & disown diff --git a/config/hypr/scripts/MediaCtrl.sh b/config/hypr/scripts/MediaCtrl.sh new file mode 100755 index 0000000..f961152 --- /dev/null +++ b/config/hypr/scripts/MediaCtrl.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +music_icon="$HOME/.config/dunst/icons/music.png" + +# Play the next track +play_next() { + playerctl next + show_music_notification +} + +# Play the previous track +play_previous() { + playerctl previous + show_music_notification +} + +# Toggle play/pause +toggle_play_pause() { + playerctl play-pause + show_music_notification +} + +# Stop playback +stop_playback() { + playerctl stop + dunstify -r 123 -i "$music_icon" "Playback Stopped" +} + +# Display Dunst notification with song information +show_music_notification() { + status=$(playerctl status) + if [[ "$status" == "Playing" ]]; then + song_title=$(playerctl metadata title) + song_artist=$(playerctl metadata artist) + dunstify -r 123 -i "$music_icon" "Now Playing:" "$song_title\nby $song_artist" + elif [[ "$status" == "Paused" ]]; then + dunstify -r 123 -i "$music_icon" "Playback Paused" + fi +} + +# Get media control action from command line argument +case "$1" in + "--nxt") + play_next + ;; + "--prv") + play_previous + ;; + "--pause") + toggle_play_pause + ;; + "--stop") + stop_playback + ;; + *) + echo "Usage: $0 [--nxt|--prv|--pause|--stop]" + exit 1 + ;; +esac diff --git a/config/hypr/scripts/Polkit.sh b/config/hypr/scripts/Polkit.sh new file mode 100755 index 0000000..1ac68f8 --- /dev/null +++ b/config/hypr/scripts/Polkit.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Polkit possible paths files to check +polkit=( + "/usr/lib/polkit-kde-authentication-agent-1" + "/usr/lib/polkit-gnome-authentication-agent-1" + "/usr/libexec/polkit-gnome-authentication-agent-1" + "/usr/lib/x86_64-linux-gnu/libexec/polkit-kde-authentication-agent-1" + "/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1" +) + +executed=false # Flag to track if a file has been executed + +# Loop through the list of files +for file in "${polkit[@]}"; do + if [ -e "$file" ]; then + echo "File $file found, executing command..." + exec "$file" + executed=true + break + fi +done + +# If none of the files were found, you can add a fallback command here +if [ "$executed" == false ]; then + echo "None of the specified files were found. Install a Polkit" +fi diff --git a/config/hypr/scripts/PortalHyprland.sh b/config/hypr/scripts/PortalHyprland.sh new file mode 100755 index 0000000..70a994e --- /dev/null +++ b/config/hypr/scripts/PortalHyprland.sh @@ -0,0 +1,13 @@ +#!/bin/bash +sleep 1 +killall xdg-desktop-portal-hyprland +killall xdg-desktop-portal-wlr +killall xdg-desktop-portal-gnome +killall xdg-desktop-portal +sleep 1 +/usr/lib/xdg-desktop-portal-hyprland & +/usr/libexec/xdg-desktop-portal-hyprland & +sleep 2 +/usr/lib/xdg-desktop-portal-hyprland & +/usr/libexec/xdg-desktop-portal & + diff --git a/config/hypr/scripts/QuickEdit.sh b/config/hypr/scripts/QuickEdit.sh new file mode 100755 index 0000000..8738085 --- /dev/null +++ b/config/hypr/scripts/QuickEdit.sh @@ -0,0 +1,58 @@ +#!/bin/bash + +# WOFI STYLES +CONFIG="$HOME/.config/wofi/WofiBig/config" +STYLE="$HOME/.config/wofi/style.css" +COLORS="$HOME/.config/wofi/colors" + +hyprDir="$HOME/.config/hypr/configs" + +# wofi window config (in %) +WIDTH=10 +HEIGHT=20 + +## Wofi Command +wofi_command="wofi --show dmenu \ + --prompt choose to view or edit... + --conf $CONFIG --style $STYLE --color $COLORS \ + --width=$WIDTH% --height=$HEIGHT% \ + --cache-file=/dev/null \ + --hide-scroll --no-actions \ + --matching=fuzzy" + +menu(){ + printf "1. view Env-variables\n" + printf "2. view Rules\n" + printf "3. view Execs\n" + printf "4. view Key-Binds\n" + printf "5. view Monitors\n" + printf "6. view Hyprland-Settings\n" +} + +main() { + choice=$(menu | ${wofi_command} | cut -d. -f1) + case $choice in + 1) + foot -e vim "$hyprDir/ENVariables.conf" + ;; + 2) + foot -e vim "$hyprDir/WindowRules.conf" + ;; + 3) + foot -e vim "$hyprDir/Execs.conf" + ;; + 4) + foot -e vim "$hyprDir/Keybinds.conf" + ;; + 5) + foot -e vim "$hyprDir/Monitors.conf" + ;; + 6) + foot -e vim "$hyprDir/Settings.conf" + ;; + *) + ;; + esac +} + +main \ No newline at end of file diff --git a/config/hypr/scripts/RainbowBorders.sh b/config/hypr/scripts/RainbowBorders.sh new file mode 100755 index 0000000..1f5e6cd --- /dev/null +++ b/config/hypr/scripts/RainbowBorders.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +function random_hex() { + random_hex=("0xff$(openssl rand -hex 3)") + echo $random_hex +} + +hyprctl keyword general:col.active_border $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) 270deg + +hyprctl keyword general:col.inactive_border $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) 270deg \ No newline at end of file diff --git a/config/hypr/scripts/Refresh.sh b/config/hypr/scripts/Refresh.sh new file mode 100755 index 0000000..b8ae1cd --- /dev/null +++ b/config/hypr/scripts/Refresh.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +SCRIPTSDIR=$HOME/.config/hypr/scripts + +# Kill already running process +_ps=(waybar mako dunst wofi) +for _prs in "${_ps[@]}"; do + if [[ $(pidof ${_prs}) ]]; then + killall -9 ${_prs} + fi +done + +# Lauch notification daemon (dunst) +${SCRIPTSDIR}/Dunst.sh & + +# Lauch statusbar (waybar) +${SCRIPTSDIR}/Waybar.sh & diff --git a/config/hypr/scripts/ScreenShot.sh b/config/hypr/scripts/ScreenShot.sh new file mode 100755 index 0000000..0682627 --- /dev/null +++ b/config/hypr/scripts/ScreenShot.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +iDIR="$HOME/.config/dunst/icons" + +time=$(date +%Y-%m-%d-%H-%M-%S) +dir="$(xdg-user-dir)/Pictures/Screenshots" +file="Screenshot_${time}_${RANDOM}.png" + +# notify and view screenshot +notify_cmd_shot="notify-send -h string:x-canonical-private-synchronous:shot-notify -u low -i ${iDIR}/picture.png" +notify_view() { + ${notify_cmd_shot} "Copied to clipboard." +## 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:shot-notify -t 1000 -i "$iDIR"/timer.png "Taking shot in : $sec" + sleep 1 + done +} + +# take shots +shotnow() { + cd ${dir} && grim - | tee "$file" | wl-copy + sleep 2 + notify_view +} + +shot5() { + countdown '5' + sleep 1 && cd ${dir} && grim - | tee "$file" | wl-copy + sleep 1 + 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)" - | 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/config/hypr/scripts/Sunset.sh b/config/hypr/scripts/Sunset.sh new file mode 100755 index 0000000..96c27c5 --- /dev/null +++ b/config/hypr/scripts/Sunset.sh @@ -0,0 +1,2 @@ +#!/bin/bash +wlsunset -t 4000 -T 6500 -d 900 -S 07:00 -s 19:00 \ No newline at end of file diff --git a/config/hypr/scripts/TouchPad.sh b/config/hypr/scripts/TouchPad.sh new file mode 100755 index 0000000..ab9f3c4 --- /dev/null +++ b/config/hypr/scripts/TouchPad.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +# NOTE: find the right device using hyprctl devices + +HYPRLAND_DEVICE="asue1209:00-04f3:319f-touchpad" + +if [ -z "$XDG_RUNTIME_DIR" ]; then + export XDG_RUNTIME_DIR=/run/user/$(id -u) +fi + +export STATUS_FILE="$XDG_RUNTIME_DIR/touchpad.status" + +enable_touchpad() { + printf "true" > "$STATUS_FILE" + + notify-send -u normal "Enabling Touchpad" + + hyprctl keyword "device:$HYPRLAND_DEVICE:enabled" true +} + +disable_touchpad() { + printf "false" > "$STATUS_FILE" + + notify-send -u normal "Disabling Touchpad" + + hyprctl keyword "device:$HYPRLAND_DEVICE:enabled" false +} + +if ! [ -f "$STATUS_FILE" ]; then + enable_touchpad +else + if [ $(cat "$STATUS_FILE") = "true" ]; then + disable_touchpad + elif [ $(cat "$STATUS_FILE") = "false" ]; then + enable_touchpad + fi +fi diff --git a/config/hypr/scripts/Volume.sh b/config/hypr/scripts/Volume.sh new file mode 100755 index 0000000..c5eab80 --- /dev/null +++ b/config/hypr/scripts/Volume.sh @@ -0,0 +1,109 @@ +#!/bin/bash + +iDIR="$HOME/.config/dunst/icons" + +# Get Volume +get_volume() { + volume=$(pamixer --get-volume) + echo "$volume" +} + +# Get icons +get_icon() { + current=$(get_volume) + if [[ "$current" -eq "0" ]]; then + echo "$iDIR/volume-mute.png" + elif [[ ("$current" -ge "0") && ("$current" -le "30") ]]; then + echo "$iDIR/volume-low.png" + elif [[ ("$current" -ge "30") && ("$current" -le "60") ]]; then + echo "$iDIR/volume-mid.png" + elif [[ ("$current" -ge "60") && ("$current" -le "100") ]]; then + echo "$iDIR/volume-high.png" + fi +} + +# Notify +notify_user() { +# notify-send -h string:x-canonical-private-synchronous:sys-notify -u normal -i "$(get_icon)" "Volume : $(get_volume) %" + notify-send -h int:value:$(get_volume) -h "string:x-dunst-stack-tag:volume_notif" -u low -i "$(get_icon)" "Volume : $(get_volume) %" + +} + +# Increase Volume +inc_volume() { + pamixer -i 5 && notify_user +} + +# Decrease Volume +dec_volume() { + pamixer -d 5 && notify_user +} + +# Toggle Mute +toggle_mute() { + if [ "$(pamixer --get-mute)" == "false" ]; then + pamixer -m && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/volume-mute.png" "Volume Switched OFF" + elif [ "$(pamixer --get-mute)" == "true" ]; then + pamixer -u && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$(get_icon)" "Volume Switched ON" + fi +} + +# Toggle Mic +toggle_mic() { + if [ "$(pamixer --default-source --get-mute)" == "false" ]; then + pamixer --default-source -m && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/microphone-mute.png" "Microphone Switched OFF" + elif [ "$(pamixer --default-source --get-mute)" == "true" ]; then + pamixer -u --default-source u && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/microphone.png" "Microphone Switched ON" + fi +} +# Get icons +get_mic_icon() { + current=$(pamixer --default-source --get-volume) + if [[ "$current" -eq "0" ]]; then + echo "$iDIR/microphone.png" + elif [[ ("$current" -ge "0") && ("$current" -le "30") ]]; then + echo "$iDIR/microphone.png" + elif [[ ("$current" -ge "30") && ("$current" -le "60") ]]; then + echo "$iDIR/microphone.png" + elif [[ ("$current" -ge "60") && ("$current" -le "100") ]]; then + echo "$iDIR/microphone.png" + fi +} +# Notify +notify_mic_user() { +# notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$(get_mic_icon)" "Mic-Level : $(pamixer --default-source --get-volume) %" + notify-send -h int:value:$(pamixer --default-source --get-volume) -h "string:x-dunst-stack-tag:volume_notif" -u low -i "$(get_mic_icon)" "Mic-Level : $(pamixer --default-source --get-volume) %" +} + +# Increase MIC Volume +inc_mic_volume() { + pamixer --default-source -i 5 && notify_mic_user +} + +# Decrease MIC Volume +dec_mic_volume() { + pamixer --default-source -d 5 && notify_mic_user +} + +# Execute accordingly +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 +elif [[ "$1" == "--get-icon" ]]; then + get_icon +elif [[ "$1" == "--get-mic-icon" ]]; then + get_mic_icon +elif [[ "$1" == "--mic-inc" ]]; then + inc_mic_volume +elif [[ "$1" == "--mic-dec" ]]; then + dec_mic_volume +else + get_volume +fi diff --git a/config/hypr/scripts/Wallpaper.sh b/config/hypr/scripts/Wallpaper.sh new file mode 100755 index 0000000..db18626 --- /dev/null +++ b/config/hypr/scripts/Wallpaper.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +DIR=$HOME/Pictures/wallpapers/ +PICS=($(find ${DIR} -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.gif" \))) +RANDOMPICS=${PICS[ $RANDOM % ${#PICS[@]} ]} + +change_swaybg(){ + pkill swww + pkill swaybg + swaybg -m fill -i ${RANDOMPICS} +} + +change_swww(){ + pkill swaybg + swww query || swww init + swww img ${RANDOMPICS} --transition-fps 30 --transition-type any --transition-duration 3 +} + +change_current(){ + if pidof swaybg >/dev/null; then + change_swaybg + else + change_swww + fi +} + +switch(){ + if pidof swaybg >/dev/null; then + change_swww + else + change_swaybg + fi +} + +case "$1" in + "swaybg") + change_swaybg + ;; + "swww") + change_swww + ;; + "s") + switch + ;; + *) + change_current + ;; +esac \ No newline at end of file diff --git a/config/hypr/scripts/WallpaperSelect.sh b/config/hypr/scripts/WallpaperSelect.sh new file mode 100755 index 0000000..610d94c --- /dev/null +++ b/config/hypr/scripts/WallpaperSelect.sh @@ -0,0 +1,85 @@ +#!/bin/bash + +# WALLPAPERS PATH +DIR=$HOME/Pictures/wallpapers + +# Transition config (type swww img --help for more settings +FPS=30 +TYPE="simple" +DURATION=3 + +# wofi window config (in %) +WIDTH=10 +HEIGHT=30 + +SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION" + +PICS=($(ls ${DIR} | grep -e ".jpg$" -e ".jpeg$" -e ".png$" -e ".gif$")) +#PICS=($(find ${DIR} -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" \))) + +RANDOM_PIC=${PICS[ $RANDOM % ${#PICS[@]} ]} +RANDOM_PIC_NAME="${#PICS[@]}. random" + +# WOFI STYLES +CONFIG="$HOME/.config/wofi/WofiBig/config" +STYLE="$HOME/.config/wofi/style.css" +COLORS="$HOME/.config/wofi/colors" + +# to check if swaybg is running +if [[ $(pidof swaybg) ]]; then + pkill swaybg +fi + +## Wofi Command +wofi_command="wofi --show dmenu \ + --prompt choose... + --conf $CONFIG --style $STYLE --color $COLORS \ + --width=$WIDTH% --height=$HEIGHT% \ + --cache-file=/dev/null \ + --hide-scroll --no-actions \ + --matching=fuzzy" + +menu(){ + # Here we are looping in the PICS array that is composed of all images in the $DIR folder + for i in ${!PICS[@]}; do + # keeping the .gif to make sue you know it is animated + if [[ -z $(echo ${PICS[$i]} | grep .gif$) ]]; then + printf "$i. $(echo ${PICS[$i]} | cut -d. -f1)\n" # n°. + else + printf "$i. ${PICS[$i]}\n" + fi + done + + printf "$RANDOM_PIC_NAME" +} + +swww query || swww init + +main() { + choice=$(menu | ${wofi_command}) + + # no choice case + if [[ -z $choice ]]; then return; fi + + # random choice case + if [ "$choice" = "$RANDOM_PIC_NAME" ]; then + swww img ${DIR}/${RANDOM_PIC} $SWWW_PARAMS + return + fi + + pic_index=$(echo $choice | cut -d. -f1) + swww img ${DIR}/${PICS[$pic_index]} $SWWW_PARAMS +} + +# Check if wofi is already running +if pidof wofi >/dev/null; then + killall wofi + exit 0 +else + main +fi + +# Uncomment to launch something if a choice was made +# if [[ -n "$choice" ]]; then + # Restart Waybar +# fi \ No newline at end of file diff --git a/config/hypr/scripts/Waybar.sh b/config/hypr/scripts/Waybar.sh new file mode 100755 index 0000000..394f309 --- /dev/null +++ b/config/hypr/scripts/Waybar.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +CONFIG="$HOME/.config/waybar/config" +STYLE="$HOME/.config/waybar/style.css" + +if [[ ! $(pidof waybar) ]]; then + waybar --bar main-bar --log-level error --config ${CONFIG} --style ${STYLE} +fi diff --git a/config/hypr/scripts/WaybarStyles.sh b/config/hypr/scripts/WaybarStyles.sh new file mode 100755 index 0000000..7003244 --- /dev/null +++ b/config/hypr/scripts/WaybarStyles.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +# Check which waybar theme is set +THEMEIS=$(realpath ~/.config/waybar/style.css | sed 's/.*-\(.*\)\.css/\1/') + +# Change theme +if [ "$THEMEIS" == "default" ]; then + SWITCHTO="-b&w" +elif [ "$THEMEIS" == "b&w" ]; then + SWITCHTO="-rgb" +elif [ "$THEMEIS" == "rgb" ]; then + SWITCHTO="-default_alter" +elif [ "$THEMEIS" == "default_alter" ]; then + SWITCHTO="-mauve" +elif [ "$THEMEIS" == "mauve" ]; then + SWITCHTO="-light" +elif [ "$THEMEIS" == "light" ]; then + SWITCHTO="-dark" +else + SWITCHTO="-default" +fi + +# Set the waybar theme +THEMEFILE="$HOME/.config/waybar/style/style${SWITCHTO}.css" +if [ -f "$THEMEFILE" ]; then + ln -sf "$THEMEFILE" "$HOME/.config/waybar/style.css" + +else + echo "Error: $THEMEFILE not found" + exit 1 +fi + +# Restart waybar +# Kill already running process +_ps=(waybar mako dunst) +for _prs in "${_ps[@]}"; do + if [[ $(pidof ${_prs}) ]]; then + killall -9 ${_prs} + fi +done + +exec ~/.config/hypr/scripts/Refresh.sh + + + diff --git a/config/hypr/scripts/Weather.py b/config/hypr/scripts/Weather.py new file mode 100755 index 0000000..b622338 --- /dev/null +++ b/config/hypr/scripts/Weather.py @@ -0,0 +1,122 @@ +#!/usr/bin/env python3 +# From https://raw.githubusercontent.com/rxyhn/dotfiles/main/home/rxyhn/modules/desktop/waybar/scripts/waybar-wttr.py + +## ensure to insert city inside "" +city = "Busan" +import json +import requests +from datetime import datetime + +WEATHER_CODES = { + '113': '', + '116': '󰖕', + '119': '', + '122': '', + '143': '', + '176': '', + '179': '', + '182': '', + '185': '', + '200': '⛈️', + '227': '🌨️', + '230': '🌨️', + '248': '☁️ ', + '260': '☁️', + '263': '🌧️', + '266': '🌧️', + '281': '🌧️', + '284': '🌧️', + '293': '🌧️', + '296': '🌧️', + '299': '🌧️', + '302': '🌧️', + '305': '🌧️', + '308': '🌧️', + '311': '🌧️', + '314': '🌧️', + '317': '🌧️', + '320': '🌨️', + '323': '🌨️', + '326': '🌨️', + '329': '❄️', + '332': '❄️', + '335': '❄️', + '338': '❄️', + '350': '🌧️', + '353': '🌧️', + '356': '🌧️', + '359': '🌧️', + '362': '🌧️', + '365': '🌧️', + '368': '🌧️', + '371': '❄️', + '374': '🌨️', + '377': '🌨️', + '386': '🌨️', + '389': '🌨️', + '392': '🌧️', + '395': '❄️' +} + +data = {} + + +weather = requests.get("https://wttr.in/{city}?format=j1").json() + + +def format_time(time): + return time.replace("00", "").zfill(2) + + +def format_temp(temp): + return (hour['FeelsLikeC']+"°").ljust(3) + + +def format_chances(hour): + chances = { + "chanceoffog": "Fog", + "chanceoffrost": "Frost", + "chanceofovercast": "Overcast", + "chanceofrain": "Rain", + "chanceofsnow": "Snow", + "chanceofsunshine": "Sunshine", + "chanceofthunder": "Thunder", + "chanceofwindy": "Wind" + } + + conditions = [] + for event in chances.keys(): + if int(hour[event]) > 0: + conditions.append(chances[event]+" "+hour[event]+"%") + return ", ".join(conditions) + +tempint = int(weather['current_condition'][0]['FeelsLikeC']) +extrachar = '' +if tempint > 0 and tempint < 10: + extrachar = '+' + + +data['text'] = ' '+WEATHER_CODES[weather['current_condition'][0]['weatherCode']] + \ + " "+extrachar+weather['current_condition'][0]['FeelsLikeC']+"°" + +data['tooltip'] = f"{weather['current_condition'][0]['weatherDesc'][0]['value']} {weather['current_condition'][0]['temp_C']}°\n" +data['tooltip'] += f"Feels like: {weather['current_condition'][0]['FeelsLikeC']}°\n" +data['tooltip'] += f"Wind: {weather['current_condition'][0]['windspeedKmph']}Km/h\n" +data['tooltip'] += f"Humidity: {weather['current_condition'][0]['humidity']}%\n" +for i, day in enumerate(weather['weather']): + data['tooltip'] += f"\n" + if i == 0: + data['tooltip'] += "Today, " + if i == 1: + data['tooltip'] += "Tomorrow, " + data['tooltip'] += f"{day['date']}\n" + data['tooltip'] += f"⬆️{day['maxtempC']}° ⬇️{day['mintempC']}° " + data['tooltip'] += f"🌅{day['astronomy'][0]['sunrise']} 🌇{day['astronomy'][0]['sunset']}\n" + for hour in day['hourly']: + if i == 0: + if int(format_time(hour['time'])) < datetime.now().hour-2: + continue + data['tooltip'] += f"{format_time(hour['time'])} {WEATHER_CODES[hour['weatherCode']]} {format_temp(hour['FeelsLikeC'])} {hour['weatherDesc'][0]['value']}, {format_chances(hour)}\n" + + +print(json.dumps(data)) diff --git a/config/hypr/scripts/Weather.sh b/config/hypr/scripts/Weather.sh new file mode 100755 index 0000000..f778425 --- /dev/null +++ b/config/hypr/scripts/Weather.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +city=Busan +cachedir=~/.cache/rbn +cachefile=${0##*/}-$1 + +if [ ! -d $cachedir ]; then + mkdir -p $cachedir +fi + +if [ ! -f $cachedir/$cachefile ]; then + touch $cachedir/$cachefile +fi + +# Save current IFS +SAVEIFS=$IFS +# Change IFS to new line. +IFS=$'\n' + +cacheage=$(($(date +%s) - $(stat -c '%Y' "$cachedir/$cachefile"))) +if [ $cacheage -gt 1740 ] || [ ! -s $cachedir/$cachefile ]; then + data=($(curl -s https://en.wttr.in/"$city"$1\?0qnT 2>&1)) + echo ${data[0]} | cut -f1 -d, > $cachedir/$cachefile + echo ${data[1]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile + echo ${data[2]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile +fi + +weather=($(cat $cachedir/$cachefile)) + +# Restore IFSClear +IFS=$SAVEIFS + +temperature=$(echo ${weather[2]} | sed -E 's/([[:digit:]]+)\.\./\1 to /g') + +#echo ${weather[1]##*,} + +# https://fontawesome.com/icons?s=solid&c=weather +case $(echo ${weather[1]##*,} | tr '[:upper:]' '[:lower:]') in +"clear" | "sunny") + condition="" + ;; +"partly cloudy") + condition="󰖕" + ;; +"cloudy") + condition="" + ;; +"overcast") + condition="" + ;; +"fog" | "freezing fog") + condition="" + ;; +"patchy rain possible" | "patchy light drizzle" | "light drizzle" | "patchy light rain" | "light rain" | "light rain shower" | "mist" | "rain") + condition="󰼳" + ;; +"moderate rain at times" | "moderate rain" | "heavy rain at times" | "heavy rain" | "moderate or heavy rain shower" | "torrential rain shower" | "rain shower") + condition="" + ;; +"patchy snow possible" | "patchy sleet possible" | "patchy freezing drizzle possible" | "freezing drizzle" | "heavy freezing drizzle" | "light freezing rain" | "moderate or heavy freezing rain" | "light sleet" | "ice pellets" | "light sleet showers" | "moderate or heavy sleet showers") + condition="󰼴" + ;; +"blowing snow" | "moderate or heavy sleet" | "patchy light snow" | "light snow" | "light snow showers") + condition="󰙿" + ;; +"blizzard" | "patchy moderate snow" | "moderate snow" | "patchy heavy snow" | "heavy snow" | "moderate or heavy snow with thunder" | "moderate or heavy snow showers") + condition="" + ;; +"thundery outbreaks possible" | "patchy light rain with thunder" | "moderate or heavy rain with thunder" | "patchy light snow with thunder") + condition="" + ;; +*) + condition="" + echo -e "{\"text\":\""$condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}" + ;; +esac + +#echo $temp $condition + +echo -e "{\"text\":\""$temperature $condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}" diff --git a/config/hypr/scripts/Wofi.sh b/config/hypr/scripts/Wofi.sh new file mode 100755 index 0000000..9b78bee --- /dev/null +++ b/config/hypr/scripts/Wofi.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +CONFIG="$HOME/.config/wofi/config" +STYLE="$HOME/.config/wofi/style.css" +COLORS="$HOME/.config/wofi/colors" + +if [[ ! $(pidof wofi) ]]; then + wofi --show drun --prompt 'Search...' --conf ${CONFIG} --style ${STYLE} --color ${COLORS} +else + pkill wofi +fi diff --git a/config/hypr/scripts/WofiBeats.sh b/config/hypr/scripts/WofiBeats.sh new file mode 100755 index 0000000..5c73afe --- /dev/null +++ b/config/hypr/scripts/WofiBeats.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +## Files +CONFIG="$HOME/.config/wofi/WofiBig/config" +STYLE="$HOME/.config/wofi/style.css" +COLORS="$HOME/.config/wofi/colors" +iDIR="$HOME/.config/dunst/icons" + + +# wofi window config (in %) +WIDTH=12 +HEIGHT=30 + +## Wofi Command +wofi_command="wofi --show dmenu \ + --prompt choose... + --conf $CONFIG --style $STYLE --color $COLORS \ + --width=$WIDTH% --height=$HEIGHT% \ + --cache-file=/dev/null \ + --hide-scroll --no-actions \ + --matching=fuzzy" + + +notification(){ + notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/music.png" "Now Playing: Online Music" +} + +menu(){ +printf "1. Lofi Girl\n" +printf "2. 96.3 Easy Rock - FM Radio\n" +printf "3. Box Lofi\n" +printf "4. Top Music 2023\n" +printf "5. Youtube Global Top 100\n" +printf "6. SmoothChill\n" +printf "7. Relaxing Music\n" +printf "8. Youtube Remix\n" +printf "9. K-Drama-OST2" +} +main() { +choice=$(menu | ${wofi_command} | cut -d. -f1) +case $choice in +1) + notification + mpv "https://play.streamafrica.net/lofiradio" + return + ;; +2) + notification + mpv "https://radio-stations-philippines.com/easy-rock" + return +;; +3) + notification + mpv "http://stream.zeno.fm/f3wvbbqmdg8uv" + return + ;; +4) + notification ; + mpv --shuffle --vid=no "https://youtube.com/playlist?list=PL6k9a6aYB2zk0qSbXR-ZEiwqgdHymsRtQ" + return + ;; +5) + notification ; + mpv --shuffle --vid=no "https://youtube.com/playlist?list=PL4fGSI1pDJn5kI81J1fYWK5eZRl1zJ5kM" + return + ;; +6) + notification ; + mpv "https://media-ssl.musicradio.com/SmoothChill" + return + ;; +7) + notification ; + mpv --shuffle --vid=no "https://youtube.com/playlist?list=PLMIbmfP_9vb8BCxRoraJpoo4q1yMFg4CE" + return +;; +8) + notification ; + mpv --shuffle --vid=no "https://youtube.com/playlist?list=PLeqTkIUlrZXlSNn3tcXAa-zbo95j0iN-0" + return + ;; +9) + notification ; + mpv --shuffle --vid=no "https://youtube.com/playlist?list=PLUge_o9AIFp4HuA-A3e3ZqENh63LuRRlQ" + return +;; +esac +} + +pkill -f http && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/music.png" "Online Music stopped" || main diff --git a/config/hypr/scripts/WofiBig.sh b/config/hypr/scripts/WofiBig.sh new file mode 100755 index 0000000..31d9890 --- /dev/null +++ b/config/hypr/scripts/WofiBig.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +CONFIG="$HOME/.config/wofi/WofiBig/config" +STYLE="$HOME/.config/wofi/style.css" +COLORS="$HOME/.config/wofi/colors" + +if [[ ! $(pidof wofi) ]]; then + wofi --show drun --prompt 'Search...' --conf ${CONFIG} --style ${STYLE} --color ${COLORS} +else + pkill wofi +fi diff --git a/config/hypr/scripts/WofiEmoji.sh b/config/hypr/scripts/WofiEmoji.sh new file mode 100755 index 0000000..88c1b19 --- /dev/null +++ b/config/hypr/scripts/WofiEmoji.sh @@ -0,0 +1,1868 @@ +#!/bin/bash + +# WOFI STYLES +CONFIG="$HOME/.config/wofi/WofiBig/config" +STYLE="$HOME/.config/wofi/style.css" +COLORS="$HOME/.config/wofi/colors" + +# wofi window config (in %) +WIDTH=40 +HEIGHT=40 + +sed '1,/^### DATA ###$/d' $0 | +wofi --show dmenu -i --conf ${CONFIG} --style ${STYLE} --color ${COLORS} --width=$WIDTH% --height=$HEIGHT% | +cut -d ' ' -f 1 | tr -d '\n' | wl-copy + +exit + +### DATA ### +😀 grinning face face smile happy joy :D grin +😃 grinning face with big eyes face happy joy haha :D :) smile funny +😄 grinning face with smiling eyes face happy joy funny haha laugh like :D :) smile +😁 beaming face with smiling eyes face happy smile joy kawaii +😆 grinning squinting face happy joy lol satisfied haha face glad XD laugh +😅 grinning face with sweat face hot happy laugh sweat smile relief +🤣 rolling on the floor laughing face rolling floor laughing lol haha rofl +😂 face with tears of joy face cry tears weep happy happytears haha +🙂 slightly smiling face face smile +🙃 upside down face face flipped silly smile +😉 winking face face happy mischievous secret ;) smile eye +😊 smiling face with smiling eyes face smile happy flushed crush embarrassed shy joy +😇 smiling face with halo face angel heaven halo +🥰 smiling face with hearts face love like affection valentines infatuation crush hearts adore +😍 smiling face with heart eyes face love like affection valentines infatuation crush heart +🤩 star struck face smile starry eyes grinning +😘 face blowing a kiss face love like affection valentines infatuation kiss +😗 kissing face love like face 3 valentines infatuation kiss +☺️ smiling face face blush massage happiness +😚 kissing face with closed eyes face love like affection valentines infatuation kiss +😙 kissing face with smiling eyes face affection valentines infatuation kiss +😋 face savoring food happy joy tongue smile face silly yummy nom delicious savouring +😛 face with tongue face prank childish playful mischievous smile tongue +😜 winking face with tongue face prank childish playful mischievous smile wink tongue +🤪 zany face face goofy crazy +😝 squinting face with tongue face prank playful mischievous smile tongue +🤑 money mouth face face rich dollar money +🤗 hugging face face smile hug +🤭 face with hand over mouth face whoops shock surprise +🤫 shushing face face quiet shhh +🤔 thinking face face hmmm think consider +🤐 zipper mouth face face sealed zipper secret +🤨 face with raised eyebrow face distrust scepticism disapproval disbelief surprise +😐 neutral face indifference meh :| neutral +😑 expressionless face face indifferent - - meh deadpan +😶 face without mouth face hellokitty +😏 smirking face face smile mean prank smug sarcasm +😒 unamused face indifference bored straight face serious sarcasm unimpressed skeptical dubious side eye +🙄 face with rolling eyes face eyeroll frustrated +😬 grimacing face face grimace teeth +🤥 lying face face lie pinocchio +😌 relieved face face relaxed phew massage happiness +😔 pensive face face sad depressed upset +😪 sleepy face face tired rest nap +🤤 drooling face face +😴 sleeping face face tired sleepy night zzz +😷 face with medical mask face sick ill disease +🤒 face with thermometer sick temperature thermometer cold fever +🤕 face with head bandage injured clumsy bandage hurt +🤢 nauseated face face vomit gross green sick throw up ill +🤮 face vomiting face sick +🤧 sneezing face face gesundheit sneeze sick allergy +🥵 hot face face feverish heat red sweating +🥶 cold face face blue freezing frozen frostbite icicles +🥴 woozy face face dizzy intoxicated tipsy wavy +😵 dizzy face spent unconscious xox dizzy +🤯 exploding head face shocked mind blown +🤠 cowboy hat face face cowgirl hat +🥳 partying face face celebration woohoo +😎 smiling face with sunglasses face cool smile summer beach sunglass +🤓 nerd face face nerdy geek dork +🧐 face with monocle face stuffy wealthy +😕 confused face face indifference huh weird hmmm :/ +😟 worried face face concern nervous :( +🙁 slightly frowning face face frowning disappointed sad upset +☹️ frowning face face sad upset frown +😮 face with open mouth face surprise impressed wow whoa :O +😯 hushed face face woo shh +😲 astonished face face xox surprised poisoned +😳 flushed face face blush shy flattered +🥺 pleading face face begging mercy +😦 frowning face with open mouth face aw what +😧 anguished face face stunned nervous +😨 fearful face face scared terrified nervous oops huh +😰 anxious face with sweat face nervous sweat +😥 sad but relieved face face phew sweat nervous +😢 crying face face tears sad depressed upset :'( +😭 loudly crying face face cry tears sad upset depressed +😱 face screaming in fear face munch scared omg +😖 confounded face face confused sick unwell oops :S +😣 persevering face face sick no upset oops +😞 disappointed face face sad upset depressed :( +😓 downcast face with sweat face hot sad tired exercise +😩 weary face face tired sleepy sad frustrated upset +😫 tired face sick whine upset frustrated +🥱 yawning face tired sleepy +😤 face with steam from nose face gas phew proud pride +😡 pouting face angry mad hate despise +😠 angry face mad face annoyed frustrated +🤬 face with symbols on mouth face swearing cursing cussing profanity expletive +😈 smiling face with horns devil horns +👿 angry face with horns devil angry horns +💀 skull dead skeleton creepy death +☠️ skull and crossbones poison danger deadly scary death pirate evil +💩 pile of poo hankey shitface fail turd shit +🤡 clown face face +👹 ogre monster red mask halloween scary creepy devil demon japanese ogre +👺 goblin red evil mask monster scary creepy japanese goblin +👻 ghost halloween spooky scary +👽 alien UFO paul weird outer space +👾 alien monster game arcade play +🤖 robot computer machine bot +😺 grinning cat animal cats happy smile +😸 grinning cat with smiling eyes animal cats smile +😹 cat with tears of joy animal cats haha happy tears +😻 smiling cat with heart eyes animal love like affection cats valentines heart +😼 cat with wry smile animal cats smirk +😽 kissing cat animal cats kiss +🙀 weary cat animal cats munch scared scream +😿 crying cat animal tears weep sad cats upset cry +😾 pouting cat animal cats +🙈 see no evil monkey monkey animal nature haha +🙉 hear no evil monkey animal monkey nature +🙊 speak no evil monkey monkey animal nature omg +💋 kiss mark face lips love like affection valentines +💌 love letter email like affection envelope valentines +💘 heart with arrow love like heart affection valentines +💝 heart with ribbon love valentines +💖 sparkling heart love like affection valentines +💗 growing heart like love affection valentines pink +💓 beating heart love like affection valentines pink heart +💞 revolving hearts love like affection valentines +💕 two hearts love like affection valentines heart +💟 heart decoration purple-square love like +❣️ heart exclamation decoration love +💔 broken heart sad sorry break heart heartbreak +❤️ red heart love like valentines +🧡 orange heart love like affection valentines +💛 yellow heart love like affection valentines +💚 green heart love like affection valentines +💙 blue heart love like affection valentines +💜 purple heart love like affection valentines +🤎 brown heart coffee +🖤 black heart evil +🤍 white heart pure +💯 hundred points score perfect numbers century exam quiz test pass hundred +💢 anger symbol angry mad +💥 collision bomb explode explosion collision blown +💫 dizzy star sparkle shoot magic +💦 sweat droplets water drip oops +💨 dashing away wind air fast shoo fart smoke puff +🕳️ hole embarrassing +💣 bomb boom explode explosion terrorism +💬 speech balloon bubble words message talk chatting +👁️‍🗨️ eye in speech bubble info +🗨️ left speech bubble words message talk chatting +🗯️ right anger bubble caption speech thinking mad +💭 thought balloon bubble cloud speech thinking dream +💤 zzz sleepy tired dream +👋 waving hand hands gesture goodbye solong farewell hello hi palm +🤚 raised back of hand fingers raised backhand +🖐️ hand with fingers splayed hand fingers palm +✋ raised hand fingers stop highfive palm ban +🖖 vulcan salute hand fingers spock star trek +👌 ok hand fingers limbs perfect ok okay +🤏 pinching hand tiny small size +✌️ victory hand fingers ohyeah hand peace victory two +🤞 crossed fingers good lucky +🤟 love you gesture hand fingers gesture +🤘 sign of the horns hand fingers evil eye sign of horns rock on +🤙 call me hand hands gesture shaka +👈 backhand index pointing left direction fingers hand left +👉 backhand index pointing right fingers hand direction right +👆 backhand index pointing up fingers hand direction up +🖕 middle finger hand fingers rude middle flipping +👇 backhand index pointing down fingers hand direction down +☝️ index pointing up hand fingers direction up +👍 thumbs up thumbsup yes awesome good agree accept cool hand like +1 +👎 thumbs down thumbsdown no dislike hand -1 +✊ raised fist fingers hand grasp +👊 oncoming fist angry violence fist hit attack hand +🤛 left facing fist hand fistbump +🤜 right facing fist hand fistbump +👏 clapping hands hands praise applause congrats yay +🙌 raising hands gesture hooray yea celebration hands +👐 open hands fingers butterfly hands open +🤲 palms up together hands gesture cupped prayer +🤝 handshake agreement shake +🙏 folded hands please hope wish namaste highfive pray +✍️ writing hand lower left ballpoint pen stationery write compose +💅 nail polish beauty manicure finger fashion nail +🤳 selfie camera phone +💪 flexed biceps arm flex hand summer strong biceps +🦾 mechanical arm accessibility +🦿 mechanical leg accessibility +🦵 leg kick limb +🦶 foot kick stomp +👂 ear face hear sound listen +🦻 ear with hearing aid accessibility +👃 nose smell sniff +🧠 brain smart intelligent +🦷 tooth teeth dentist +🦴 bone skeleton +👀 eyes look watch stalk peek see +👁️ eye face look see watch stare +👅 tongue mouth playful +👄 mouth mouth kiss +👶 baby child boy girl toddler +🧒 child gender-neutral young +👦 boy man male guy teenager +👧 girl female woman teenager +🧑 person gender-neutral person +👱 person blond hair hairstyle +👨 man mustache father dad guy classy sir moustache +🧔 man beard person bewhiskered +👨‍🦰 man red hair hairstyle +👨‍🦱 man curly hair hairstyle +👨‍🦳 man white hair old elder +👨‍🦲 man bald hairless +👩 woman female girls lady +👩‍🦰 woman red hair hairstyle +🧑‍🦰 person red hair hairstyle +👩‍🦱 woman curly hair hairstyle +🧑‍🦱 person curly hair hairstyle +👩‍🦳 woman white hair old elder +🧑‍🦳 person white hair elder old +👩‍🦲 woman bald hairless +🧑‍🦲 person bald hairless +👱‍♀️ woman blond hair woman female girl blonde person +👱‍♂️ man blond hair man male boy blonde guy person +🧓 older person human elder senior gender-neutral +👴 old man human male men old elder senior +👵 old woman human female women lady old elder senior +🙍 person frowning worried +🙍‍♂️ man frowning male boy man sad depressed discouraged unhappy +🙍‍♀️ woman frowning female girl woman sad depressed discouraged unhappy +🙎 person pouting upset +🙎‍♂️ man pouting male boy man +🙎‍♀️ woman pouting female girl woman +🙅 person gesturing no decline +🙅‍♂️ man gesturing no male boy man nope +🙅‍♀️ woman gesturing no female girl woman nope +🙆 person gesturing ok agree +🙆‍♂️ man gesturing ok men boy male blue human man +🙆‍♀️ woman gesturing ok women girl female pink human woman +💁 person tipping hand information +💁‍♂️ man tipping hand male boy man human information +💁‍♀️ woman tipping hand female girl woman human information +🙋 person raising hand question +🙋‍♂️ man raising hand male boy man +🙋‍♀️ woman raising hand female girl woman +🧏 deaf person accessibility +🧏‍♂️ deaf man accessibility +🧏‍♀️ deaf woman accessibility +🙇 person bowing respectiful +🙇‍♂️ man bowing man male boy +🙇‍♀️ woman bowing woman female girl +🤦 person facepalming disappointed +🤦‍♂️ man facepalming man male boy disbelief +🤦‍♀️ woman facepalming woman female girl disbelief +🤷 person shrugging regardless +🤷‍♂️ man shrugging man male boy confused indifferent doubt +🤷‍♀️ woman shrugging woman female girl confused indifferent doubt +🧑‍⚕️ health worker hospital +👨‍⚕️ man health worker doctor nurse therapist healthcare man human +👩‍⚕️ woman health worker doctor nurse therapist healthcare woman human +🧑‍🎓 student learn +👨‍🎓 man student graduate man human +👩‍🎓 woman student graduate woman human +🧑‍🏫 teacher professor +👨‍🏫 man teacher instructor professor man human +👩‍🏫 woman teacher instructor professor woman human +🧑‍⚖️ judge law +👨‍⚖️ man judge justice court man human +👩‍⚖️ woman judge justice court woman human +🧑‍🌾 farmer crops +👨‍🌾 man farmer rancher gardener man human +👩‍🌾 woman farmer rancher gardener woman human +🧑‍🍳 cook food kitchen culinary +👨‍🍳 man cook chef man human +👩‍🍳 woman cook chef woman human +🧑‍🔧 mechanic worker technician +👨‍🔧 man mechanic plumber man human wrench +👩‍🔧 woman mechanic plumber woman human wrench +🧑‍🏭 factory worker labor +👨‍🏭 man factory worker assembly industrial man human +👩‍🏭 woman factory worker assembly industrial woman human +🧑‍💼 office worker business +👨‍💼 man office worker business manager man human +👩‍💼 woman office worker business manager woman human +🧑‍🔬 scientist chemistry +👨‍🔬 man scientist biologist chemist engineer physicist man human +👩‍🔬 woman scientist biologist chemist engineer physicist woman human +🧑‍💻 technologist computer +👨‍💻 man technologist coder developer engineer programmer software man human laptop computer +👩‍💻 woman technologist coder developer engineer programmer software woman human laptop computer +🧑‍🎤 singer song artist performer +👨‍🎤 man singer rockstar entertainer man human +👩‍🎤 woman singer rockstar entertainer woman human +🧑‍🎨 artist painting draw creativity +👨‍🎨 man artist painter man human +👩‍🎨 woman artist painter woman human +🧑‍✈️ pilot fly plane airplane +👨‍✈️ man pilot aviator plane man human +👩‍✈️ woman pilot aviator plane woman human +🧑‍🚀 astronaut outerspace +👨‍🚀 man astronaut space rocket man human +👩‍🚀 woman astronaut space rocket woman human +🧑‍🚒 firefighter fire +👨‍🚒 man firefighter fireman man human +👩‍🚒 woman firefighter fireman woman human +👮 police officer cop +👮‍♂️ man police officer man police law legal enforcement arrest 911 +👮‍♀️ woman police officer woman police law legal enforcement arrest 911 female +🕵️ detective human spy detective +🕵️‍♂️ man detective crime +🕵️‍♀️ woman detective human spy detective female woman +💂 guard protect +💂‍♂️ man guard uk gb british male guy royal +💂‍♀️ woman guard uk gb british female royal woman +👷 construction worker labor build +👷‍♂️ man construction worker male human wip guy build construction worker labor +👷‍♀️ woman construction worker female human wip build construction worker labor woman +🤴 prince boy man male crown royal king +👸 princess girl woman female blond crown royal queen +👳 person wearing turban headdress +👳‍♂️ man wearing turban male indian hinduism arabs +👳‍♀️ woman wearing turban female indian hinduism arabs woman +👲 man with skullcap male boy chinese +🧕 woman with headscarf female hijab mantilla tichel +🤵 man in tuxedo couple marriage wedding groom +👰 bride with veil couple marriage wedding woman bride +🤰 pregnant woman baby +🤱 breast feeding nursing baby +👼 baby angel heaven wings halo +🎅 santa claus festival man male xmas father christmas +🤶 mrs claus woman female xmas mother christmas +🦸 superhero marvel +🦸‍♂️ man superhero man male good hero superpowers +🦸‍♀️ woman superhero woman female good heroine superpowers +🦹 supervillain marvel +🦹‍♂️ man supervillain man male evil bad criminal hero superpowers +🦹‍♀️ woman supervillain woman female evil bad criminal heroine superpowers +🧙 mage magic +🧙‍♂️ man mage man male mage sorcerer +🧙‍♀️ woman mage woman female mage witch +🧚 fairy wings magical +🧚‍♂️ man fairy man male +🧚‍♀️ woman fairy woman female +🧛 vampire blood twilight +🧛‍♂️ man vampire man male dracula +🧛‍♀️ woman vampire woman female +🧜 merperson sea +🧜‍♂️ merman man male triton +🧜‍♀️ mermaid woman female merwoman ariel +🧝 elf magical +🧝‍♂️ man elf man male +🧝‍♀️ woman elf woman female +🧞 genie magical wishes +🧞‍♂️ man genie man male +🧞‍♀️ woman genie woman female +🧟 zombie dead +🧟‍♂️ man zombie man male dracula undead walking dead +🧟‍♀️ woman zombie woman female undead walking dead +💆 person getting massage relax +💆‍♂️ man getting massage male boy man head +💆‍♀️ woman getting massage female girl woman head +💇 person getting haircut hairstyle +💇‍♂️ man getting haircut male boy man +💇‍♀️ woman getting haircut female girl woman +🚶 person walking move +🚶‍♂️ man walking human feet steps +🚶‍♀️ woman walking human feet steps woman female +🧍 person standing still +🧍‍♂️ man standing still +🧍‍♀️ woman standing still +🧎 person kneeling pray respectful +🧎‍♂️ man kneeling pray respectful +🧎‍♀️ woman kneeling respectful pray +🧑‍🦯 person with probing cane blind +👨‍🦯 man with probing cane blind +👩‍🦯 woman with probing cane blind +🧑‍🦼 person in motorized wheelchair disability accessibility +👨‍🦼 man in motorized wheelchair disability accessibility +👩‍🦼 woman in motorized wheelchair disability accessibility +🧑‍🦽 person in manual wheelchair disability accessibility +👨‍🦽 man in manual wheelchair disability accessibility +👩‍🦽 woman in manual wheelchair disability accessibility +🏃 person running move +🏃‍♂️ man running man walking exercise race running +🏃‍♀️ woman running woman walking exercise race running female +💃 woman dancing female girl woman fun +🕺 man dancing male boy fun dancer +🕴️ man in suit levitating suit business levitate hover jump +👯 people with bunny ears perform costume +👯‍♂️ men with bunny ears male bunny men boys +👯‍♀️ women with bunny ears female bunny women girls +🧖 person in steamy room relax spa +🧖‍♂️ man in steamy room male man spa steamroom sauna +🧖‍♀️ woman in steamy room female woman spa steamroom sauna +🧗 person climbing sport +🧗‍♂️ man climbing sports hobby man male rock +🧗‍♀️ woman climbing sports hobby woman female rock +🤺 person fencing sports fencing sword +🏇 horse racing animal betting competition gambling luck +⛷️ skier sports winter snow +🏂 snowboarder sports winter +🏌️ person golfing sports business +🏌️‍♂️ man golfing sport +🏌️‍♀️ woman golfing sports business woman female +🏄 person surfing sport sea +🏄‍♂️ man surfing sports ocean sea summer beach +🏄‍♀️ woman surfing sports ocean sea summer beach woman female +🚣 person rowing boat sport move +🚣‍♂️ man rowing boat sports hobby water ship +🚣‍♀️ woman rowing boat sports hobby water ship woman female +🏊 person swimming sport pool +🏊‍♂️ man swimming sports exercise human athlete water summer +🏊‍♀️ woman swimming sports exercise human athlete water summer woman female +⛹️ person bouncing ball sports human +⛹️‍♂️ man bouncing ball sport +⛹️‍♀️ woman bouncing ball sports human woman female +🏋️ person lifting weights sports training exercise +🏋️‍♂️ man lifting weights sport +🏋️‍♀️ woman lifting weights sports training exercise woman female +🚴 person biking sport move +🚴‍♂️ man biking sports bike exercise hipster +🚴‍♀️ woman biking sports bike exercise hipster woman female +🚵 person mountain biking sport move +🚵‍♂️ man mountain biking transportation sports human race bike +🚵‍♀️ woman mountain biking transportation sports human race bike woman female +🤸 person cartwheeling sport gymnastic +🤸‍♂️ man cartwheeling gymnastics +🤸‍♀️ woman cartwheeling gymnastics +🤼 people wrestling sport +🤼‍♂️ men wrestling sports wrestlers +🤼‍♀️ women wrestling sports wrestlers +🤽 person playing water polo sport +🤽‍♂️ man playing water polo sports pool +🤽‍♀️ woman playing water polo sports pool +🤾 person playing handball sport +🤾‍♂️ man playing handball sports +🤾‍♀️ woman playing handball sports +🤹 person juggling performance balance +🤹‍♂️ man juggling juggle balance skill multitask +🤹‍♀️ woman juggling juggle balance skill multitask +🧘 person in lotus position meditate +🧘‍♂️ man in lotus position man male meditation yoga serenity zen mindfulness +🧘‍♀️ woman in lotus position woman female meditation yoga serenity zen mindfulness +🛀 person taking bath clean shower bathroom +🛌 person in bed bed rest +🧑‍🤝‍🧑 people holding hands friendship +👭 women holding hands pair friendship couple love like female people human +👫 woman and man holding hands pair people human love date dating like affection valentines marriage +👬 men holding hands pair couple love like bromance friendship people human +💏 kiss pair valentines love like dating marriage +👩‍❤️‍💋‍👨 kiss woman man love +👨‍❤️‍💋‍👨 kiss man man pair valentines love like dating marriage +👩‍❤️‍💋‍👩 kiss woman woman pair valentines love like dating marriage +💑 couple with heart pair love like affection human dating valentines marriage +👩‍❤️‍👨 couple with heart woman man love +👨‍❤️‍👨 couple with heart man man pair love like affection human dating valentines marriage +👩‍❤️‍👩 couple with heart woman woman pair love like affection human dating valentines marriage +👪 family home parents child mom dad father mother people human +👨‍👩‍👦 family man woman boy love +👨‍👩‍👧 family man woman girl home parents people human child +👨‍👩‍👧‍👦 family man woman girl boy home parents people human children +👨‍👩‍👦‍👦 family man woman boy boy home parents people human children +👨‍👩‍👧‍👧 family man woman girl girl home parents people human children +👨‍👨‍👦 family man man boy home parents people human children +👨‍👨‍👧 family man man girl home parents people human children +👨‍👨‍👧‍👦 family man man girl boy home parents people human children +👨‍👨‍👦‍👦 family man man boy boy home parents people human children +👨‍👨‍👧‍👧 family man man girl girl home parents people human children +👩‍👩‍👦 family woman woman boy home parents people human children +👩‍👩‍👧 family woman woman girl home parents people human children +👩‍👩‍👧‍👦 family woman woman girl boy home parents people human children +👩‍👩‍👦‍👦 family woman woman boy boy home parents people human children +👩‍👩‍👧‍👧 family woman woman girl girl home parents people human children +👨‍👦 family man boy home parent people human child +👨‍👦‍👦 family man boy boy home parent people human children +👨‍👧 family man girl home parent people human child +👨‍👧‍👦 family man girl boy home parent people human children +👨‍👧‍👧 family man girl girl home parent people human children +👩‍👦 family woman boy home parent people human child +👩‍👦‍👦 family woman boy boy home parent people human children +👩‍👧 family woman girl home parent people human child +👩‍👧‍👦 family woman girl boy home parent people human children +👩‍👧‍👧 family woman girl girl home parent people human children +🗣️ speaking head user person human sing say talk +👤 bust in silhouette user person human +👥 busts in silhouette user person human group team +👣 footprints feet tracking walking beach +🐵 monkey face animal nature circus +🐒 monkey animal nature banana circus +🦍 gorilla animal nature circus +🦧 orangutan animal +🐶 dog face animal friend nature woof puppy pet faithful +🐕 dog animal nature friend doge pet faithful +🦮 guide dog animal blind +🐕‍🦺 service dog blind animal +🐩 poodle dog animal 101 nature pet +🐺 wolf animal nature wild +🦊 fox animal nature face +🦝 raccoon animal nature +🐱 cat face animal meow nature pet kitten +🐈 cat animal meow pet cats +🦁 lion animal nature +🐯 tiger face animal cat danger wild nature roar +🐅 tiger animal nature roar +🐆 leopard animal nature +🐴 horse face animal brown nature +🐎 horse animal gamble luck +🦄 unicorn animal nature mystical +🦓 zebra animal nature stripes safari +🦌 deer animal nature horns venison +🐮 cow face beef ox animal nature moo milk +🐂 ox animal cow beef +🐃 water buffalo animal nature ox cow +🐄 cow beef ox animal nature moo milk +🐷 pig face animal oink nature +🐖 pig animal nature +🐗 boar animal nature +🐽 pig nose animal oink +🐏 ram animal sheep nature +🐑 ewe animal nature wool shipit +🐐 goat animal nature +🐪 camel animal hot desert hump +🐫 two hump camel animal nature hot desert hump +🦙 llama animal nature alpaca +🦒 giraffe animal nature spots safari +🐘 elephant animal nature nose th circus +🦏 rhinoceros animal nature horn +🦛 hippopotamus animal nature +🐭 mouse face animal nature cheese wedge rodent +🐁 mouse animal nature rodent +🐀 rat animal mouse rodent +🐹 hamster animal nature +🐰 rabbit face animal nature pet spring magic bunny +🐇 rabbit animal nature pet magic spring +🐿️ chipmunk animal nature rodent squirrel +🦔 hedgehog animal nature spiny +🦇 bat animal nature blind vampire +🐻 bear animal nature wild +🐨 koala animal nature +🐼 panda animal nature panda +🦥 sloth animal +🦦 otter animal +🦨 skunk animal +🦘 kangaroo animal nature australia joey hop marsupial +🦡 badger animal nature honey +🐾 paw prints animal tracking footprints dog cat pet feet +🦃 turkey animal bird +🐔 chicken animal cluck nature bird +🐓 rooster animal nature chicken +🐣 hatching chick animal chicken egg born baby bird +🐤 baby chick animal chicken bird +🐥 front facing baby chick animal chicken baby bird +🐦 bird animal nature fly tweet spring +🐧 penguin animal nature +🕊️ dove animal bird +🦅 eagle animal nature bird +🦆 duck animal nature bird mallard +🦢 swan animal nature bird +🦉 owl animal nature bird hoot +🦩 flamingo animal +🦚 peacock animal nature peahen bird +🦜 parrot animal nature bird pirate talk +🐸 frog animal nature croak toad +🐊 crocodile animal nature reptile lizard alligator +🐢 turtle animal slow nature tortoise +🦎 lizard animal nature reptile +🐍 snake animal evil nature hiss python +🐲 dragon face animal myth nature chinese green +🐉 dragon animal myth nature chinese green +🦕 sauropod animal nature dinosaur brachiosaurus brontosaurus diplodocus extinct +🦖 t rex animal nature dinosaur tyrannosaurus extinct +🐳 spouting whale animal nature sea ocean +🐋 whale animal nature sea ocean +🐬 dolphin animal nature fish sea ocean flipper fins beach +🐟 fish animal food nature +🐠 tropical fish animal swim ocean beach nemo +🐡 blowfish animal nature food sea ocean +🦈 shark animal nature fish sea ocean jaws fins beach +🐙 octopus animal creature ocean sea nature beach +🐚 spiral shell nature sea beach +🐌 snail slow animal shell +🦋 butterfly animal insect nature caterpillar +🐛 bug animal insect nature worm +🐜 ant animal insect nature bug +🐝 honeybee animal insect nature bug spring honey +🐞 lady beetle animal insect nature ladybug +🦗 cricket animal cricket chirp +🕷️ spider animal arachnid +🕸️ spider web animal insect arachnid silk +🦂 scorpion animal arachnid +🦟 mosquito animal nature insect malaria +🦠 microbe amoeba bacteria germs virus +💐 bouquet flowers nature spring +🌸 cherry blossom nature plant spring flower +💮 white flower japanese spring +🏵️ rosette flower decoration military +🌹 rose flowers valentines love spring +🥀 wilted flower plant nature flower +🌺 hibiscus plant vegetable flowers beach +🌻 sunflower nature plant fall +🌼 blossom nature flowers yellow +🌷 tulip flowers plant nature summer spring +🌱 seedling plant nature grass lawn spring +🌲 evergreen tree plant nature +🌳 deciduous tree plant nature +🌴 palm tree plant vegetable nature summer beach mojito tropical +🌵 cactus vegetable plant nature +🌾 sheaf of rice nature plant +🌿 herb vegetable plant medicine weed grass lawn +☘️ shamrock vegetable plant nature irish clover +🍀 four leaf clover vegetable plant nature lucky irish +🍁 maple leaf nature plant vegetable ca fall +🍂 fallen leaf nature plant vegetable leaves +🍃 leaf fluttering in wind nature plant tree vegetable grass lawn spring +🍇 grapes fruit food wine +🍈 melon fruit nature food +🍉 watermelon fruit food picnic summer +🍊 tangerine food fruit nature orange +🍋 lemon fruit nature +🍌 banana fruit food monkey +🍍 pineapple fruit nature food +🥭 mango fruit food tropical +🍎 red apple fruit mac school +🍏 green apple fruit nature +🍐 pear fruit nature food +🍑 peach fruit nature food +🍒 cherries food fruit +🍓 strawberry fruit food nature +🥝 kiwi fruit fruit food +🍅 tomato fruit vegetable nature food +🥥 coconut fruit nature food palm +🥑 avocado fruit food +🍆 eggplant vegetable nature food aubergine +🥔 potato food tuber vegatable starch +🥕 carrot vegetable food orange +🌽 ear of corn food vegetable plant +🌶️ hot pepper food spicy chilli chili +🥒 cucumber fruit food pickle +🥬 leafy green food vegetable plant bok choy cabbage kale lettuce +🥦 broccoli fruit food vegetable +🧄 garlic food spice cook +🧅 onion cook food spice +🍄 mushroom plant vegetable +🥜 peanuts food nut +🌰 chestnut food squirrel +🍞 bread food wheat breakfast toast +🥐 croissant food bread french +🥖 baguette bread food bread french +🥨 pretzel food bread twisted +🥯 bagel food bread bakery schmear +🥞 pancakes food breakfast flapjacks hotcakes +🧇 waffle food breakfast +🧀 cheese wedge food chadder +🍖 meat on bone good food drumstick +🍗 poultry leg food meat drumstick bird chicken turkey +🥩 cut of meat food cow meat cut chop lambchop porkchop +🥓 bacon food breakfast pork pig meat +🍔 hamburger meat fast food beef cheeseburger mcdonalds burger king +🍟 french fries chips snack fast food +🍕 pizza food party +🌭 hot dog food frankfurter +🥪 sandwich food lunch bread +🌮 taco food mexican +🌯 burrito food mexican +🥙 stuffed flatbread food flatbread stuffed gyro +🧆 falafel food +🥚 egg food chicken breakfast +🍳 cooking food breakfast kitchen egg +🥘 shallow pan of food food cooking casserole paella +🍲 pot of food food meat soup +🥣 bowl with spoon food breakfast cereal oatmeal porridge +🥗 green salad food healthy lettuce +🍿 popcorn food movie theater films snack +🧈 butter food cook +🧂 salt condiment shaker +🥫 canned food food soup +🍱 bento box food japanese box +🍘 rice cracker food japanese +🍙 rice ball food japanese +🍚 cooked rice food china asian +🍛 curry rice food spicy hot indian +🍜 steaming bowl food japanese noodle chopsticks +🍝 spaghetti food italian noodle +🍠 roasted sweet potato food nature +🍢 oden food japanese +🍣 sushi food fish japanese rice +🍤 fried shrimp food animal appetizer summer +🍥 fish cake with swirl food japan sea beach narutomaki pink swirl kamaboko surimi ramen +🥮 moon cake food autumn +🍡 dango food dessert sweet japanese barbecue meat +🥟 dumpling food empanada pierogi potsticker +🥠 fortune cookie food prophecy +🥡 takeout box food leftovers +🦀 crab animal crustacean +🦞 lobster animal nature bisque claws seafood +🦐 shrimp animal ocean nature seafood +🦑 squid animal nature ocean sea +🦪 oyster food +🍦 soft ice cream food hot dessert summer +🍧 shaved ice hot dessert summer +🍨 ice cream food hot dessert +🍩 doughnut food dessert snack sweet donut +🍪 cookie food snack oreo chocolate sweet dessert +🎂 birthday cake food dessert cake +🍰 shortcake food dessert +🧁 cupcake food dessert bakery sweet +🥧 pie food dessert pastry +🍫 chocolate bar food snack dessert sweet +🍬 candy snack dessert sweet lolly +🍭 lollipop food snack candy sweet +🍮 custard dessert food +🍯 honey pot bees sweet kitchen +🍼 baby bottle food container milk +🥛 glass of milk beverage drink cow +☕ hot beverage beverage caffeine latte espresso coffee +🍵 teacup without handle drink bowl breakfast green british +🍶 sake wine drink drunk beverage japanese alcohol booze +🍾 bottle with popping cork drink wine bottle celebration +🍷 wine glass drink beverage drunk alcohol booze +🍸 cocktail glass drink drunk alcohol beverage booze mojito +🍹 tropical drink beverage cocktail summer beach alcohol booze mojito +🍺 beer mug relax beverage drink drunk party pub summer alcohol booze +🍻 clinking beer mugs relax beverage drink drunk party pub summer alcohol booze +🥂 clinking glasses beverage drink party alcohol celebrate cheers wine champagne toast +🥃 tumbler glass drink beverage drunk alcohol liquor booze bourbon scotch whisky glass shot +🥤 cup with straw drink soda +🧃 beverage box drink +🧉 mate drink tea beverage +🧊 ice water cold +🥢 chopsticks food +🍽️ fork and knife with plate food eat meal lunch dinner restaurant +🍴 fork and knife cutlery kitchen +🥄 spoon cutlery kitchen tableware +🔪 kitchen knife knife blade cutlery kitchen weapon +🏺 amphora vase jar +🌍 globe showing europe africa globe world international +🌎 globe showing americas globe world USA international +🌏 globe showing asia australia globe world east international +🌐 globe with meridians earth international world internet interweb i18n +🗺️ world map location direction +🗾 map of japan nation country japanese asia +🧭 compass magnetic navigation orienteering +🏔️ snow capped mountain photo nature environment winter cold +⛰️ mountain photo nature environment +🌋 volcano photo nature disaster +🗻 mount fuji photo mountain nature japanese +🏕️ camping photo outdoors tent +🏖️ beach with umbrella weather summer sunny sand mojito +🏜️ desert photo warm saharah +🏝️ desert island photo tropical mojito +🏞️ national park photo environment nature +🏟️ stadium photo place sports concert venue +🏛️ classical building art culture history +🏗️ building construction wip working progress +🧱 brick bricks +🏘️ houses buildings photo +🏚️ derelict house abandon evict broken building +🏠 house building home +🏡 house with garden home plant nature +🏢 office building building bureau work +🏣 japanese post office building envelope communication +🏤 post office building email +🏥 hospital building health surgery doctor +🏦 bank building money sales cash business enterprise +🏨 hotel building accomodation checkin +🏩 love hotel like affection dating +🏪 convenience store building shopping groceries +🏫 school building student education learn teach +🏬 department store building shopping mall +🏭 factory building industry pollution smoke +🏯 japanese castle photo building +🏰 castle building royalty history +💒 wedding love like affection couple marriage bride groom +🗼 tokyo tower photo japanese +🗽 statue of liberty american newyork +⛪ church building religion christ +🕌 mosque islam worship minaret +🛕 hindu temple religion +🕍 synagogue judaism worship temple jewish +⛩️ shinto shrine temple japan kyoto +🕋 kaaba mecca mosque islam +⛲ fountain photo summer water fresh +⛺ tent photo camping outdoors +🌁 foggy photo mountain +🌃 night with stars evening city downtown +🏙️ cityscape photo night life urban +🌄 sunrise over mountains view vacation photo +🌅 sunrise morning view vacation photo +🌆 cityscape at dusk photo evening sky buildings +🌇 sunset photo good morning dawn +🌉 bridge at night photo sanfrancisco +♨️ hot springs bath warm relax +🎠 carousel horse photo carnival +🎡 ferris wheel photo carnival londoneye +🎢 roller coaster carnival playground photo fun +💈 barber pole hair salon style +🎪 circus tent festival carnival party +🚂 locomotive transportation vehicle train +🚃 railway car transportation vehicle +🚄 high speed train transportation vehicle +🚅 bullet train transportation vehicle speed fast public travel +🚆 train transportation vehicle +🚇 metro transportation blue-square mrt underground tube +🚈 light rail transportation vehicle +🚉 station transportation vehicle public +🚊 tram transportation vehicle +🚝 monorail transportation vehicle +🚞 mountain railway transportation vehicle +🚋 tram car transportation vehicle carriage public travel +🚌 bus car vehicle transportation +🚍 oncoming bus vehicle transportation +🚎 trolleybus bart transportation vehicle +🚐 minibus vehicle car transportation +🚑 ambulance health 911 hospital +🚒 fire engine transportation cars vehicle +🚓 police car vehicle cars transportation law legal enforcement +🚔 oncoming police car vehicle law legal enforcement 911 +🚕 taxi uber vehicle cars transportation +🚖 oncoming taxi vehicle cars uber +🚗 automobile red transportation vehicle +🚘 oncoming automobile car vehicle transportation +🚙 sport utility vehicle transportation vehicle +🚚 delivery truck cars transportation +🚛 articulated lorry vehicle cars transportation express +🚜 tractor vehicle car farming agriculture +🏎️ racing car sports race fast formula f1 +🏍️ motorcycle race sports fast +🛵 motor scooter vehicle vespa sasha +🦽 manual wheelchair accessibility +🦼 motorized wheelchair accessibility +🛺 auto rickshaw move transportation +🚲 bicycle sports bicycle exercise hipster +🛴 kick scooter vehicle kick razor +🛹 skateboard board +🚏 bus stop transportation wait +🛣️ motorway road cupertino interstate highway +🛤️ railway track train transportation +🛢️ oil drum barrell +⛽ fuel pump gas station petroleum +🚨 police car light police ambulance 911 emergency alert error pinged law legal +🚥 horizontal traffic light transportation signal +🚦 vertical traffic light transportation driving +🛑 stop sign stop +🚧 construction wip progress caution warning +⚓ anchor ship ferry sea boat +⛵ sailboat ship summer transportation water sailing +🛶 canoe boat paddle water ship +🚤 speedboat ship transportation vehicle summer +🛳️ passenger ship yacht cruise ferry +⛴️ ferry boat ship yacht +🛥️ motor boat ship +🚢 ship transportation titanic deploy +✈️ airplane vehicle transportation flight fly +🛩️ small airplane flight transportation fly vehicle +🛫 airplane departure airport flight landing +🛬 airplane arrival airport flight boarding +🪂 parachute fly glide +💺 seat sit airplane transport bus flight fly +🚁 helicopter transportation vehicle fly +🚟 suspension railway vehicle transportation +🚠 mountain cableway transportation vehicle ski +🚡 aerial tramway transportation vehicle ski +🛰️ satellite communication gps orbit spaceflight NASA ISS +🚀 rocket launch ship staffmode NASA outer space outer space fly +🛸 flying saucer transportation vehicle ufo +🛎️ bellhop bell service +🧳 luggage packing travel +⌛ hourglass done time clock oldschool limit exam quiz test +⏳ hourglass not done oldschool time countdown +⌚ watch time accessories +⏰ alarm clock time wake +⏱️ stopwatch time deadline +⏲️ timer clock alarm +🕰️ mantelpiece clock time +🕛 twelve o clock time noon midnight midday late early schedule +🕧 twelve thirty time late early schedule +🕐 one o clock time late early schedule +🕜 one thirty time late early schedule +🕑 two o clock time late early schedule +🕝 two thirty time late early schedule +🕒 three o clock time late early schedule +🕞 three thirty time late early schedule +🕓 four o clock time late early schedule +🕟 four thirty time late early schedule +🕔 five o clock time late early schedule +🕠 five thirty time late early schedule +🕕 six o clock time late early schedule dawn dusk +🕡 six thirty time late early schedule +🕖 seven o clock time late early schedule +🕢 seven thirty time late early schedule +🕗 eight o clock time late early schedule +🕣 eight thirty time late early schedule +🕘 nine o clock time late early schedule +🕤 nine thirty time late early schedule +🕙 ten o clock time late early schedule +🕥 ten thirty time late early schedule +🕚 eleven o clock time late early schedule +🕦 eleven thirty time late early schedule +🌑 new moon nature twilight planet space night evening sleep +🌒 waxing crescent moon nature twilight planet space night evening sleep +🌓 first quarter moon nature twilight planet space night evening sleep +🌔 waxing gibbous moon nature night sky gray twilight planet space evening sleep +🌕 full moon nature yellow twilight planet space night evening sleep +🌖 waning gibbous moon nature twilight planet space night evening sleep waxing gibbous moon +🌗 last quarter moon nature twilight planet space night evening sleep +🌘 waning crescent moon nature twilight planet space night evening sleep +🌙 crescent moon night sleep sky evening magic +🌚 new moon face nature twilight planet space night evening sleep +🌛 first quarter moon face nature twilight planet space night evening sleep +🌜 last quarter moon face nature twilight planet space night evening sleep +🌡️ thermometer weather temperature hot cold +☀️ sun weather nature brightness summer beach spring +🌝 full moon face nature twilight planet space night evening sleep +🌞 sun with face nature morning sky +🪐 ringed planet outerspace +⭐ star night yellow +🌟 glowing star night sparkle awesome good magic +🌠 shooting star night photo +🌌 milky way photo space stars +☁️ cloud weather sky +⛅ sun behind cloud weather nature cloudy morning fall spring +⛈️ cloud with lightning and rain weather lightning +🌤️ sun behind small cloud weather +🌥️ sun behind large cloud weather +🌦️ sun behind rain cloud weather +🌧️ cloud with rain weather +🌨️ cloud with snow weather +🌩️ cloud with lightning weather thunder +🌪️ tornado weather cyclone twister +🌫️ fog weather +🌬️ wind face gust air +🌀 cyclone weather swirl blue cloud vortex spiral whirlpool spin tornado hurricane typhoon +🌈 rainbow nature happy unicorn face photo sky spring +🌂 closed umbrella weather rain drizzle +☂️ umbrella weather spring +☔ umbrella with rain drops rainy weather spring +⛱️ umbrella on ground weather summer +⚡ high voltage thunder weather lightning bolt fast +❄️ snowflake winter season cold weather christmas xmas +☃️ snowman winter season cold weather christmas xmas frozen +⛄ snowman without snow winter season cold weather christmas xmas frozen without snow +☄️ comet space +🔥 fire hot cook flame +💧 droplet water drip faucet spring +🌊 water wave sea water wave nature tsunami disaster +🎃 jack o lantern halloween light pumpkin creepy fall +🎄 christmas tree festival vacation december xmas celebration +🎆 fireworks photo festival carnival congratulations +🎇 sparkler stars night shine +🧨 firecracker dynamite boom explode explosion explosive +✨ sparkles stars shine shiny cool awesome good magic +🎈 balloon party celebration birthday circus +🎉 party popper party congratulations birthday magic circus celebration tada +🎊 confetti ball festival party birthday circus +🎋 tanabata tree plant nature branch summer +🎍 pine decoration plant nature vegetable panda pine decoration +🎎 japanese dolls japanese toy kimono +🎏 carp streamer fish japanese koinobori carp banner +🎐 wind chime nature ding spring bell +🎑 moon viewing ceremony photo japan asia tsukimi +🧧 red envelope gift +🎀 ribbon decoration pink girl bowtie +🎁 wrapped gift present birthday christmas xmas +🎗️ reminder ribbon sports cause support awareness +🎟️ admission tickets sports concert entrance +🎫 ticket event concert pass +🎖️ military medal award winning army +🏆 trophy win award contest place ftw ceremony +🏅 sports medal award winning +🥇 1st place medal award winning first +🥈 2nd place medal award second +🥉 3rd place medal award third +⚽ soccer ball sports football +⚾ baseball sports balls +🥎 softball sports balls +🏀 basketball sports balls NBA +🏐 volleyball sports balls +🏈 american football sports balls NFL +🏉 rugby football sports team +🎾 tennis sports balls green +🥏 flying disc sports frisbee ultimate +🎳 bowling sports fun play +🏏 cricket game sports +🏑 field hockey sports +🏒 ice hockey sports +🥍 lacrosse sports ball stick +🏓 ping pong sports pingpong +🏸 badminton sports +🥊 boxing glove sports fighting +🥋 martial arts uniform judo karate taekwondo +🥅 goal net sports +⛳ flag in hole sports business flag hole summer +⛸️ ice skate sports +🎣 fishing pole food hobby summer +🤿 diving mask sport ocean +🎽 running shirt play pageant +🎿 skis sports winter cold snow +🛷 sled sleigh luge toboggan +🥌 curling stone sports +🎯 direct hit game play bar target bullseye +🪀 yo yo toy +🪁 kite wind fly +🎱 pool 8 ball pool hobby game luck magic +🔮 crystal ball disco party magic circus fortune teller +🧿 nazar amulet bead charm +🎮 video game play console PS4 controller +🕹️ joystick game play +🎰 slot machine bet gamble vegas fruit machine luck casino +🎲 game die dice random tabletop play luck +🧩 puzzle piece interlocking puzzle piece +🧸 teddy bear plush stuffed +♠️ spade suit poker cards suits magic +♥️ heart suit poker cards magic suits +♦️ diamond suit poker cards magic suits +♣️ club suit poker cards magic suits +♟️ chess pawn expendable +🃏 joker poker cards game play magic +🀄 mahjong red dragon game play chinese kanji +🎴 flower playing cards game sunset red +🎭 performing arts acting theater drama +🖼️ framed picture photography +🎨 artist palette design paint draw colors +🧵 thread needle sewing spool string +🧶 yarn ball crochet knit +👓 glasses fashion accessories eyesight nerdy dork geek +🕶️ sunglasses face cool accessories +🥽 goggles eyes protection safety +🥼 lab coat doctor experiment scientist chemist +🦺 safety vest protection +👔 necktie shirt suitup formal fashion cloth business +👕 t shirt fashion cloth casual shirt tee +👖 jeans fashion shopping +🧣 scarf neck winter clothes +🧤 gloves hands winter clothes +🧥 coat jacket +🧦 socks stockings clothes +👗 dress clothes fashion shopping +👘 kimono dress fashion women female japanese +🥻 sari dress +🩱 one piece swimsuit fashion +🩲 briefs clothing +🩳 shorts clothing +👙 bikini swimming female woman girl fashion beach summer +👚 woman s clothes fashion shopping bags female +👛 purse fashion accessories money sales shopping +👜 handbag fashion accessory accessories shopping +👝 clutch bag bag accessories shopping +🛍️ shopping bags mall buy purchase +🎒 backpack student education bag backpack +👞 man s shoe fashion male +👟 running shoe shoes sports sneakers +🥾 hiking boot backpacking camping hiking +🥿 flat shoe ballet slip-on slipper +👠 high heeled shoe fashion shoes female pumps stiletto +👡 woman s sandal shoes fashion flip flops +🩰 ballet shoes dance +👢 woman s boot shoes fashion +👑 crown king kod leader royalty lord +👒 woman s hat fashion accessories female lady spring +🎩 top hat magic gentleman classy circus +🎓 graduation cap school college degree university graduation cap hat legal learn education +🧢 billed cap cap baseball +⛑️ rescue worker s helmet construction build +📿 prayer beads dhikr religious +💄 lipstick female girl fashion woman +💍 ring wedding propose marriage valentines diamond fashion jewelry gem engagement +💎 gem stone blue ruby diamond jewelry +🔇 muted speaker sound volume silence quiet +🔈 speaker low volume sound volume silence broadcast +🔉 speaker medium volume volume speaker broadcast +🔊 speaker high volume volume noise noisy speaker broadcast +📢 loudspeaker volume sound +📣 megaphone sound speaker volume +📯 postal horn instrument music +🔔 bell sound notification christmas xmas chime +🔕 bell with slash sound volume mute quiet silent +🎼 musical score treble clef compose +🎵 musical note score tone sound +🎶 musical notes music score +🎙️ studio microphone sing recording artist talkshow +🎚️ level slider scale +🎛️ control knobs dial +🎤 microphone sound music PA sing talkshow +🎧 headphone music score gadgets +📻 radio communication music podcast program +🎷 saxophone music instrument jazz blues +🎸 guitar music instrument +🎹 musical keyboard piano instrument compose +🎺 trumpet music brass +🎻 violin music instrument orchestra symphony +🪕 banjo music instructment +🥁 drum music instrument drumsticks snare +📱 mobile phone technology apple gadgets dial +📲 mobile phone with arrow iphone incoming +☎️ telephone technology communication dial telephone +📞 telephone receiver technology communication dial +📟 pager bbcall oldschool 90s +📠 fax machine communication technology +🔋 battery power energy sustain +🔌 electric plug charger power +💻 laptop technology laptop screen display monitor +🖥️ desktop computer technology computing screen +🖨️ printer paper ink +⌨️ keyboard technology computer type input text +🖱️ computer mouse click +🖲️ trackball technology trackpad +💽 computer disk technology record data disk 90s +💾 floppy disk oldschool technology save 90s 80s +💿 optical disk technology dvd disk disc 90s +📀 dvd cd disk disc +🧮 abacus calculation +🎥 movie camera film record +🎞️ film frames movie +📽️ film projector video tape record movie +🎬 clapper board movie film record +📺 television technology program oldschool show television +📷 camera gadgets photography +📸 camera with flash photography gadgets +📹 video camera film record +📼 videocassette record video oldschool 90s 80s +🔍 magnifying glass tilted left search zoom find detective +🔎 magnifying glass tilted right search zoom find detective +🕯️ candle fire wax +💡 light bulb light electricity idea +🔦 flashlight dark camping sight night +🏮 red paper lantern light paper halloween spooky +🪔 diya lamp lighting +📔 notebook with decorative cover classroom notes record paper study +📕 closed book read library knowledge textbook learn +📖 open book book read library knowledge literature learn study +📗 green book read library knowledge study +📘 blue book read library knowledge learn study +📙 orange book read library knowledge textbook study +📚 books literature library study +📓 notebook stationery record notes paper study +📒 ledger notes paper +📃 page with curl documents office paper +📜 scroll documents ancient history paper +📄 page facing up documents office paper information +📰 newspaper press headline +🗞️ rolled up newspaper press headline +📑 bookmark tabs favorite save order tidy +🔖 bookmark favorite label save +🏷️ label sale tag +💰 money bag dollar payment coins sale +💴 yen banknote money sales japanese dollar currency +💵 dollar banknote money sales bill currency +💶 euro banknote money sales dollar currency +💷 pound banknote british sterling money sales bills uk england currency +💸 money with wings dollar bills payment sale +💳 credit card money sales dollar bill payment shopping +🧾 receipt accounting expenses +💹 chart increasing with yen green-square graph presentation stats +💱 currency exchange money sales dollar travel +💲 heavy dollar sign money sales payment currency buck +✉️ envelope letter postal inbox communication +📧 e mail communication inbox +📨 incoming envelope email inbox +📩 envelope with arrow email communication +📤 outbox tray inbox email +📥 inbox tray email documents +📦 package mail gift cardboard box moving +📫 closed mailbox with raised flag email inbox communication +📪 closed mailbox with lowered flag email communication inbox +📬 open mailbox with raised flag email inbox communication +📭 open mailbox with lowered flag email inbox +📮 postbox email letter envelope +🗳️ ballot box with ballot election vote +✏️ pencil stationery write paper writing school study +✒️ black nib pen stationery writing write +🖋️ fountain pen stationery writing write +🖊️ pen stationery writing write +🖌️ paintbrush drawing creativity art +🖍️ crayon drawing creativity +📝 memo write documents stationery pencil paper writing legal exam quiz test study compose +💼 briefcase business documents work law legal job career +📁 file folder documents business office +📂 open file folder documents load +🗂️ card index dividers organizing business stationery +📅 calendar calendar schedule +📆 tear off calendar schedule date planning +🗒️ spiral notepad memo stationery +🗓️ spiral calendar date schedule planning +📇 card index business stationery +📈 chart increasing graph presentation stats recovery business economics money sales good success +📉 chart decreasing graph presentation stats recession business economics money sales bad failure +📊 bar chart graph presentation stats +📋 clipboard stationery documents +📌 pushpin stationery mark here +📍 round pushpin stationery location map here +📎 paperclip documents stationery +🖇️ linked paperclips documents stationery +📏 straight ruler stationery calculate length math school drawing architect sketch +📐 triangular ruler stationery math architect sketch +✂️ scissors stationery cut +🗃️ card file box business stationery +🗄️ file cabinet filing organizing +🗑️ wastebasket bin trash rubbish garbage toss +🔒 locked security password padlock +🔓 unlocked privacy security +🔏 locked with pen security secret +🔐 locked with key security privacy +🔑 key lock door password +🗝️ old key lock door password +🔨 hammer tools build create +🪓 axe tool chop cut +⛏️ pick tools dig +⚒️ hammer and pick tools build create +🛠️ hammer and wrench tools build create +🗡️ dagger weapon +⚔️ crossed swords weapon +🔫 pistol violence weapon pistol revolver +🏹 bow and arrow sports +🛡️ shield protection security +🔧 wrench tools diy ikea fix maintainer +🔩 nut and bolt handy tools fix +⚙️ gear cog +🗜️ clamp tool +⚖️ balance scale law fairness weight +🦯 probing cane accessibility +🔗 link rings url +⛓️ chains lock arrest +🧰 toolbox tools diy fix maintainer mechanic +🧲 magnet attraction magnetic +⚗️ alembic distilling science experiment chemistry +🧪 test tube chemistry experiment lab science +🧫 petri dish bacteria biology culture lab +🧬 dna biologist genetics life +🔬 microscope laboratory experiment zoomin science study +🔭 telescope stars space zoom science astronomy +📡 satellite antenna communication future radio space +💉 syringe health hospital drugs blood medicine needle doctor nurse +🩸 drop of blood period hurt harm wound +💊 pill health medicine doctor pharmacy drug +🩹 adhesive bandage heal +🩺 stethoscope health +🚪 door house entry exit +🛏️ bed sleep rest +🛋️ couch and lamp read chill +🪑 chair sit furniture +🚽 toilet restroom wc washroom bathroom potty +🚿 shower clean water bathroom +🛁 bathtub clean shower bathroom +🪒 razor cut +🧴 lotion bottle moisturizer sunscreen +🧷 safety pin diaper +🧹 broom cleaning sweeping witch +🧺 basket laundry +🧻 roll of paper roll +🧼 soap bar bathing cleaning lather +🧽 sponge absorbing cleaning porous +🧯 fire extinguisher quench +🛒 shopping cart trolley +🚬 cigarette kills tobacco cigarette joint smoke +⚰️ coffin vampire dead die death rip graveyard cemetery casket funeral box +⚱️ funeral urn dead die death rip ashes +🗿 moai rock easter island moai +🏧 atm sign money sales cash blue-square payment bank +🚮 litter in bin sign blue-square sign human info +🚰 potable water blue-square liquid restroom cleaning faucet +♿ wheelchair symbol blue-square disabled accessibility +🚹 men s room toilet restroom wc blue-square gender male +🚺 women s room purple-square woman female toilet loo restroom gender +🚻 restroom blue-square toilet refresh wc gender +🚼 baby symbol orange-square child +🚾 water closet toilet restroom blue-square +🛂 passport control custom blue-square +🛃 customs passport border blue-square +🛄 baggage claim blue-square airport transport +🛅 left luggage blue-square travel +⚠️ warning exclamation wip alert error problem issue +🚸 children crossing school warning danger sign driving yellow-diamond +⛔ no entry limit security privacy bad denied stop circle +🚫 prohibited forbid stop limit denied disallow circle +🚳 no bicycles cyclist prohibited circle +🚭 no smoking cigarette blue-square smell smoke +🚯 no littering trash bin garbage circle +🚱 non potable water drink faucet tap circle +🚷 no pedestrians rules crossing walking circle +📵 no mobile phones iphone mute circle +🔞 no one under eighteen 18 drink pub night minor circle +☢️ radioactive nuclear danger +☣️ biohazard danger +⬆️ up arrow blue-square continue top direction +↗️ up right arrow blue-square point direction diagonal northeast +➡️ right arrow blue-square next +↘️ down right arrow blue-square direction diagonal southeast +⬇️ down arrow blue-square direction bottom +↙️ down left arrow blue-square direction diagonal southwest +⬅️ left arrow blue-square previous back +↖️ up left arrow blue-square point direction diagonal northwest +↕️ up down arrow blue-square direction way vertical +↔️ left right arrow shape direction horizontal sideways +↩️ right arrow curving left back return blue-square undo enter +↪️ left arrow curving right blue-square return rotate direction +⤴️ right arrow curving up blue-square direction top +⤵️ right arrow curving down blue-square direction bottom +🔃 clockwise vertical arrows sync cycle round repeat +🔄 counterclockwise arrows button blue-square sync cycle +🔙 back arrow arrow words return +🔚 end arrow words arrow +🔛 on arrow arrow words +🔜 soon arrow arrow words +🔝 top arrow words blue-square +🛐 place of worship religion church temple prayer +⚛️ atom symbol science physics chemistry +🕉️ om hinduism buddhism sikhism jainism +✡️ star of david judaism +☸️ wheel of dharma hinduism buddhism sikhism jainism +☯️ yin yang balance +✝️ latin cross christianity +☦️ orthodox cross suppedaneum religion +☪️ star and crescent islam +☮️ peace symbol hippie +🕎 menorah hanukkah candles jewish +🔯 dotted six pointed star purple-square religion jewish hexagram +♈ aries sign purple-square zodiac astrology +♉ taurus purple-square sign zodiac astrology +♊ gemini sign zodiac purple-square astrology +♋ cancer sign zodiac purple-square astrology +♌ leo sign purple-square zodiac astrology +♍ virgo sign zodiac purple-square astrology +♎ libra sign purple-square zodiac astrology +♏ scorpio sign zodiac purple-square astrology scorpio +♐ sagittarius sign zodiac purple-square astrology +♑ capricorn sign zodiac purple-square astrology +♒ aquarius sign purple-square zodiac astrology +♓ pisces purple-square sign zodiac astrology +⛎ ophiuchus sign purple-square constellation astrology +🔀 shuffle tracks button blue-square shuffle music random +🔁 repeat button loop record +🔂 repeat single button blue-square loop +▶️ play button blue-square right direction play +⏩ fast forward button blue-square play speed continue +⏭️ next track button forward next blue-square +⏯️ play or pause button blue-square play pause +◀️ reverse button blue-square left direction +⏪ fast reverse button play blue-square +⏮️ last track button backward +🔼 upwards button blue-square triangle direction point forward top +⏫ fast up button blue-square direction top +🔽 downwards button blue-square direction bottom +⏬ fast down button blue-square direction bottom +⏸️ pause button pause blue-square +⏹️ stop button blue-square +⏺️ record button blue-square +⏏️ eject button blue-square +🎦 cinema blue-square record film movie curtain stage theater +🔅 dim button sun afternoon warm summer +🔆 bright button sun light +📶 antenna bars blue-square reception phone internet connection wifi bluetooth bars +📳 vibration mode orange-square phone +📴 mobile phone off mute orange-square silence quiet +♀️ female sign woman women lady girl +♂️ male sign man boy men +⚕️ medical symbol health hospital +♾️ infinity forever +♻️ recycling symbol arrow environment garbage trash +⚜️ fleur de lis decorative scout +🔱 trident emblem weapon spear +📛 name badge fire forbid +🔰 japanese symbol for beginner badge shield +⭕ hollow red circle circle round +✅ check mark button green-square ok agree vote election answer tick +☑️ check box with check ok agree confirm black-square vote election yes tick +✔️ check mark ok nike answer yes tick +✖️ multiplication sign math calculation +❌ cross mark no delete remove cancel red +❎ cross mark button x green-square no deny +➕ plus sign math calculation addition more increase +➖ minus sign math calculation subtract less +➗ division sign divide math calculation +➰ curly loop scribble draw shape squiggle +➿ double curly loop tape cassette +〽️ part alternation mark graph presentation stats business economics bad +✳️ eight spoked asterisk star sparkle green-square +✴️ eight pointed star orange-square shape polygon +❇️ sparkle stars green-square awesome good fireworks +‼️ double exclamation mark exclamation surprise +⁉️ exclamation question mark wat punctuation surprise +❓ question mark doubt confused +❔ white question mark doubts gray huh confused +❕ white exclamation mark surprise punctuation gray wow warning +❗ exclamation mark heavy exclamation mark danger surprise punctuation wow warning +〰️ wavy dash draw line moustache mustache squiggle scribble +©️ copyright ip license circle law legal +®️ registered alphabet circle +™️ trade mark trademark brand law legal +#️⃣ keycap symbol blue-square twitter +*️⃣ keycap star keycap +0️⃣ keycap 0 0 numbers blue-square null +1️⃣ keycap 1 blue-square numbers 1 +2️⃣ keycap 2 numbers 2 prime blue-square +3️⃣ keycap 3 3 numbers prime blue-square +4️⃣ keycap 4 4 numbers blue-square +5️⃣ keycap 5 5 numbers blue-square prime +6️⃣ keycap 6 6 numbers blue-square +7️⃣ keycap 7 7 numbers blue-square prime +8️⃣ keycap 8 8 blue-square numbers +9️⃣ keycap 9 blue-square numbers 9 +🔟 keycap 10 numbers 10 blue-square +🔠 input latin uppercase alphabet words blue-square +🔡 input latin lowercase blue-square alphabet +🔢 input numbers numbers blue-square +🔣 input symbols blue-square music note ampersand percent glyphs characters +🔤 input latin letters blue-square alphabet +🅰️ a button red-square alphabet letter +🆎 ab button red-square alphabet +🅱️ b button red-square alphabet letter +🆑 cl button alphabet words red-square +🆒 cool button words blue-square +🆓 free button blue-square words +ℹ️ information blue-square alphabet letter +🆔 id button purple-square words +Ⓜ️ circled m alphabet blue-circle letter +🆕 new button blue-square words start +🆖 ng button blue-square words shape icon +🅾️ o button alphabet red-square letter +🆗 ok button good agree yes blue-square +🅿️ p button cars blue-square alphabet letter +🆘 sos button help red-square words emergency 911 +🆙 up button blue-square above high +🆚 vs button words orange-square +🈁 japanese here button blue-square here katakana japanese destination +🈂️ japanese service charge button japanese blue-square katakana +🈷️ japanese monthly amount button chinese month moon japanese orange-square kanji +🈶 japanese not free of charge button orange-square chinese have kanji +🈯 japanese reserved button chinese point green-square kanji +🉐 japanese bargain button chinese kanji obtain get circle +🈹 japanese discount button cut divide chinese kanji pink-square +🈚 japanese free of charge button nothing chinese kanji japanese orange-square +🈲 japanese prohibited button kanji japanese chinese forbidden limit restricted red-square +🉑 japanese acceptable button ok good chinese kanji agree yes orange-circle +🈸 japanese application button chinese japanese kanji orange-square +🈴 japanese passing grade button japanese chinese join kanji red-square +🈳 japanese vacancy button kanji japanese chinese empty sky blue-square +㊗️ japanese congratulations button chinese kanji japanese red-circle +㊙️ japanese secret button privacy chinese sshh kanji red-circle +🈺 japanese open for business button japanese opening hours orange-square +🈵 japanese no vacancy button full chinese japanese red-square kanji +🔴 red circle shape error danger +🟠 orange circle round +🟡 yellow circle round +🟢 green circle round +🔵 blue circle shape icon button +🟣 purple circle round +🟤 brown circle round +⚫ black circle shape button round +⚪ white circle shape round +🟥 red square +🟧 orange square +🟨 yellow square +🟩 green square +🟦 blue square +🟪 purple square +🟫 brown square +⬛ black large square shape icon button +⬜ white large square shape icon stone button +◼️ black medium square shape button icon +◻️ white medium square shape stone icon +◾ black medium small square icon shape button +◽ white medium small square shape stone icon button +▪️ black small square shape icon +▫️ white small square shape icon +🔶 large orange diamond shape jewel gem +🔷 large blue diamond shape jewel gem +🔸 small orange diamond shape jewel gem +🔹 small blue diamond shape jewel gem +🔺 red triangle pointed up shape direction up top +🔻 red triangle pointed down shape direction bottom +💠 diamond with a dot jewel blue gem crystal fancy +🔘 radio button input old music circle +🔳 white square button shape input +🔲 black square button shape input frame +🏁 chequered flag contest finishline race gokart +🚩 triangular flag mark milestone place +🎌 crossed flags japanese nation country border +🏴 black flag pirate +🏳️ white flag losing loser lost surrender give up fail +🏳️‍🌈 rainbow flag flag rainbow pride gay lgbt glbt queer homosexual lesbian bisexual transgender +🏴‍☠️ pirate flag skull crossbones flag banner +🇦🇨 flag ascension island +🇦🇩 flag andorra ad flag nation country banner andorra +🇦🇪 flag united arab emirates united arab emirates flag nation country banner united arab emirates +🇦🇫 flag afghanistan af flag nation country banner afghanistan +🇦🇬 flag antigua barbuda antigua barbuda flag nation country banner antigua barbuda +🇦🇮 flag anguilla ai flag nation country banner anguilla +🇦🇱 flag albania al flag nation country banner albania +🇦🇲 flag armenia am flag nation country banner armenia +🇦🇴 flag angola ao flag nation country banner angola +🇦🇶 flag antarctica aq flag nation country banner antarctica +🇦🇷 flag argentina ar flag nation country banner argentina +🇦🇸 flag american samoa american ws flag nation country banner american samoa +🇦🇹 flag austria at flag nation country banner austria +🇦🇺 flag australia au flag nation country banner australia +🇦🇼 flag aruba aw flag nation country banner aruba +🇦🇽 flag aland islands Åland islands flag nation country banner aland islands +🇦🇿 flag azerbaijan az flag nation country banner azerbaijan +🇧🇦 flag bosnia herzegovina bosnia herzegovina flag nation country banner bosnia herzegovina +🇧🇧 flag barbados bb flag nation country banner barbados +🇧🇩 flag bangladesh bd flag nation country banner bangladesh +🇧🇪 flag belgium be flag nation country banner belgium +🇧🇫 flag burkina faso burkina faso flag nation country banner burkina faso +🇧🇬 flag bulgaria bg flag nation country banner bulgaria +🇧🇭 flag bahrain bh flag nation country banner bahrain +🇧🇮 flag burundi bi flag nation country banner burundi +🇧🇯 flag benin bj flag nation country banner benin +🇧🇱 flag st barthelemy saint barthélemy flag nation country banner st barthelemy +🇧🇲 flag bermuda bm flag nation country banner bermuda +🇧🇳 flag brunei bn darussalam flag nation country banner brunei +🇧🇴 flag bolivia bo flag nation country banner bolivia +🇧🇶 flag caribbean netherlands bonaire flag nation country banner caribbean netherlands +🇧🇷 flag brazil br flag nation country banner brazil +🇧🇸 flag bahamas bs flag nation country banner bahamas +🇧🇹 flag bhutan bt flag nation country banner bhutan +🇧🇻 flag bouvet island norway +🇧🇼 flag botswana bw flag nation country banner botswana +🇧🇾 flag belarus by flag nation country banner belarus +🇧🇿 flag belize bz flag nation country banner belize +🇨🇦 flag canada ca flag nation country banner canada +🇨🇨 flag cocos islands cocos keeling islands flag nation country banner cocos islands +🇨🇩 flag congo kinshasa congo democratic republic flag nation country banner congo kinshasa +🇨🇫 flag central african republic central african republic flag nation country banner central african republic +🇨🇬 flag congo brazzaville congo flag nation country banner congo brazzaville +🇨🇭 flag switzerland ch flag nation country banner switzerland +🇨🇮 flag cote d ivoire ivory coast flag nation country banner cote d ivoire +🇨🇰 flag cook islands cook islands flag nation country banner cook islands +🇨🇱 flag chile flag nation country banner chile +🇨🇲 flag cameroon cm flag nation country banner cameroon +🇨🇳 flag china china chinese prc flag country nation banner china +🇨🇴 flag colombia co flag nation country banner colombia +🇨🇵 flag clipperton island +🇨🇷 flag costa rica costa rica flag nation country banner costa rica +🇨🇺 flag cuba cu flag nation country banner cuba +🇨🇻 flag cape verde cabo verde flag nation country banner cape verde +🇨🇼 flag curacao curaçao flag nation country banner curacao +🇨🇽 flag christmas island christmas island flag nation country banner christmas island +🇨🇾 flag cyprus cy flag nation country banner cyprus +🇨🇿 flag czechia cz flag nation country banner czechia +🇩🇪 flag germany german nation flag country banner germany +🇩🇬 flag diego garcia +🇩🇯 flag djibouti dj flag nation country banner djibouti +🇩🇰 flag denmark dk flag nation country banner denmark +🇩🇲 flag dominica dm flag nation country banner dominica +🇩🇴 flag dominican republic dominican republic flag nation country banner dominican republic +🇩🇿 flag algeria dz flag nation country banner algeria +🇪🇦 flag ceuta melilla +🇪🇨 flag ecuador ec flag nation country banner ecuador +🇪🇪 flag estonia ee flag nation country banner estonia +🇪🇬 flag egypt eg flag nation country banner egypt +🇪🇭 flag western sahara western sahara flag nation country banner western sahara +🇪🇷 flag eritrea er flag nation country banner eritrea +🇪🇸 flag spain spain flag nation country banner spain +🇪🇹 flag ethiopia et flag nation country banner ethiopia +🇪🇺 flag european union european union flag banner +🇫🇮 flag finland fi flag nation country banner finland +🇫🇯 flag fiji fj flag nation country banner fiji +🇫🇰 flag falkland islands falkland islands malvinas flag nation country banner falkland islands +🇫🇲 flag micronesia micronesia federated states flag nation country banner micronesia +🇫🇴 flag faroe islands faroe islands flag nation country banner faroe islands +🇫🇷 flag france banner flag nation france french country france +🇬🇦 flag gabon ga flag nation country banner gabon +🇬🇧 flag united kingdom united kingdom great britain northern ireland flag nation country banner british UK english england union jack united kingdom +🇬🇩 flag grenada gd flag nation country banner grenada +🇬🇪 flag georgia ge flag nation country banner georgia +🇬🇫 flag french guiana french guiana flag nation country banner french guiana +🇬🇬 flag guernsey gg flag nation country banner guernsey +🇬🇭 flag ghana gh flag nation country banner ghana +🇬🇮 flag gibraltar gi flag nation country banner gibraltar +🇬🇱 flag greenland gl flag nation country banner greenland +🇬🇲 flag gambia gm flag nation country banner gambia +🇬🇳 flag guinea gn flag nation country banner guinea +🇬🇵 flag guadeloupe gp flag nation country banner guadeloupe +🇬🇶 flag equatorial guinea equatorial gn flag nation country banner equatorial guinea +🇬🇷 flag greece gr flag nation country banner greece +🇬🇸 flag south georgia south sandwich islands south georgia sandwich islands flag nation country banner south georgia south sandwich islands +🇬🇹 flag guatemala gt flag nation country banner guatemala +🇬🇺 flag guam gu flag nation country banner guam +🇬🇼 flag guinea bissau gw bissau flag nation country banner guinea bissau +🇬🇾 flag guyana gy flag nation country banner guyana +🇭🇰 flag hong kong sar china hong kong flag nation country banner hong kong sar china +🇭🇲 flag heard mcdonald islands +🇭🇳 flag honduras hn flag nation country banner honduras +🇭🇷 flag croatia hr flag nation country banner croatia +🇭🇹 flag haiti ht flag nation country banner haiti +🇭🇺 flag hungary hu flag nation country banner hungary +🇮🇨 flag canary islands canary islands flag nation country banner canary islands +🇮🇩 flag indonesia flag nation country banner indonesia +🇮🇪 flag ireland ie flag nation country banner ireland +🇮🇱 flag israel il flag nation country banner israel +🇮🇲 flag isle of man isle man flag nation country banner isle of man +🇮🇳 flag india in flag nation country banner india +🇮🇴 flag british indian ocean territory british indian ocean territory flag nation country banner british indian ocean territory +🇮🇶 flag iraq iq flag nation country banner iraq +🇮🇷 flag iran iran islamic republic flag nation country banner iran +🇮🇸 flag iceland is flag nation country banner iceland +🇮🇹 flag italy italy flag nation country banner italy +🇯🇪 flag jersey je flag nation country banner jersey +🇯🇲 flag jamaica jm flag nation country banner jamaica +🇯🇴 flag jordan jo flag nation country banner jordan +🇯🇵 flag japan japanese nation flag country banner japan +🇰🇪 flag kenya ke flag nation country banner kenya +🇰🇬 flag kyrgyzstan kg flag nation country banner kyrgyzstan +🇰🇭 flag cambodia kh flag nation country banner cambodia +🇰🇮 flag kiribati ki flag nation country banner kiribati +🇰🇲 flag comoros km flag nation country banner comoros +🇰🇳 flag st kitts nevis saint kitts nevis flag nation country banner st kitts nevis +🇰🇵 flag north korea north korea nation flag country banner north korea +🇰🇷 flag south korea south korea nation flag country banner south korea +🇰🇼 flag kuwait kw flag nation country banner kuwait +🇰🇾 flag cayman islands cayman islands flag nation country banner cayman islands +🇰🇿 flag kazakhstan kz flag nation country banner kazakhstan +🇱🇦 flag laos lao democratic republic flag nation country banner laos +🇱🇧 flag lebanon lb flag nation country banner lebanon +🇱🇨 flag st lucia saint lucia flag nation country banner st lucia +🇱🇮 flag liechtenstein li flag nation country banner liechtenstein +🇱🇰 flag sri lanka sri lanka flag nation country banner sri lanka +🇱🇷 flag liberia lr flag nation country banner liberia +🇱🇸 flag lesotho ls flag nation country banner lesotho +🇱🇹 flag lithuania lt flag nation country banner lithuania +🇱🇺 flag luxembourg lu flag nation country banner luxembourg +🇱🇻 flag latvia lv flag nation country banner latvia +🇱🇾 flag libya ly flag nation country banner libya +🇲🇦 flag morocco ma flag nation country banner morocco +🇲🇨 flag monaco mc flag nation country banner monaco +🇲🇩 flag moldova moldova republic flag nation country banner moldova +🇲🇪 flag montenegro me flag nation country banner montenegro +🇲🇫 flag st martin +🇲🇬 flag madagascar mg flag nation country banner madagascar +🇲🇭 flag marshall islands marshall islands flag nation country banner marshall islands +🇲🇰 flag north macedonia macedonia flag nation country banner north macedonia +🇲🇱 flag mali ml flag nation country banner mali +🇲🇲 flag myanmar mm flag nation country banner myanmar +🇲🇳 flag mongolia mn flag nation country banner mongolia +🇲🇴 flag macao sar china macao flag nation country banner macao sar china +🇲🇵 flag northern mariana islands northern mariana islands flag nation country banner northern mariana islands +🇲🇶 flag martinique mq flag nation country banner martinique +🇲🇷 flag mauritania mr flag nation country banner mauritania +🇲🇸 flag montserrat ms flag nation country banner montserrat +🇲🇹 flag malta mt flag nation country banner malta +🇲🇺 flag mauritius mu flag nation country banner mauritius +🇲🇻 flag maldives mv flag nation country banner maldives +🇲🇼 flag malawi mw flag nation country banner malawi +🇲🇽 flag mexico mx flag nation country banner mexico +🇲🇾 flag malaysia my flag nation country banner malaysia +🇲🇿 flag mozambique mz flag nation country banner mozambique +🇳🇦 flag namibia na flag nation country banner namibia +🇳🇨 flag new caledonia new caledonia flag nation country banner new caledonia +🇳🇪 flag niger ne flag nation country banner niger +🇳🇫 flag norfolk island norfolk island flag nation country banner norfolk island +🇳🇬 flag nigeria flag nation country banner nigeria +🇳🇮 flag nicaragua ni flag nation country banner nicaragua +🇳🇱 flag netherlands nl flag nation country banner netherlands +🇳🇴 flag norway no flag nation country banner norway +🇳🇵 flag nepal np flag nation country banner nepal +🇳🇷 flag nauru nr flag nation country banner nauru +🇳🇺 flag niue nu flag nation country banner niue +🇳🇿 flag new zealand new zealand flag nation country banner new zealand +🇴🇲 flag oman om symbol flag nation country banner oman +🇵🇦 flag panama pa flag nation country banner panama +🇵🇪 flag peru pe flag nation country banner peru +🇵🇫 flag french polynesia french polynesia flag nation country banner french polynesia +🇵🇬 flag papua new guinea papua new guinea flag nation country banner papua new guinea +🇵🇭 flag philippines ph flag nation country banner philippines +🇵🇰 flag pakistan pk flag nation country banner pakistan +🇵🇱 flag poland pl flag nation country banner poland +🇵🇲 flag st pierre miquelon saint pierre miquelon flag nation country banner st pierre miquelon +🇵🇳 flag pitcairn islands pitcairn flag nation country banner pitcairn islands +🇵🇷 flag puerto rico puerto rico flag nation country banner puerto rico +🇵🇸 flag palestinian territories palestine palestinian territories flag nation country banner palestinian territories +🇵🇹 flag portugal pt flag nation country banner portugal +🇵🇼 flag palau pw flag nation country banner palau +🇵🇾 flag paraguay py flag nation country banner paraguay +🇶🇦 flag qatar qa flag nation country banner qatar +🇷🇪 flag reunion réunion flag nation country banner reunion +🇷🇴 flag romania ro flag nation country banner romania +🇷🇸 flag serbia rs flag nation country banner serbia +🇷🇺 flag russia russian federation flag nation country banner russia +🇷🇼 flag rwanda rw flag nation country banner rwanda +🇸🇦 flag saudi arabia flag nation country banner saudi arabia +🇸🇧 flag solomon islands solomon islands flag nation country banner solomon islands +🇸🇨 flag seychelles sc flag nation country banner seychelles +🇸🇩 flag sudan sd flag nation country banner sudan +🇸🇪 flag sweden se flag nation country banner sweden +🇸🇬 flag singapore sg flag nation country banner singapore +🇸🇭 flag st helena saint helena ascension tristan cunha flag nation country banner st helena +🇸🇮 flag slovenia si flag nation country banner slovenia +🇸🇯 flag svalbard jan mayen +🇸🇰 flag slovakia sk flag nation country banner slovakia +🇸🇱 flag sierra leone sierra leone flag nation country banner sierra leone +🇸🇲 flag san marino san marino flag nation country banner san marino +🇸🇳 flag senegal sn flag nation country banner senegal +🇸🇴 flag somalia so flag nation country banner somalia +🇸🇷 flag suriname sr flag nation country banner suriname +🇸🇸 flag south sudan south sd flag nation country banner south sudan +🇸🇹 flag sao tome principe sao tome principe flag nation country banner sao tome principe +🇸🇻 flag el salvador el salvador flag nation country banner el salvador +🇸🇽 flag sint maarten sint maarten dutch flag nation country banner sint maarten +🇸🇾 flag syria syrian arab republic flag nation country banner syria +🇸🇿 flag eswatini sz flag nation country banner eswatini +🇹🇦 flag tristan da cunha +🇹🇨 flag turks caicos islands turks caicos islands flag nation country banner turks caicos islands +🇹🇩 flag chad td flag nation country banner chad +🇹🇫 flag french southern territories french southern territories flag nation country banner french southern territories +🇹🇬 flag togo tg flag nation country banner togo +🇹🇭 flag thailand th flag nation country banner thailand +🇹🇯 flag tajikistan tj flag nation country banner tajikistan +🇹🇰 flag tokelau tk flag nation country banner tokelau +🇹🇱 flag timor leste timor leste flag nation country banner timor leste +🇹🇲 flag turkmenistan flag nation country banner turkmenistan +🇹🇳 flag tunisia tn flag nation country banner tunisia +🇹🇴 flag tonga to flag nation country banner tonga +🇹🇷 flag turkey turkey flag nation country banner turkey +🇹🇹 flag trinidad tobago trinidad tobago flag nation country banner trinidad tobago +🇹🇻 flag tuvalu flag nation country banner tuvalu +🇹🇼 flag taiwan tw flag nation country banner taiwan +🇹🇿 flag tanzania tanzania united republic flag nation country banner tanzania +🇺🇦 flag ukraine ua flag nation country banner ukraine +🇺🇬 flag uganda ug flag nation country banner uganda +🇺🇲 flag u s outlying islands +🇺🇳 flag united nations un flag banner +🇺🇸 flag united states united states america flag nation country banner united states +🇺🇾 flag uruguay uy flag nation country banner uruguay +🇺🇿 flag uzbekistan uz flag nation country banner uzbekistan +🇻🇦 flag vatican city vatican city flag nation country banner vatican city +🇻🇨 flag st vincent grenadines saint vincent grenadines flag nation country banner st vincent grenadines +🇻🇪 flag venezuela ve bolivarian republic flag nation country banner venezuela +🇻🇬 flag british virgin islands british virgin islands bvi flag nation country banner british virgin islands +🇻🇮 flag u s virgin islands virgin islands us flag nation country banner u s virgin islands +🇻🇳 flag vietnam viet nam flag nation country banner vietnam +🇻🇺 flag vanuatu vu flag nation country banner vanuatu +🇼🇫 flag wallis futuna wallis futuna flag nation country banner wallis futuna +🇼🇸 flag samoa ws flag nation country banner samoa +🇽🇰 flag kosovo xk flag nation country banner kosovo +🇾🇪 flag yemen ye flag nation country banner yemen +🇾🇹 flag mayotte yt flag nation country banner mayotte +🇿🇦 flag south africa south africa flag nation country banner south africa +🇿🇲 flag zambia zm flag nation country banner zambia +🇿🇼 flag zimbabwe zw flag nation country banner zimbabwe +🏴󠁧󠁢󠁥󠁮󠁧󠁿 flag england flag english +🏴󠁧󠁢󠁳󠁣󠁴󠁿 flag scotland flag scottish +🏴󠁧󠁢󠁷󠁬󠁳󠁿 flag wales flag welsh +🥲 smiling face with tear sad cry pretend +🥸 disguised face pretent brows glasses moustache +🤌 pinched fingers size tiny small +🫀 anatomical heart health heartbeat +🫁 lungs breathe +🥷 ninja ninjutsu skills japanese +🤵‍♂️ man in tuxedo formal fashion +🤵‍♀️ woman in tuxedo formal fashion +👰‍♂️ man with veil wedding marriage +👰‍♀️ woman with veil wedding marriage +👩‍🍼 woman feeding baby birth food +👨‍🍼 man feeding baby birth food +🧑‍🍼 person feeding baby birth food +🧑‍🎄 mx claus christmas +🫂 people hugging care +🐈‍⬛ black cat superstition luck +🦬 bison ox +🦣 mammoth elephant tusks +🦫 beaver animal rodent +🐻‍❄️ polar bear animal arctic +🦤 dodo animal bird +🪶 feather bird fly +🦭 seal animal creature sea +🪲 beetle insect +🪳 cockroach insect pests +🪰 fly insect +🪱 worm animal +🪴 potted plant greenery house +🫐 blueberries fruit +🫒 olive fruit +🫑 bell pepper fruit plant +🫓 flatbread flour food +🫔 tamale food masa +🫕 fondue cheese pot food +🫖 teapot drink hot +🧋 bubble tea taiwan boba milk tea straw +🪨 rock stone +🪵 wood nature timber trunk +🛖 hut house structure +🛻 pickup truck car transportation +🛼 roller skate footwear sports +🪄 magic wand supernature power +🪅 pinata mexico candy celebration +🪆 nesting dolls matryoshka toy +🪡 sewing needle stitches +🪢 knot rope scout +🩴 thong sandal footwear summer +🪖 military helmet army protection +🪗 accordion music +🪘 long drum music +🪙 coin money currency +🪃 boomerang weapon +🪚 carpentry saw cut chop +🪛 screwdriver tools +🪝 hook tools +🪜 ladder tools +🛗 elevator lift +🪞 mirror reflection +🪟 window scenery +🪠 plunger toilet +🪤 mouse trap cheese +🪣 bucket water container +🪥 toothbrush hygiene dental +🪦 headstone death rip grave +🪧 placard announcement +⚧️ transgender symbol lgbtq +🏳️‍⚧️ transgender flag lgbtq +😶‍🌫️ face in clouds shower steam dream +😮‍💨 face exhaling relieve relief tired sigh +😵‍💫 face with spiral eyes sick ill confused nauseous nausea +❤️‍🔥 heart on fire passionate enthusiastic +❤️‍🩹 mending heart broken heart bandage wounded +🧔‍♂️ man beard facial hair +🧔‍♀️ woman beard facial hair +🫠 melting face hot heat +🫢 face with open eyes and hand over mouth silence secret shock surprise +🫣 face with peeking eye scared frightening embarrassing +🫡 saluting face respect salute +🫥 dotted line face invisible lonely isolation depression +🫤 face with diagonal mouth skeptic confuse frustrated indifferent +🥹 face holding back tears touched gratitude +🫱 rightwards hand palm offer +🫲 leftwards hand palm offer +🫳 palm down hand palm drop +🫴 palm up hand lift offer demand +🫰 hand with index finger and thumb crossed heart love money expensive +🫵 index pointing at the viewer you recruit +🫶 heart hands love appreciation support +🫦 biting lip flirt sexy pain worry +🫅 person with crown royalty power +🫃 pregnant man baby belly +🫄 pregnant person baby belly +🧌 troll mystical monster +🪸 coral ocean sea reef +🪷 lotus flower calm meditation +🪹 empty nest bird +🪺 nest with eggs bird +🫘 beans food +🫗 pouring liquid cup water +🫙 jar container sauce +🛝 playground slide fun park +🛞 wheel car transport +🛟 ring buoy life saver life preserver +🪬 hamsa religion protection +🪩 mirror ball disco dance party +🪫 low battery drained dead +🩼 crutch accessibility assist +🩻 x-ray skeleton medicine +🫧 bubbles soap fun carbonation sparkling +🪪 identification card document +🟰 heavy equals sign math +( ͡° ͜ʖ ͡°) lenny face that face diff --git a/config/hypr/scripts/WofiPower.sh b/config/hypr/scripts/WofiPower.sh new file mode 100755 index 0000000..74f5f10 --- /dev/null +++ b/config/hypr/scripts/WofiPower.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +# WOFI STYLES +CONFIG="$HOME/.config/wofi/WofiBig/config" +STYLE="$HOME/.config/wofi/style.css" +COLORS="$HOME/.config/wofi/colors" + +# Wofi window config (in %) +WOFI_WIDTH=28 +WOFI_HEIGHT=8 + +wofi_command="wofi --show dmenu \ + --prompt choose... \ + --conf $CONFIG --style $STYLE --color $COLORS \ + --width=$WOFI_WIDTH% --height=$WOFI_HEIGHT% \ + --cache-file=/dev/null \ + --hide-scroll --no-actions \ + --matching=fuzzy" + +entries=$(echo -e " Poweroff\n Reboot\n Suspend\n Lock\n Logout" | $wofi_command -i --dmenu | awk '{print tolower($2)}') + +case $entries in + poweroff|reboot|suspend) + systemctl $entries + ;; + lock) + $HOME/.config/hypr/scripts/LockScreen.sh + ;; + logout) + hyprctl dispatch exit 0 + ;; +esac + \ No newline at end of file diff --git a/config/hypr/themes/frappe.conf b/config/hypr/themes/frappe.conf new file mode 100644 index 0000000..e07e4d3 --- /dev/null +++ b/config/hypr/themes/frappe.conf @@ -0,0 +1,61 @@ +$rosewaterAlpha = fff5e0dc +$flamingoAlpha = fff2cdcd +$pinkAlpha = fff5c2e7 +$mauveAlpha = ffcba6f7 +$redAlpha = fff38ba8 +$maroonAlpha = ffeba0ac +$peachAlpha = fffab387 +$yellowAlpha = fff9e2af +$greenAlpha = ffa6e3a1 +$tealAlpha = ff94e2d5 +$skyAlpha = ff89dceb +$sapphireAlpha = ff74c7ec +$blueAlpha = ff89b4fa +$lavenderAlpha = ffb4befe + +$textAlpha = ffcdd6f4 +$subtext1Alpha = ffbac2de +$subtext0Alpha = ffa6adc8 + +$overlay2Alpha = ff9399b2 +$overlay1Alpha = ff7f849c +$overlay0Alpha = ff6c7086 + +$surface2Alpha = ff585b70 +$surface1Alpha = ff45475a +$surface0Alpha = ff313244 + +$baseAlpha = ff1e1e2e +$mantleAlpha = ff181825 +$crustAlpha = ff11111b + +$rosewater = 0xfff5e0dc +$flamingo = 0xfff2cdcd +$pink = 0xfff5c2e7 +$mauve = 0xffcba6f7 +$red = 0xfff38ba8 +$maroon = 0xffeba0ac +$peach = 0xfffab387 +$yellow = 0xfff9e2af +$green = 0xffa6e3a1 +$teal = 0xff94e2d5 +$sky = 0xff89dceb +$sapphire = 0xff74c7ec +$blue = 0xff89b4fa +$lavender = 0xffb4befe + +$text = 0xffcdd6f4 +$subtext1 = 0xffbac2de +$subtext0 = 0xffa6adc8 + +$overlay2 = 0xff9399b2 +$overlay1 = 0xff7f849c +$overlay0 = 0xff6c7086 + +$surface2 = 0xff585b70 +$surface1 = 0xff45475a +$surface0 = 0xff313244 + +$base = 0xff1e1e2e +$mantle = 0xff181825 +$crust = 0xff11111b diff --git a/config/hypr/themes/latte.conf b/config/hypr/themes/latte.conf new file mode 100644 index 0000000..e07e4d3 --- /dev/null +++ b/config/hypr/themes/latte.conf @@ -0,0 +1,61 @@ +$rosewaterAlpha = fff5e0dc +$flamingoAlpha = fff2cdcd +$pinkAlpha = fff5c2e7 +$mauveAlpha = ffcba6f7 +$redAlpha = fff38ba8 +$maroonAlpha = ffeba0ac +$peachAlpha = fffab387 +$yellowAlpha = fff9e2af +$greenAlpha = ffa6e3a1 +$tealAlpha = ff94e2d5 +$skyAlpha = ff89dceb +$sapphireAlpha = ff74c7ec +$blueAlpha = ff89b4fa +$lavenderAlpha = ffb4befe + +$textAlpha = ffcdd6f4 +$subtext1Alpha = ffbac2de +$subtext0Alpha = ffa6adc8 + +$overlay2Alpha = ff9399b2 +$overlay1Alpha = ff7f849c +$overlay0Alpha = ff6c7086 + +$surface2Alpha = ff585b70 +$surface1Alpha = ff45475a +$surface0Alpha = ff313244 + +$baseAlpha = ff1e1e2e +$mantleAlpha = ff181825 +$crustAlpha = ff11111b + +$rosewater = 0xfff5e0dc +$flamingo = 0xfff2cdcd +$pink = 0xfff5c2e7 +$mauve = 0xffcba6f7 +$red = 0xfff38ba8 +$maroon = 0xffeba0ac +$peach = 0xfffab387 +$yellow = 0xfff9e2af +$green = 0xffa6e3a1 +$teal = 0xff94e2d5 +$sky = 0xff89dceb +$sapphire = 0xff74c7ec +$blue = 0xff89b4fa +$lavender = 0xffb4befe + +$text = 0xffcdd6f4 +$subtext1 = 0xffbac2de +$subtext0 = 0xffa6adc8 + +$overlay2 = 0xff9399b2 +$overlay1 = 0xff7f849c +$overlay0 = 0xff6c7086 + +$surface2 = 0xff585b70 +$surface1 = 0xff45475a +$surface0 = 0xff313244 + +$base = 0xff1e1e2e +$mantle = 0xff181825 +$crust = 0xff11111b diff --git a/config/hypr/themes/macchiato.conf b/config/hypr/themes/macchiato.conf new file mode 100644 index 0000000..e07e4d3 --- /dev/null +++ b/config/hypr/themes/macchiato.conf @@ -0,0 +1,61 @@ +$rosewaterAlpha = fff5e0dc +$flamingoAlpha = fff2cdcd +$pinkAlpha = fff5c2e7 +$mauveAlpha = ffcba6f7 +$redAlpha = fff38ba8 +$maroonAlpha = ffeba0ac +$peachAlpha = fffab387 +$yellowAlpha = fff9e2af +$greenAlpha = ffa6e3a1 +$tealAlpha = ff94e2d5 +$skyAlpha = ff89dceb +$sapphireAlpha = ff74c7ec +$blueAlpha = ff89b4fa +$lavenderAlpha = ffb4befe + +$textAlpha = ffcdd6f4 +$subtext1Alpha = ffbac2de +$subtext0Alpha = ffa6adc8 + +$overlay2Alpha = ff9399b2 +$overlay1Alpha = ff7f849c +$overlay0Alpha = ff6c7086 + +$surface2Alpha = ff585b70 +$surface1Alpha = ff45475a +$surface0Alpha = ff313244 + +$baseAlpha = ff1e1e2e +$mantleAlpha = ff181825 +$crustAlpha = ff11111b + +$rosewater = 0xfff5e0dc +$flamingo = 0xfff2cdcd +$pink = 0xfff5c2e7 +$mauve = 0xffcba6f7 +$red = 0xfff38ba8 +$maroon = 0xffeba0ac +$peach = 0xfffab387 +$yellow = 0xfff9e2af +$green = 0xffa6e3a1 +$teal = 0xff94e2d5 +$sky = 0xff89dceb +$sapphire = 0xff74c7ec +$blue = 0xff89b4fa +$lavender = 0xffb4befe + +$text = 0xffcdd6f4 +$subtext1 = 0xffbac2de +$subtext0 = 0xffa6adc8 + +$overlay2 = 0xff9399b2 +$overlay1 = 0xff7f849c +$overlay0 = 0xff6c7086 + +$surface2 = 0xff585b70 +$surface1 = 0xff45475a +$surface0 = 0xff313244 + +$base = 0xff1e1e2e +$mantle = 0xff181825 +$crust = 0xff11111b diff --git a/config/hypr/themes/mocha.conf b/config/hypr/themes/mocha.conf new file mode 100644 index 0000000..e07e4d3 --- /dev/null +++ b/config/hypr/themes/mocha.conf @@ -0,0 +1,61 @@ +$rosewaterAlpha = fff5e0dc +$flamingoAlpha = fff2cdcd +$pinkAlpha = fff5c2e7 +$mauveAlpha = ffcba6f7 +$redAlpha = fff38ba8 +$maroonAlpha = ffeba0ac +$peachAlpha = fffab387 +$yellowAlpha = fff9e2af +$greenAlpha = ffa6e3a1 +$tealAlpha = ff94e2d5 +$skyAlpha = ff89dceb +$sapphireAlpha = ff74c7ec +$blueAlpha = ff89b4fa +$lavenderAlpha = ffb4befe + +$textAlpha = ffcdd6f4 +$subtext1Alpha = ffbac2de +$subtext0Alpha = ffa6adc8 + +$overlay2Alpha = ff9399b2 +$overlay1Alpha = ff7f849c +$overlay0Alpha = ff6c7086 + +$surface2Alpha = ff585b70 +$surface1Alpha = ff45475a +$surface0Alpha = ff313244 + +$baseAlpha = ff1e1e2e +$mantleAlpha = ff181825 +$crustAlpha = ff11111b + +$rosewater = 0xfff5e0dc +$flamingo = 0xfff2cdcd +$pink = 0xfff5c2e7 +$mauve = 0xffcba6f7 +$red = 0xfff38ba8 +$maroon = 0xffeba0ac +$peach = 0xfffab387 +$yellow = 0xfff9e2af +$green = 0xffa6e3a1 +$teal = 0xff94e2d5 +$sky = 0xff89dceb +$sapphire = 0xff74c7ec +$blue = 0xff89b4fa +$lavender = 0xffb4befe + +$text = 0xffcdd6f4 +$subtext1 = 0xffbac2de +$subtext0 = 0xffa6adc8 + +$overlay2 = 0xff9399b2 +$overlay1 = 0xff7f849c +$overlay0 = 0xff6c7086 + +$surface2 = 0xff585b70 +$surface1 = 0xff45475a +$surface0 = 0xff313244 + +$base = 0xff1e1e2e +$mantle = 0xff181825 +$crust = 0xff11111b diff --git a/config/swappy/config b/config/swappy/config new file mode 100644 index 0000000..45d84e4 --- /dev/null +++ b/config/swappy/config @@ -0,0 +1,9 @@ +[Default] +save_dir=$HOME/Pictures/Screenshots +save_filename_format=swappy-%Y%m%d-%H%M%S.png +show_pannel=false +line_size=5 +text-size=20 +paint_mode=brush +early_exit=false +fill_shape=false \ No newline at end of file diff --git a/config/swaylock/config b/config/swaylock/config new file mode 100644 index 0000000..fd13da9 --- /dev/null +++ b/config/swaylock/config @@ -0,0 +1,44 @@ +daemonize +show-failed-attempts +clock +screenshot +effect-blur=9x5 +effect-vignette=0.5:0.5 +color=1f1d2e80 +font="Inter" +indicator +indicator-radius=200 +indicator-thickness=20 +line-color=1f1d2e +ring-color=191724 +inside-color=1f1d2e +key-hl-color=eb6f92 +separator-color=00000000 +text-color=e0def4 +text-caps-lock-color="" +line-ver-color=eb6f92 +ring-ver-color=eb6f92 +inside-ver-color=1f1d2e +text-ver-color=e0def4 +ring-wrong-color=31748f +text-wrong-color=31748f +inside-wrong-color=1f1d2e +inside-clear-color=1f1d2e +text-clear-color=e0def4 +ring-clear-color=9ccfd8 +line-clear-color=1f1d2e +line-wrong-color=1f1d2e +bs-hl-color=31748f +grace=1 +grace-no-mouse +grace-no-touch +fade-in=0.2 +ignore-empty-password + +# AM/PM formats (American Format) +#datestr=%a, %B %e +#timestr=%I:%M %p + +#24 HRS clock format and standard Europe Date Format +timestr=%H:%M:%S +datestr=%d %B, %a diff --git a/config/waybar/config b/config/waybar/config new file mode 120000 index 0000000..a123131 --- /dev/null +++ b/config/waybar/config @@ -0,0 +1 @@ +/home/ja/00-Shared-Drives/Common-nvme/git-packages - nvme/01-Published/Hyprland-Dots/config/waybar/configs/config-default \ No newline at end of file diff --git a/config/waybar/configs/config-all b/config/waybar/configs/config-all new file mode 100644 index 0000000..61c2c7d --- /dev/null +++ b/config/waybar/configs/config-all @@ -0,0 +1,127 @@ +// ### ALL SIDES ### // + +[{ +// ### TOP PANEL ## + +"include": "~/.config/waybar/modules", +"layer": "top", +//"mode": "dock", +"exclusive": true, +"passthrough": false, +"position": "top", +"spacing": 3, +"fixed-center": true, +"ipc": true, +"padding": 4, +"margin-left": 6, +"margin-right": 10, +"margin-top": 10, + +"modules-left": [ + "cpu", + "temperature", + "memory", + "disk", + ], + +"modules-center": [ + "custom/weather", + "custom/light_dark", + ], + +"modules-right": [ + "battery", + "backlight", + "bluetooth", + "network", + //"custom/updater", + "custom/cycle_wall", + ], +}, + +// ### LEFT PANEL ### // +{ +"include": "~/.config/waybar/modules", +"layer": "top", +"position": "left", +"margin-top": 8, +"margin-bottom": 8, +"margin-left": 8, +"margin-right": 3, +"spacing": 3, +"fixed-center": true, +"ipc": true, +//"gtk-layer-shell": true, + +"modules-left": [ + "custom/menu", + ], + +"modules-center": [ + "hyprland/workspaces", + ], + +"modules-right": [ + "idle_inhibitor", + ], +}, + +// ### RIGHT PANEL ### // +{ +"include": "~/.config/waybar/modules", +"layer": "top", +"position": "right", +"margin-top": 8, +"margin-bottom": 8, +"margin-left": 1, +"margin-right": 8, +"spacing": 3, +"fixed-center": true, +"ipc": true, +"gtk-layer-shell": true, + +"modules-left": [ + "custom/lock", + ], + +"modules-center": [ + "clock#vertical", + ], + +"modules-right": [ + "custom/power", + ], +}, + +// ### BOTTOM PANEL ### // +{ +"include": "~/.config/waybar/modules", +"layer": "top", +"mode": "dock", +"exclusive": true, +"passthrough": false, +"position": "bottom", +"spacing": 3, +"fixed-center": true, +"ipc": true, +"margin-left": 6, +"margin-right": 10, +"margin-bottom": 6, + +"modules-left": [ + "wlr/taskbar", + ], + +"modules-center": [ + "hyprland/window", + ], + +"modules-right": [ + "tray", + "keyboard-state", + "pulseaudio", + //"wireplumber", + "pulseaudio#microphone", + ], + +}] \ No newline at end of file diff --git a/config/waybar/configs/config-default b/config/waybar/configs/config-default new file mode 100644 index 0000000..09c254f --- /dev/null +++ b/config/waybar/configs/config-default @@ -0,0 +1,45 @@ +// ### DEFAULT ### // + +{ +"include": "~/.config/waybar/modules", +"layer": "top", +//"mode": "dock", +"exclusive": true, +"passthrough": false, +"position": "top", +"spacing": 3, +"fixed-center": true, +"ipc": true, +"margin-top": 6, +"margin-left": 8, +"margin-right": 8, + +"modules-left": [ + "hyprland/workspaces", + "cpu", + "temperature", + "memory", + "custom/weather", + ], + +"modules-center": [ + "custom/menu", + "idle_inhibitor", + "clock", + "custom/light_dark", + "custom/lock", + ], + +"modules-right": [ + "hyprland/window", + "tray", + //"cava", + "battery", + "backlight", + "pulseaudio", + //"wireplumber", + "pulseaudio#microphone", + "keyboard-state", + "custom/power", + ], +} diff --git a/config/waybar/configs/config-dual b/config/waybar/configs/config-dual new file mode 100644 index 0000000..fec652a --- /dev/null +++ b/config/waybar/configs/config-dual @@ -0,0 +1,76 @@ +// ### DUAL TOP and BOTTOM ### // + +[{ +"include": "~/.config/waybar/modules", +"layer": "top", +//"mode": "dock", +"exclusive": true, +"passthrough": false, +"position": "top", +"spacing": 3, +"fixed-center": true, +"ipc": true, +"margin-left": 6, +"margin-right": 10, +"margin-top": 10, + +"modules-left": [ + "hyprland/workspaces", + "cpu", + "temperature", + "memory", + "disk", + ], + +"modules-center": [ + "idle_inhibitor", + "clock", + "custom/light_dark", + ], + +"modules-right": [ + "custom/weather", + "battery", + "backlight", + "bluetooth", + "network", + //"custom/updater", + "custom/cycle_wall", + "custom/lock", + ], +}, + +{ +"include": "~/.config/waybar/modules", +"layer": "top", +"mode": "dock", +"exclusive": true, +"passthrough": false, +"position": "bottom", +"spacing": 3, +"fixed-center": true, +"ipc": true, +"margin-left": 6, +"margin-right": 10, +"margin-bottom": 6, + +"modules-left": [ + "custom/menu", + "wlr/taskbar", + ], + +"modules-center": [ + "cava", + ], + +"modules-right": [ + "hyprland/window", + "tray", + "keyboard-state", + "pulseaudio", + //"wireplumber", + "pulseaudio#microphone", + "custom/power", + ], + +}] \ No newline at end of file diff --git a/config/waybar/configs/config-dual-BL b/config/waybar/configs/config-dual-BL new file mode 100644 index 0000000..9540e26 --- /dev/null +++ b/config/waybar/configs/config-dual-BL @@ -0,0 +1,71 @@ +// ### BOTTOM and LEFT PANEL + +[{ +"include": "~/.config/waybar/modules", +"layer": "top", +//"mode": "dock", +"exclusive": true, +"passthrough": false, +"position": "bottom", +"spacing": 2, +"fixed-center": true, +"ipc": true, +"margin-top": 6, +"margin-left": 8, +"margin-right": 8, + +"modules-left": [ + "custom/menu", + "cpu", + "temperature", + "memory", + ], + +"modules-center": [ + "hyprland/window", + "custom/weather", + ], + +"modules-right": [ + "network", + "bluetooth", + //"cava", + "battery", + "backlight", + "pulseaudio", + //"wireplumber", + "pulseaudio#microphone", + "keyboard-state", + "custom/power", + ], +}, + +{ +"include": "~/.config/waybar/modules", +"layer": "top", +"position": "left", +"margin-top": 8, +"margin-bottom": 8, +"margin-left": 8, +"margin-right": 1, +"spacing": 3, +"fixed-center": true, +"ipc": true, +"gtk-layer-shell": true, + +"modules-left": [ + "custom/light_dark", + ], + +"modules-center": [ + "hyprland/workspaces", + ], + +"modules-right": [ + "idle_inhibitor", + "custom/lock", + "tray", + "clock#vertical", + ], + +}] \ No newline at end of file diff --git a/config/waybar/configs/config-dual-BR b/config/waybar/configs/config-dual-BR new file mode 100644 index 0000000..285c235 --- /dev/null +++ b/config/waybar/configs/config-dual-BR @@ -0,0 +1,72 @@ +// ### BOTTOM and RIGHT PANEL + +[{ +"include": "~/.config/waybar/modules", +"layer": "top", +//"mode": "dock", +"exclusive": true, +"passthrough": false, +"position": "bottom", +"spacing": 2, +"fixed-center": true, +"ipc": true, +"margin-top": 6, +"margin-left": 8, +"margin-right": 8, + +"modules-left": [ + "custom/menu", + "cpu", + "temperature", + "memory", + "disk", + ], + +"modules-center": [ + "hyprland/window", + "custom/weather", + ], + +"modules-right": [ + "network", + "bluetooth", + //"cava", + "battery", + "backlight", + "pulseaudio", + //"wireplumber", + "pulseaudio#microphone", + "keyboard-state", + "custom/power", + ], +}, + +{ +"include": "~/.config/waybar/modules", +"layer": "top", +"position": "right", +"margin-top": 8, +"margin-bottom": 8, +"margin-left": 1, +"margin-right": 8, +"spacing": 3, +"fixed-center": true, +"ipc": true, +"gtk-layer-shell": true, + +"modules-left": [ + "idle_inhibitor", + ], + +"modules-center": [ + "hyprland/workspaces", + ], + +"modules-right": [ + "custom/light_dark", + "custom/lock", + "tray", + "clock#vertical", + ], + +}] \ No newline at end of file diff --git a/config/waybar/configs/config-dual-TL b/config/waybar/configs/config-dual-TL new file mode 100644 index 0000000..f7d418d --- /dev/null +++ b/config/waybar/configs/config-dual-TL @@ -0,0 +1,72 @@ +// ### TOP and LEFT PANEL ## // + +[{ +"include": "~/.config/waybar/modules", +"layer": "top", +//"mode": "dock", +"exclusive": true, +"passthrough": false, +"position": "top", +"spacing": 3, +"fixed-center": true, +"ipc": true, +"margin-top": 6, +"margin-left": 8, +"margin-right": 8, + +"modules-left": [ + "custom/menu", + "cpu", + "temperature", + "memory", + "disk", + ], + +"modules-center": [ + "hyprland/window", + "custom/weather", + ], + +"modules-right": [ + "network", + "bluetooth", + "battery", + "backlight", + "pulseaudio", + //"wireplumber", + "pulseaudio#microphone", + "keyboard-state", + "custom/power", + ], +}, + +{ +"include": "~/.config/waybar/modules", +"layer": "top", +"position": "left", +"margin-top": 8, +"margin-bottom": 8, +"margin-left": 8, +"margin-right": 3, +"spacing": 3, +"fixed-center": true, +"ipc": true, +//"gtk-layer-shell": true, + +"modules-left": [ + "idle_inhibitor", + + ], + +"modules-center": [ + "hyprland/workspaces", + ], + +"modules-right": [ + "tray", + "clock#vertical", + "custom/light_dark", + "custom/lock", + ], + +}] \ No newline at end of file diff --git a/config/waybar/configs/config-dual-TR b/config/waybar/configs/config-dual-TR new file mode 100644 index 0000000..fa0cbee --- /dev/null +++ b/config/waybar/configs/config-dual-TR @@ -0,0 +1,72 @@ +// ### TOP and RIGHT PANEL ## // + +[{ +"include": "~/.config/waybar/modules", +"layer": "top", +//"mode": "dock", +"exclusive": true, +"passthrough": false, +"position": "top", +"spacing": 3, +"fixed-center": true, +"ipc": true, +"padding": 2, +"margin-top": 6, +"margin-left": 8, +"margin-right": 8, + +"modules-left": [ + "cpu", + "temperature", + "memory", + ], + +"modules-center": [ + "hyprland/window", + "custom/weather", + ], + +"modules-right": [ + "network", + "bluetooth", + //"cava", + "battery", + "backlight", + "pulseaudio", + //"wireplumber", + "pulseaudio#microphone", + "keyboard-state", + "custom/power", + ], +}, + +{ +"include": "~/.config/waybar/modules", +"layer": "top", +"position": "right", +"margin-top": 8, +"margin-bottom": 8, +"margin-left": 1, +"margin-right": 8, +"spacing": 3, +"fixed-center": true, +"ipc": true, +"gtk-layer-shell": true, + +"modules-left": [ + "custom/menu", + "custom/light_dark", + ], + +"modules-center": [ + "hyprland/workspaces", + ], + +"modules-right": [ + "idle_inhibitor", + "custom/lock", + "tray", + "clock#vertical", + ], + +}] \ No newline at end of file diff --git a/config/waybar/configs/config-gnome b/config/waybar/configs/config-gnome new file mode 100644 index 0000000..4f4affc --- /dev/null +++ b/config/waybar/configs/config-gnome @@ -0,0 +1,46 @@ +// ### "Gnome" style (top) ### // +{ +"include": "~/.config/waybar/modules", +"layer": "top", +//"mode": "dock", +"exclusive": true, +"passthrough": false, +"position": "top", +"spacing": 3, +"fixed-center": true, +"ipc": true, +"margin-left": 10, +"margin-right": 10, +"margin-top": 6, + +"modules-left": [ + "custom/menu", + "hyprland/workspaces", + //"custom/updater", + "hyprland/window", + ], + +"modules-center": [ + "clock", + "custom/light_dark", + "cava", + "custom/weather", + ], + +"modules-right": [ + "tray", + "network", + "bluetooth", + "cpu", + "temperature", + "memory", + "battery", + "backlight", + "keyboard-state", + "pulseaudio", + //"wireplumber", + "pulseaudio#microphone", + "custom/cycle_wall", + "custom/power", + ], +} diff --git a/config/waybar/configs/config-left b/config/waybar/configs/config-left new file mode 100644 index 0000000..01a1866 --- /dev/null +++ b/config/waybar/configs/config-left @@ -0,0 +1,33 @@ +// ### LEFT PANEL ### // + +{ +"include": "~/.config/waybar/modules", +"layer": "top", +"position": "left", +"margin-top": 8, +"margin-bottom": 8, +"margin-left": 3, +"margin-right": 3, +"spacing": 3, +"fixed-center": true, +"ipc": true, +//"gtk-layer-shell": true, + +"modules-left": [ + "clock#vertical", + "custom/light_dark", +], + +"modules-center": [ + "hyprland/workspaces", +], + +"modules-right": [ + "tray", + "backlight", + "pulseaudio#microphone_vertical", + "pulseaudio#vertical", + "custom/power", + "custom/menu", +], +} diff --git a/config/waybar/configs/config-plasma b/config/waybar/configs/config-plasma new file mode 100644 index 0000000..e7125d1 --- /dev/null +++ b/config/waybar/configs/config-plasma @@ -0,0 +1,45 @@ +// ### "Plasma" (bottom) ### // + +{ +"include": "~/.config/waybar/modules", +"layer": "top", +//"mode": "dock", +"exclusive": true, +"passthrough": false, +"position": "bottom", +"spacing": 3, +"fixed-center": true, +"ipc": true, +"margin-left": 10, +"margin-right": 10, +"margin-bottom": 6, + +"modules-left": [ + "custom/menu", + "hyprland/workspaces", + "wlr/taskbar", + ], + +"modules-center": [ + "hyprland/window", + "custom/light_dark", + ], + +"modules-right": [ + "tray", + "custom/weather", + "clock", + "cpu", + "temperature", + "memory", + "backlight", + "battery", + "pulseaudio", + //"wireplumber", + "pulseaudio#microphone", + //"custom/updater", + "keyboard-state", + "custom/cycle_wall", + "custom/power", + ], +} diff --git a/config/waybar/configs/config-right b/config/waybar/configs/config-right new file mode 100644 index 0000000..ce41782 --- /dev/null +++ b/config/waybar/configs/config-right @@ -0,0 +1,32 @@ +// ### RIGHT PANEL ### // + +{ +"include": "~/.config/waybar/modules", +"layer": "top", +"position": "right", +"margin-top": 8, +"margin-bottom": 8, +"margin-left": 3, +"margin-right": 3, +"spacing": 3, +"fixed-center": true, +"ipc": true, +//"gtk-layer-shell": true, + +"modules-left": [ + "clock#vertical", + "custom/light_dark", +], + +"modules-center": [ + "hyprland/workspaces", +], + +"modules-right": [ + "tray", + "backlight", + "pulseaudio#microphone_vertical", + "pulseaudio#vertical", + "custom/power", +], +} diff --git a/config/waybar/configs/config-simple b/config/waybar/configs/config-simple new file mode 100644 index 0000000..da59099 --- /dev/null +++ b/config/waybar/configs/config-simple @@ -0,0 +1,35 @@ +// ### SIMPLE ### // + +{ +"include": "~/.config/waybar/modules", +"layer": "top", +//"mode": "dock", +"exclusive": true, +"passthrough": false, +"position": "top", +"spacing": 3, +"fixed-center": true, +"ipc": true, +"margin-top": 6, +"margin-left": 8, +"margin-right": 8, + +"modules-left": [ + "custom/menu", + "hyprland/workspaces", + ], +"modules-center": [ + "clock", + "custom/light_dark", + ], +"modules-right": [ + "backlight", + "keyboard-state", + "pulseaudio", + "bluetooth", + "network", + "battery", + ], + + +} \ No newline at end of file diff --git a/config/waybar/modules b/config/waybar/modules new file mode 100644 index 0000000..5ff07ce --- /dev/null +++ b/config/waybar/modules @@ -0,0 +1,427 @@ +{ +"backlight": { + "interval": 2, + "align": 0, + "rotate": 0, + "format": "{icon} {percent}%", + "format-icons": ["󰃞", "󰃟", "󰃠"], + "icon-size": 10, + "on-click": "", + "on-click-middle": "", + "on-click-right": "", + "on-update": "", + "on-scroll-up": "~/.config/hypr/scripts/Brightness.sh --inc", + "on-scroll-down": "~/.config/hypr/scripts/Brightness.sh --dec", + "smooth-scrolling-threshold": 1, +}, + +"battery": { + "interval": 60, + "align": 0, + "rotate": 0, + //"bat": "BAT1", + //"adapter": "ACAD", + "full-at": 100, + "design-capacity": false, + "states": { + "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{icon} {capacity}%", + "format-charging": " {capacity}%", + "format-plugged": "󱘖 {capacity}%", + "format-full": "{icon} Full", + "format-alt": "{icon} {time}", + "format-icons": ["", "", "", "", ""], + "format-time": "{H}h {M}min", + "tooltip": true, + "tooltip-format": "{timeTo} {power}w", + "on-click-middle": "~/.config/hypr/scripts/ChangeBlur.sh", + "on-click-right": "$HOME/.config/hypr/scripts/WofiPower.sh", +}, + +"bluetooth": { + "format": "", + "format-disabled": "", // an empty format will hide the module + "format-connected": " {num_connections}", + "tooltip-format": " {device_alias}", + "tooltip-format-connected": "{device_enumerate}", + "tooltip-format-enumerate-connected": " {device_alias} 󰂄{device_battery_percentage}%", + "tooltip": true +}, + +"cava": { + //"cava_config": "$XDG_CONFIG_HOME/cava/cava.conf", + "framerate": 30, + "autosens": 1, + "sensitivity": 100, + "bars": 14, + "lower_cutoff_freq": 50, + "higher_cutoff_freq": 10000, + "method": "pulse", + "source": "auto", + "stereo": true, + "reverse": false, + "bar_delimiter": 0, + "monstercat": false, + "waves": false, + "noise_reduction": 0.77, + "input_delay": 2, + "format-icons" : ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█" ], + "actions": { + "on-click-right": "mode" + } +}, + +"clock": { + //"format": " {:%I:%M %p}", + "format": " {:%H:%M}", + "format-alt": " {:%H:%M  %Y, %d %B, %A}", + "tooltip-format": "{calendar}", + "calendar": { + "mode" : "year", + "mode-mon-col" : 3, + "weeks-pos" : "right", + "on-scroll" : 1, + "format": { + "months": "{}", + "days": "{}", + "weeks": "W{}", + "weekdays": "{}", + "today": "{}" + } + } + }, + "actions": { + "on-click-right": "mode", + "on-click-forward": "tz_up", + "on-click-backward": "tz_down", + "on-scroll-up": "shift_up", + "on-scroll-down": "shift_down" +}, + +"cpu": { + "format": "{usage}% 󰍛", + "interval": 1, + "format-alt-click": "click", + "format-alt": "{icon0}{icon1}{icon2}{icon3} {usage:>2}% 󰍛", + "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"], + "on-click-right": "gnome-system-monitor", +}, + +"disk": { + "interval": 30, + //"format": "󰋊", + "path": "/", + //"format-alt-click": "click", + "format": "{percentage_used}% 󰋊", + //"tooltip": true, + "tooltip-format": "{used} used out of {total} on {path} ({percentage_used}%)", +}, + +"hyprland/language": { + "format": "Lang: {}", + "format-en": "US", + "format-tr": "Korea", + "keyboard-name": "at-translated-set-2-keyboard", + "on-click": "hyprctl switchxkblayout $SET_KB next" +}, + +"hyprland/submap": { + "format": " {}", // Icon: expand-arrows-alt + "tooltip": false, +}, + +"hyprland/window": { + "format": "{}", + "max-length": 360, + "separate-outputs": true, +}, + +"hyprland/workspaces": { + "format": "{name}", + //"format": "{name}: {icon}", + //"format": "{icon}", + "show-special": false, + "on-click": "activate", + "all-outputs": true, + "sort-by-number": true, + "format-icons": { + "1": "main  ", + "2": "2  ", + "3": "3  ", + "4": "4  ", + "5": "5  ", + "6": "6  ", + "7": "7  ", + "8": "8  ", + "9": "9  ", + "10": " 10 ", + "focused": "", + "default": "", + }, + "on-scroll-up": "hyprctl dispatch workspace e+1", + "on-scroll-down": "hyprctl dispatch workspace e-1", +}, + +"idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": " ", + "deactivated": " ", + } +}, + +"keyboard-state": { + //"numlock": true, + "capslock": true, + "format": { + "numlock": "N {icon}", + "capslock": "󰪛 {icon}" + }, + "format-icons": { + "locked": "", + "unlocked": "" + } +}, + +"memory": { + "interval": 10, + "format": "{used:0.1f}G 󰾆", + "format-alt": "{percentage}% 󰾆", + "format-alt-click": "click", + "tooltip": true, + "tooltip-format": "{used:0.1f}GB/{total:0.1f}G", + "on-click-right": "foot --title btop sh -c 'btop'" +}, + +"network": { + "format": "{ifname}", + "format-wifi": " {signalStrength}%", + "format-ethernet": "󰈁 Wired", + "format-disconnected": "", //An empty format will hide the module. + "tooltip-format": "{ipaddr}  {bandwidthUpBytes}  {bandwidthDownBytes}", + "format-linked": "󰈁 {ifname} (No IP)", + "tooltip-format-wifi": "{essid}  ({signalStrength}%)", + "tooltip-format-ethernet": "{ifname} 󰈁", + "tooltip-format-disconnected": "󰈂 Disconnected", + "max-length": 50, +}, + +"pulseaudio": { + "format": "{icon} {volume} %", + "format-bluetooth": "{icon}  {volume} %", + "format-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", "󰕾", ""], + "ignored-sinks": ["Easy Effects Sink"], + }, + "scroll-step": 5.0, + "on-click": "~/.config/hypr/scripts/Volume.sh --toggle", + "on-click-right": "pavucontrol -t 3", + "on-scroll-up": "~/.config/hypr/scripts/Volume.sh --inc", + "on-scroll-down": "~/.config/hypr/scripts/Volume.sh --dec", + "smooth-scrolling-threshold": 1, +}, + +"pulseaudio#microphone": { + "format": "{format_source}", + "format-source": " {volume} %", + "format-source-muted": "", + "on-click": "~/.config/hypr/scripts/Volume.sh --toggle-mic", + "on-click-right": "pavucontrol -t 4", + "on-scroll-up": "~/.config/hypr/scripts/Volume.sh --mic-inc", + "on-scroll-down": "~/.config/hypr/scripts/Volume.sh --mic-dec", + "scroll-step": 5, +}, + +"temperature": { + "interval": 10, + "tooltip": false, + "hwmon-path": "/sys/class/hwmon/hwmon1/temp1_input", + //"thermal-zone": 1, + "critical-threshold": 82, + "format-critical": "{temperatureC}°C {icon}", + "format": "{temperatureC}°C {icon}", + "format-icons": [""], + "on-click-right": "foot --title nvtop sh -c 'nvtop'" +}, + +"tray": { + "icon-size": 17, + "spacing": 8, +}, + +"wireplumber": { + "format": "{icon} {volume} %", + "format-muted": " Mute", + "on-click": "~/.config/hypr/scripts/Volume.sh --toggle", + "on-click-right": "pavucontrol -t 3", + "on-scroll-up": "~/.config/hypr/scripts/Volume.sh --inc", + "on-scroll-down": "~/.config/hypr/scripts/Volume.sh --dec", + "format-icons": ["", "", "󰕾", ""], +}, + +"wlr/taskbar": { + "format": "{icon} {name} ", + "icon-size": 16, + "all-outputs": false, + "tooltip-format": "{title}", + "on-click": "activate", + "on-click-middle": "close", + "ignore-list": [ + "wofi" + ] +}, + +"custom/cycle_wall":{ + "format":" ", + "on-click": "~/.config/hypr/scripts/WallpaperSelect.sh", + "on-click-right": "~/.config/hypr/scripts/Wallpaper.sh swww", + "on-click-middle": "~/.config/hypr/scripts/WaybarStyles.sh", + "tooltip": true, + "tooltip-format": "Change wallpaper or style" +}, + +"custom/keybindings": { + "format":"", + "tooltip": false, + "on-click": "~/.config/hypr/scripts/Help.sh", +}, + +"custom/light_dark": { + "format": "", + "on-click": "~/.config/hypr/scripts/DarkLight.sh", + "tooltip": false, +}, + +"custom/lock": { + "format": "", + "on-click": "~/.config/hypr/scripts/LockScreen.sh", + "tooltip": false, +}, + +"custom/menu": { + "format": "", + "tooltip": false, + "on-click": "$HOME/.config/hypr/scripts/Wofi.sh", + "on-click-right": "$HOME/.config/hypr/scripts/ChangeLayoutMenu.sh", + "on-click-middle": "~/.config/hypr/scripts/Wallpaper.sh swaybg", +}, + +"custom/power": { + "format": "  ", + "tooltip": false, + //"on-click": "sh -c '(sleep 0.5s; wlogout --protocol layer-shell)' & disown", + "on-click": "$HOME/.config/hypr/scripts/WofiPower.sh", + "on-click-right": "~/.config/hypr/scripts/ChangeBlur.sh", +}, + +"custom/updater":{ + "format": " {}", + "exec": "checkupdates | wc -l", + "exec-if": "[[ $(checkupdates | wc -l) ]]", + "interval": 15, + "on-click": "foot -T update paru -Syu || yay -Syu && notify-send 'The system has been updated'", + "on-click-right": "~/.config/hypr/scripts/WallpaperSwitch.sh", +}, + +"custom/weather": { + "format": "{}", + "format-alt": "{alt}: {}", + "format-alt-click": "click", + "interval": 3600, + "return-type": "json", + "exec": "~/.config/hypr/scripts/Weather.sh", + //"exec": "~/.config/hypr/scripts/Weather.py", + "exec-if": "ping wttr.in -c1", + "tooltip" : true, +}, + +// Modules below are for vertical layout + +"clock#vertical": { + "format": "{:\n%H\n%M\n\n \n%d\n%m\n%y}", + "interval": 1, + //"format": "{:\n%I\n%M\n%p\n\n \n%d\n%m\n%y}", + "tooltip": true, + "tooltip-format": "{calendar}", + "calendar": { + "mode": "year", + "mode-mon-col": 3, + "format": { + "today": "{}", + } + } +}, + +"pulseaudio#vertical": { + "format": "{icon}", + "format-bluetooth": "\n{icon}", + "format-bluetooth-muted": "\n󰖁", + "format-muted": "󰖁", + "format-icons": { + "headphone": "󰋋", + "hands-free": "󰋋", + "headset": "󰋋", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", "󰕾", ""], + }, + "on-click-right": "pavucontrol", + "on-click": "~/.config/hypr/scripts/Volume.sh --toggle", + "on-scroll-up": "~/.config/hypr/scripts/Volume.sh --inc", + "on-scroll-down": "~/.config/hypr/scripts/Volume.sh --dec", + "tooltip": true, +}, + +"pulseaudio#microphone_vertical": { + "format": "{format_source}", + "format-source": "󰍬", + "format-source-muted": "󰍭", + "on-click-right": "pavucontrol", + "on-click": "~/.config/hypr/scripts/Volume.sh --toggle-mic", + "on-scroll-up": "~/.config/hypr/scripts/Volume.sh --mic-inc", + "on-scroll-down": "~/.config/hypr/scripts/Volume.sh --mic-dec", + "max-volume": 100, + "tooltip": true, + "tooltip-format": "{icon} {desc} {volume}%", +}, + +"cpu#vertical": { + "format": "󰍛\n{usage}%", + "interval": 1, + "on-click-right": "gnome-system-monitor", +}, + +"memory#vertical": { + "interval": 10, + "format": "󰾆\n{percentage}%", + "format-alt": "󰾆\n{used:0.1f}G", + "format-alt-click": "click", + "tooltip": true, + "tooltip-format": "{used:0.1f}GB/{total:0.1f}G", + "on-click-right": "foot --title btop sh -c 'btop'", +}, + +"temperature#vertical": { + "interval": 10, + "tooltip": true, + "hwmon-path": "/sys/class/hwmon/hwmon1/temp1_input", + //"thermal-zone": 0, + "critical-threshold": 80, + "format-critical": "{icon}\n{temperatureC}°C", + "format": " {icon}", + "format-icons": [""], + "on-click-right": "foot --title nvtop sh -c 'nvtop'" +}, +} + diff --git a/config/waybar/style.css b/config/waybar/style.css new file mode 120000 index 0000000..7120186 --- /dev/null +++ b/config/waybar/style.css @@ -0,0 +1 @@ +/home/ja/00-Shared-Drives/Common-nvme/git-packages - nvme/01-Published/Hyprland-Dots/config/waybar/style/style-dark.css \ No newline at end of file diff --git a/config/waybar/style/style-b&w.css b/config/waybar/style/style-b&w.css new file mode 100644 index 0000000..610b247 --- /dev/null +++ b/config/waybar/style/style-b&w.css @@ -0,0 +1,181 @@ +*{ +font-family: "JetBrainsMono Nerd Font"; +font-weight: bold; +min-height: 0; +/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ +font-size: 98%; +font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; +padding: 1px; +margin-top: 1px; +margin-bottom: 1px; +} + +window#waybar { + background: transparent; +} + +window#waybar.empty { + background-color: transparent; +} + +window#waybar.empty #window { + padding: 0px; + margin: 0px; + border: 0px; +/* background-color: rgba(66,66,66,0.5); */ /* transparent */ + background-color: transparent; +} + +window > box { + /*margin: 1px 2px 2px;*/ + background: rgba(0, 0, 0, 0); + border-bottom: 1px solid rgba(0, 0, 0, 0); + color: white; +} + +window { + /*font-weight: bold;*/ +} + +tooltip { + background: #1e1e2e; + opacity: 0.8; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; +} + +tooltip label{ + color: #cdd6f4; +} +/*-----module groups----*/ +.modules-right { + background-color: rgba(0,43,51,0.3); + /*margin: 2px 10px 0 0;*/ + border: 1px solid #cba6f7; + border-radius: 8px; +} +.modules-center { + background-color: rgba(0,43,51,0.3); + /*margin: 2px 0 0 0;*/ + border: 1px solid #cba6f7; + border-radius: 8px; +} +.modules-left { + /*margin: 2px 0 0 5px;*/ + background-color: rgba(0,43,51,0.3); + border: 1px solid #cba6f7; + border-radius: 8px; +} +/*-----modules indv----*/ +#workspaces button { + padding: 0px 0px; + background-color: transparent; +} +#workspaces button:hover { + box-shadow: inherit; + background-color: rgba(0,153,153,0); +} + +#workspaces button.focused { + background-color: rgba(0,85,102,0); +} +#workspaces button.active { + background-color: rgba(191, 191, 191,0.1); + /*box-shadow:inherit;*/ +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#wireplumber, +#mode, +#tray, +#cava, +#idle_inhibitor, +#keyboard-state, +#keyboard-state label, +#keyboard-state label.locked, +#mpd, +#window, +#workspaces, +#taskbar, +#bluetooth, +#taskbar, +#taskbar button, +#custom-light_dark, +#custom-cycle_wall, +#custom-updater, +#custom-menu, +#custom-power, +#custom-spotify, +#custom-weather, +#custom-power, +#custom-lock, +#custom-weather.severe, +#custom-weather.sunnyDay, +#custom-weather.clearNight, +#custom-weather.cloudyFoggyDay, +#custom-weather.cloudyFoggyNight, +#custom-weather.rainyDay, +#custom-weather.rainyNight, +#custom-weather.showyIcyDay, +#custom-weather.snowyIcyNight, +#custom-weather.default +#idle_inhibitor { + padding: 0px 4px; +} +#mode { + color: #cc3436; + font-weight: bold; +} +#custom-power { + /*background-color: rgba(0,119,179,0.6);*/ + /*border-radius: 50px;*/ + margin: 5px 5px; + padding: 1px 3px; +} +/*-----Indicators----*/ +#idle_inhibitor.activated { + color: #2dcc36; +} +#pulseaudio.muted { + color: #cc3436; +} +#temperature.critical { + color: #cc3436; +} + +#waybar { + background-color: #282828; + color: #d8d8d8; +} + +@keyframes blink { + to { + color: #000000; + } +} + +#battery.critical:not(.charging) { + color: #f53c3c; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#taskbar button.active { + background-color: #7f849c; +} +#waybar.empty, #waybar.tiled, #waybar.floating { + background-color: transparent; +} diff --git a/config/waybar/style/style-dark.css b/config/waybar/style/style-dark.css new file mode 100644 index 0000000..1de2355 --- /dev/null +++ b/config/waybar/style/style-dark.css @@ -0,0 +1,156 @@ +*{ + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + font-size: 98%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + padding: 1px; + margin-top: 1px; + margin-bottom: 1px; + } + + window#waybar { + background: rgba(0, 0, 0, 0); + } + + window#waybar.hidden { + opacity: 0.5; + } + + window#waybar.empty { + background-color: transparent; + } + + window#waybar.empty #window { + padding: 0px; + margin: 0px; + border: 0px; + /* background-color: rgba(66,66,66,0.5); */ /* transparent */ + background-color: transparent; + } + + tooltip { + background: rgba(0, 0, 0, 0.6); + border-radius: 10px; + } + + tooltip label { + color: #cba6f7; + margin-right: 2px; + margin-left: 2px; + } + + /*-----module groups----*/ + .modules-right { + background-color: rgba(0, 0, 0, 0.6); + border: 0px solid #b4befe; + border-radius: 10px; + } + + .modules-center { + background-color: rgba(0, 0, 0, 0.6); + border: 0px solid #b4befe; + border-radius: 10px; + } + + .modules-left { + background-color: rgba(0, 0, 0, 0.6); + border: 0px solid #b4befe; + border-radius: 10px; + + } + + #workspaces button { + color: #6E6A86; + } + + #workspaces button.active { + color: #cba6f7; + border-radius: 15px 15px 15px 15px; + } + + #workspaces button.focused { + color: #d8dee9; + } + + #workspaces button.urgent { + color: #11111b; + border-radius: 10px; + } + + #workspaces button:hover { + color: #9CCFD8; + border-radius: 15px; + } + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#network, +#pulseaudio, +#wireplumber, +#mode, +#tray, +#cava, +#backlight, +#window, +#idle_inhibitor, +#keyboard-state, +#keyboard-state label, +#keyboard-state label.locked, +#mpd, +#bluetooth, +#taskbar, +#taskbar button, +#workspaces, +#custom-light_dark, +#custom-updater, +#custom-menu, +#custom-cycle_wall, +#custom-power, +#custom-spotify, +#custom-weather, +#custom-power, +#custom-lock, +#custom-weather.severe, +#custom-weather.sunnyDay, +#custom-weather.clearNight, +#custom-weather.cloudyFoggyDay, +#custom-weather.cloudyFoggyNight, +#custom-weather.rainyDay, +#custom-weather.rainyNight, +#custom-weather.showyIcyDay, +#custom-weather.snowyIcyNight, +#custom-weather.default, +#idle_inhibitor { + color: #cba7f7; + padding: 0px 6px; + border-radius: 10px; + } + + #temperature.critical { + background-color: #ff0000; + } + + @keyframes blink { + to { + color: #000000; + } + } + + #taskbar button.active { + background-color: #7f849c; + } + + #battery.critical:not(.charging) { + color: #f53c3c; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; + } \ No newline at end of file diff --git a/config/waybar/style/style-default.css b/config/waybar/style/style-default.css new file mode 100644 index 0000000..d3c0c93 --- /dev/null +++ b/config/waybar/style/style-default.css @@ -0,0 +1,320 @@ +*{ +font-family: "JetBrainsMono Nerd Font"; +font-weight: bold; +min-height: 0; +/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ +font-size: 98%; +font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; +padding: 0px; +margin-top: 1px; +margin-bottom: 1px; +} + + +window#waybar { + /* background-color: rgba(26, 27, 38, 0.5); */ + background-color: transparent; + color: #ffffff; + transition-property: background-color; + transition-duration: 0.5s; + /* border-top: 8px transparent; */ + border-radius: 0px; + transition-duration: 0.5s; + margin: 0px 0px; +} +window#waybar.empty { + background-color: transparent; +} +window#waybar.empty #window { + padding: 0px; + margin: 0px; + border: 0px; +/* background-color: rgba(66,66,66,0.5); */ /* transparent */ + background-color: transparent; +} + +window#waybar.hidden { + opacity: 0.1; +} + +tooltip { + background: #1e1e2e; + opacity: 0.8; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; +} + +tooltip label{ + color: #cdd6f4; +} +#workspaces button { + padding: 0 0px; + color: #7984a4; + background-color: transparent; + /* Use box-shadow instead of border so the text isn't offset */ + box-shadow: inset 0 -3px transparent; + /* Avoid rounded borders under each workspace name */ + border: none; + border-radius: 0; +} + +#workspaces button.focused { + background-color: transparent; +} +#workspace button.hover { + background-color: transparent; +} +#workspaces button.active { + color: white; +} + +#workspaces button.urgent { + background-color: #eb4d4b; +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#wireplumber, +#mode, +#tray, +#idle_inhibitor, +#keyboard-state, +#mpd, +#cava, +#bluetooth, +#taskbar, +#workspaces, +#custom-light_dark, +#custom-updater, +#custom-power, +#custom-lock, +#custom-weather, +#window, +#custom-weather.severe, +#custom-weather.sunnyDay, +#custom-weather.clearNight, +#custom-weather.cloudyFoggyDay, +#custom-weather.cloudyFoggyNight, +#custom-weather.rainyDay, +#custom-weather.rainyNight, +#custom-weather.showyIcyDay, +#custom-weather.snowyIcyNight, +#custom-weather.default { + padding: 0px 10px; + color: #e5e5e5; + /* color: #bf616a; */ + border-radius: 8px; + background-color: rgba(50, 50, 50, 0.1); + border: 1px solid #b4befe; +} + +#workspaces { + border-radius: 6px; + padding: 0px 10px; + border: 1px solid #b4befe; +} + +#cpu { + color: #fb958b; + padding: 3px; + border-radius: 8px; + background-color: rgba(50, 50, 50, 0.1); + border: 1px solid #b4befe; +} + +#custom-cycle_wall, +#custom-updater { + color: #cba7f7; + padding: 3px; + border-radius: 8px; + background-color: rgba(50, 50, 50, 0.1); + border: 1px solid #b4befe; + +} + +#custom-menu { + color: #FFFFFF; + padding: 6px; + padding-right: 10px; + border-radius: 8px; + background-color: rgba(50, 50, 50, 0.1); + border: 1px solid #b4befe; +} + +#memory { + color: #ebcb8b; +} + +#custom-power { + color: #cc3436; +} + +#custom-launcher { + background-color: #1b242b; + color: #6a92d7; + border-radius: 6px; + padding: 0 0px; +} + +#custom-weather.severe { + color: #eb937d; +} + +#custom-weather.sunny { + color: #c2ca76; +} + +#custom-weather.clearNight { + color: #cad3f5; +} + +#custom-weather.cloudyFoggyDay, +#custom-weather.cloudyFoggyNight { + color: #c2ddda; +} + +#custom-weather.rainyDay, +#custom-weather.rainyNight { + color: #5aaca5; +} + +#custom-weather.showyIcyDay, +#custom-weather.snowyIcyNight { + color: #d6e7e5; +} + +#custom-weather.default { + color: #ebecf0; +} + +/* 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; +} + +#pulseaudio { + color: #FFD580; +} + +#wireplumber { + color: #FFD580; +} +#backlight { + /* color: #EBCB8B; */ + color: #8fbcbb; +} + +#clock { + color: #90EE90; + /* background-color: #14141e; */ +} + +#battery { + color: #c0caf5; + /* background-color: #90b1b1; */ +} + +#battery.charging, +#battery.full, +#battery.plugged { + color: #26a65b; + /* background-color: #26a65b; */ +} + +@keyframes blink { + to { + background-color: rgba(30, 34, 42, 0.5); + color: #abb2bf; + } +} + +#battery.critical:not(.charging) { + color: #f53c3c; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +label:focus { + background-color: #000000; +} + +#disk { + color: #f38ba8; +} + +#bluetooth { + color: #7287fd; +} + +#bluetooth.disconnected { + color: #f53c3c; +} + +#network { + color: #b48ead; +} + +#network.disconnected { + color: #f53c3c; +} + +#custom-media { + background-color: #66cc99; + color: #2a5c45; + min-width: 100px; +} + +#custom-media.custom-spotify { + background-color: #66cc99; +} + +#custom-media.custom-vlc { + background-color: #ffa000; +} + +#temperature.critical { + background-color: #eb4d4b; +} + +#tray > .passive { + -gtk-icon-effect: dim; +} + +#tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: #eb4d4b; +} + +#idle_inhibitor { + /*background-color: #2d3436;*/ +} + +#idle_inhibitor.activated { + /*background-color: #ecf0f1;*/ + color: #2dcc36; +} + +#temperature { + color: #ADD8E6; +} + +#taskbar button.active { + background-color: #7f849c; +} diff --git a/config/waybar/style/style-default_alter.css b/config/waybar/style/style-default_alter.css new file mode 100644 index 0000000..80c984f --- /dev/null +++ b/config/waybar/style/style-default_alter.css @@ -0,0 +1,322 @@ +@define-color critical #ff0000; /* critical color */ +@define-color warning #f3f809; /* warning color */ +@define-color fgcolor #ffffff; /* foreground color */ +@define-color bgcolor #303030; /* background color */ +@define-color bgcolor #222436; /* background color */ +@define-color alert #df3320; + +@define-color accent1 #ff7a93; +@define-color accent2 #b9f27c; +@define-color accent3 #ff9e64; +@define-color accent4 #bb9af7; +@define-color accent5 #7da6ff; +@define-color accent6 #0db9d7; + +*{ +font-family: "JetBrainsMono Nerd Font"; +font-weight: bold; +min-height: 0; +/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ +font-size: 98%; +font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; +padding: 0px; +margin-top: 1px; +margin-bottom: 1px; +} + +/* icons start at U+E900 in Jetbrains mono in gucharmap */ + +window#waybar { + background-color: rgba(50, 50, 50, 0.0); + /*background-color: @bgcolor;*/ + /* border-bottom: 0px solid rgba(100, 114, 125, 0.5); */ + color: #ffffff; + transition-property: background-color; + transition-duration: .5s; + border-radius: 0; +} + +window#waybar.hidden { + opacity: 0.1; +} + +window#waybar.empty { + background-color: transparent; +} + +window#waybar.empty #window { + padding: 0px; + margin: 0px; + border: 0px; +/* background-color: rgba(66,66,66,0.5); */ /* transparent */ + background-color: transparent; +} + +tooltip { + background: #1e1e2e; + opacity: 0.8; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; +} + +tooltip label{ + color: #cdd6f4; +} + +#workspaces button { + padding: 0 0 0 0; + margin: 0 0 0 0; + background-color: transparent; + color: #ffffff; + /*min-width: 36px;*/ + /* Use box-shadow instead of border so the text isn't offset */ +/* box-shadow: inset 0 -3px transparent;*/ + /* border-radius: 0px; */ +} + +#workspaces button.active { + padding: 0 0 0 0; + margin: 0 0 0 0; + background-color: transparent; + color: #D3D3D3; + /*min-width: 36px;*/ + /* Use box-shadow instead of border so the text isn't offset */ +/* box-shadow: inset 0 -3px transparent;*/ + /* border-radius: 0px; */ +} + +/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ +#workspaces button:hover { + background: rgba(0, 0, 0, 0.2); + /* box-shadow: inset 0 -3px #ffffff; */ +} + +#workspaces button.focused { + background-color: #bbccdd; + color: #323232; + /* box-shadow: inset 0 -3px #ffffff; */ +} + +#workspaces button.urgent { + background-color: #eb4d4b; +} + +#mode { + background-color: #64727D; + border-bottom: 3px solid #ffffff; +} + +#clock, +#battery, +#cpu, +#memory, +#temperature, +#backlight, +#network, +#pulseaudio, +#wireplumber, +#keyboard-state, +#keyboard-state label, +#keyboard-state label.locked, +#tray, +#cava, +#mode, +#custom-light_dark, +#taskbar, +#taskbar button, +#idle_inhibitor, +#custom-updater, +#window, +#custom-cycle_wall, +#custom-screen_locker, +#custom-weather { + padding: 1px 6px 0px 6px; + margin: 4px 3px 5px 3px; + /*color: @fgcolor;*/ + /* background-color: #bbccdd; */ + background-color:transparent; +} + +#window, +#workspaces { + margin: 0 4px; +} + +/* 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: @accent2; +} + +#custom-updater { + color: #7287fd; +} + +#battery { + color: @accent5; +} + +/* #battery.charging { + color: #ffffff; + background-color: #26A65B; +} */ + +@keyframes blink { + to { + background-color: #ffffff; + color: #333333; + } +} + +#battery.critical:not(.charging) { + color: #f53c3c; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +label:focus { + background-color: #000000; +} + +#custom-menu{ + color: #FFFFFF; + padding: 3px; +} + +#cpu { + color: @accent1; +} + +#memory { + color: @accent3; +} + +#backlight { + color: #cdd6f4; +} + +#bluetooth { + color: #1e66f5; +} + +#network { + color: @accent3; +} + +#network.disconnected { + color: @alert; +} + +#pulseaudio { + color: @accent4; +} + +#pulseaudio-muted { + color: @accent2; +} +#wireplumber { + color: @accent4; +} + +#wireplumber-muted { + color: @accent2; +} + +#pluseaudio-source-muted{ + color: #a0a0a0; +} + +#custom-power { + color: #cc3436; +} + +#disk { + color: @accent5; +} +#custom-power_profile { + color: @accent3; +} +#custom-media { + background-color: #66cc99; + color: #2a5c45; + min-width: 100px; +} + +#custom-weather { + color: #66cc99; +} + +#custom-lock { + color: #ffa000; +} + +#temperature { + color: @accent6; + /* background-color: #f0932b; */ +} + +#temperature.critical { + background-color: @critical; +} + +#tray { + /* background-color: #505050; */ +} + +#idle_inhibitor { + /*background-color: #2d3436;*/ +} + +#idle_inhibitor.activated { + /*background-color: #ecf0f1;*/ + color: #2dcc36; + /*color: #2d3436;*/ +} + +#taskbar button.active { + background-color: #7f849c; +} + +#mpd { + color: #2a5c45; +} + +#mpd.disconnected { + background-color: #f53c3c; +} + +#mpd.stopped { + background-color: #90b1b1; +} + +#mpd.paused { + background-color: #51a37a; +} + +#custom-language { + /* background: #bbccdd; + color: #333333; + padding: 0 5px; + margin: 4px 3px 6px 3px; */ + color: @accent5; + min-width: 16px; +} + +#custom-separator { + color: #606060; + margin: 0 1px; + padding-bottom: 5px; +} diff --git a/config/waybar/style/style-light.css b/config/waybar/style/style-light.css new file mode 100644 index 0000000..9cb493c --- /dev/null +++ b/config/waybar/style/style-light.css @@ -0,0 +1,157 @@ +*{ +font-family: "JetBrainsMono Nerd Font"; +font-weight: bold; +min-height: 0; +/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ +font-size: 98%; +font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; +padding: 1px; +margin-top: 1px; +margin-bottom: 1px; +} + +window#waybar { + background: rgba(0, 0, 0, 0) +} + +window#waybar.hidden { + opacity: 0.7; +} + +window#waybar.empty { + background-color: transparent; +} + +window#waybar.empty #window { + padding: 0px; + margin: 0px; + border: 0px; +/* background-color: rgba(66,66,66,0.5); */ /* transparent */ + background-color: transparent; +} + +tooltip { + background: rgba(236, 236, 236, 0.8); + border-radius: 10px; +} + +tooltip label { + color: #373737; + margin-right: 2px; + margin-left: 2px; +} + +/*-----module groups----*/ +.modules-right { + background-color: rgba(232, 236, 241, 0.8); + border: 0px solid #b4befe; + border-radius: 10px; +} + +.modules-center { + background-color: rgba(232, 236, 241, 0.8); + border: 0px solid #b4befe; + border-radius: 10px; +} + +.modules-left { + background-color: rgba(232, 236, 241, 0.8); + border: 0px solid #b4befe; + border-radius: 10px; + +} + +#workspaces button { + color: #585b70; +} + +#workspaces button.active { + color: #000000; + border-radius: 15px 15px 15px 15px; +} + +#workspaces button.focused { + color: #000000; +} + +#workspaces button.urgent { + color: #000000; + border-radius: 10px; +} + +#workspaces button:hover { + color: #000000; + border-radius: 15px; +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#network, +#pulseaudio, +#wireplumber, +#mode, +#tray, +#cava, +#backlight, +#window, +#idle_inhibitor, +#keyboard-state, +#keyboard-state label, +#keyboard-state label.locked, +#mpd, +#bluetooth, +#taskbar, +#taskbar button, +#workspaces, +#custom-light_dark, +#custom-updater, +#custom-menu, +#custom-cycle_wall, +#custom-power, +#custom-spotify, +#custom-weather, +#custom-power, +#custom-lock, +#custom-weather.severe, +#custom-weather.sunnyDay, +#custom-weather.clearNight, +#custom-weather.cloudyFoggyDay, +#custom-weather.cloudyFoggyNight, +#custom-weather.rainyDay, +#custom-weather.rainyNight, +#custom-weather.showyIcyDay, +#custom-weather.snowyIcyNight, +#custom-weather.default, +#idle_inhibitor { + color: #000000; + padding: 0px 6px; + border-radius: 10px; +} + +#temperature.critical { + background-color: #ff0000; +} + +@keyframes blink { + to { + color: #000000; + } +} + +#taskbar button.active { + background-color: #585b70; + color: #cdd6f4; +} + +#battery.critical:not(.charging) { + color: #f53c3c; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} diff --git a/config/waybar/style/style-mauve.css b/config/waybar/style/style-mauve.css new file mode 100644 index 0000000..e4cd8e9 --- /dev/null +++ b/config/waybar/style/style-mauve.css @@ -0,0 +1,161 @@ +*{ +font-family: "JetBrainsMono Nerd Font"; +font-weight: bold; +min-height: 0; +/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ +font-size: 98%; +font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; +padding: 0px; +margin-top: 1px; +margin-bottom: 1px; +} + +window#waybar { + background: transparent; + border-radius: 10px; + color: #cba6f7; + border-style: solid; + border-width: 2px; + border-color: #cba6f7; +} + +window#waybar.hidden { + opacity: 0.5; +} +window#waybar.empty { + background-color: transparent; +} + +window#waybar.empty #window { + padding: 0px; + margin: 0px; + border: 0px; + /* background-color: rgba(66,66,66,0.5); */ /* transparent */ + background-color: transparent; +} + + +tooltip { + background: #1e1e2e; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; + color: #cba6f7; +} +/*-----module groups----*/ +.modules-right { + /*background-color: #1e1e2e;*/ + border: 0px solid #b4befe; + border-radius: 10px; +} + +.modules-center { + /*background-color: #1e1e2e;*/ + border: 0px solid #b4befe; + border-radius: 10px; +} + +.modules-left { + /*background-color: #1e1e2e;*/ + border: 0px solid #b4befe; + border-radius: 10px; + +} + +#workspaces button { + padding: 2px; + color: #6E6A86; + margin-right: 5px; +} + +#workspaces button.active { + color: #cba6f7; + border-radius: 15px 15px 15px 15px; +} + +#workspaces button.focused { + color: #d8dee9; +} + +#workspaces button.urgent { + color: #11111b; + border-radius: 10px; +} + +#workspaces button:hover { + color: #9CCFD8; + border-radius: 15px; +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#network, +#pulseaudio, +#wireplumber, +#mode, +#tray, +#cava, +#backlight, +#window, +#idle_inhibitor, +#keyboard-state, +#keyboard-state label, +#keyboard-state label.locked, +#mpd, +#bluetooth, +#taskbar, +#taskbar button, +#workspaces, +#custom-light_dark, +#custom-updater, +#custom-menu, +#custom-cycle_wall, +#custom-power, +#custom-spotify, +#custom-weather, +#custom-power, +#custom-lock, +#custom-weather.severe, +#custom-weather.sunnyDay, +#custom-weather.clearNight, +#custom-weather.cloudyFoggyDay, +#custom-weather.cloudyFoggyNight, +#custom-weather.rainyDay, +#custom-weather.rainyNight, +#custom-weather.showyIcyDay, +#custom-weather.snowyIcyNight, +#custom-weather.default +#idle_inhibitor { + color: #cba7f7; + padding: 0px 10px; + border-radius:10px; +} + +#temperature.critical { + background-color: #ff0000; +} + +@keyframes blink { + to { + color: #000000; + } +} + +#taskbar button.active { + background-color: #7f849c; +} + +#battery.critical:not(.charging) { + color: #f53c3c; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + \ No newline at end of file diff --git a/config/waybar/style/style-rgb.css b/config/waybar/style/style-rgb.css new file mode 100644 index 0000000..7cc496d --- /dev/null +++ b/config/waybar/style/style-rgb.css @@ -0,0 +1,246 @@ +*{ +font-family: "JetBrainsMono Nerd Font"; +font-weight: bold; +min-height: 0; +/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ +font-size: 98%; +font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; +padding: 0px; +margin-top: 1px; +margin-bottom: 1px; +} + +window#waybar { + /* Transparent waybar. Make sure to comment out background-color: and border: */ + background-color: rgba(0,0,0,0); + /* background-color: #1e1e2e; */ + /* border: 2px solid #313244; */ + transition-property: background-color; + transition-duration: .5s; +} + +window#waybar.hidden { + opacity: 0.5; +} + +window#waybar.empty { + background-color: transparent; +} + +window#waybar.empty #window { + padding: 0px; + margin: 0px; + border: 0px; + /* background-color: rgba(66,66,66,0.5); */ /* transparent */ + background-color: transparent; +} + +tooltip { + background: #1e1e2e; + opacity: 0.8; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; +} + +tooltip label{ + color: #cdd6f4; +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#bluetooth, +#wireplumber, +#mode, +#tray, +#cava, +#window, +#idle_inhibitor, +#keyboard-state, +#keyboard-state label, +#keyboard-state label.locked, +#mpd, +#custom-light_dark, +#workspaces, +#taskbar, +#taskbar button, +#bluetooth, +#workspaces, +#custom-menu, +#custom-power, +#custom-cycle_wall, +#custom-media, +#custom-updater, +#custom-lock, +#custom-weather, +#idle_inhibitor { + border-radius: 8px; + margin: 4px 1px; + padding: 0px 4px; + color: #3A3B3C; + border: 1px solid #b4befe; +} + +#backlight { + background-color: #cba6f7; +} + +#taskbar { + color: #ffffff; +} + +#taskbar button.active { + background-color: #7f849c; +} + +#battery { + background-color: #f9e2af; +} + +@keyframes blink { + to { + color: #000000; + } +} + +#battery.critical:not(.charging) { + background-color: #f38ba8; + color: #f38ba8; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#clock { + background-color: #a6e3a1; +} + +#keyboard-state, +#keyboard-state label, +#keyboard-state label.locked, +#cpu { + background-color: #89dceb; +} + +#memory { + background-color: #eba0ac; +} + +#disk { + background-color: #b4befe; +} + +#tray { + background-color: #b4befe; +} +#tray > .passive { + -gtk-icon-effect: dim; +} +#tray > .needs-attention { + -gtk-icon-effect: highlight; +} + +#workspaces button { + border-radius: 8px; + background-color: #d9e0ee; + color: #3A3B3C; +} + +#workspaces button.active { + background-color: #eba0ac; + color: #3A3B3C; +} + +#taskbar button { + border-radius: 8px; + background-color: #74c7ec; + color: #3A3B3C; +} + +#taskbar button.active { + background-color: #b4befe; + color: #3A3B3C; +} +#custom-menu { + background-color: #f5c2e7; + /*padding: 1px;*/ + padding-right: 10px; + border-radius: 8px; + color: #3A3B3C; + border: 1px solid #b4befe; +} + +#custom-power { + background-color: #f38ba8; +} + +#custom-updater { + background-color: #e6ed7b; +} + +#custom-cycle_wall { + background-color: #94e2d5; +} + +#custom-weather { + background-color: #cba6f7; +} + +#wireplumber { + background-color: #a6e3a1; +} + +#wireplumber.muted { + background-color: #313244; + color: #cdd6f4; +} + +#custom-lock { + background-color: #89dceb; +} + +#temperature { + background-color: #86b4fa; +} + +#custom-light_dark, +#idle_inhibitor { + background-color: #86b4fa; +} + +#bluetooth { + background-color: #89dceb; +} +#window { + background-color: #89dceb; +} + +#pulseaudio { + background-color: #fab387; +} + +#pulseaudio.bluetooth { + background-color: #f5c2e7; +} +#pulseaudio.muted { + background-color: #313244; + color: #cdd6f4; +} + +#network { + background-color: #89b4fa; +} +#network.disconnected,#network.disabled { + background-color: #313244; + color: #cdd6f4; +} diff --git a/config/waybar/style/style-simple.css b/config/waybar/style/style-simple.css new file mode 100644 index 0000000..e40f0b9 --- /dev/null +++ b/config/waybar/style/style-simple.css @@ -0,0 +1,83 @@ +*{ + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + font-size: 98%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + padding: 0px; + margin-top: 1px; + margin-bottom: 1px; + } + + window#waybar { + background: rgba(0, 0, 0, 0.7); + border-radius: 10px; + } + window#waybar.empty { + background-color: transparent; +} + window#waybar.empty #window { + padding: 0px; + margin: 0px; + border: 0px; + /* background-color: rgba(66,66,66,0.5); */ /* transparent */ + background-color: transparent; +} + + #custom-menu, #workspaces { + border-radius: 10px; + /*background-color: #11111b;*/ + color: #b4befe; + margin-right: 15px; + padding-left: 10px; + padding-right: 10px; + } + + #workspaces button { + /*background: #11111b;*/ + color: #b4befe; + } + + + #clock, #backlight, #pulseaudio, #bluetooth, #network, #battery { + border-radius: 10px; + /*background-color: #11111b;*/ + color: #cdd6f4; + padding-left: 10px; + padding-right: 10px; + margin-right: 15px; + } + + #backlight, #bluetooth { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + padding-right: 5px; + margin-right: 0 + } + + #pulseaudio, #network { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + padding-left: 5px; + } + + #clock, #custom-light_dark { + margin-right: 0; + } + + @keyframes blink { + to { + color: #000000; + } + } + + #battery.critical:not(.charging) { + background-color: #f38ba8; + color: #f38ba8; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; + } \ No newline at end of file diff --git a/config/wofi/WofiBig/config b/config/wofi/WofiBig/config new file mode 100644 index 0000000..a8c75d9 --- /dev/null +++ b/config/wofi/WofiBig/config @@ -0,0 +1,40 @@ +## Wofi Config + +## General +show=drun +prompt=Apps +normal_window=true +layer=overlay +term=foot +columns=5 + +## Geometry +width=60% +height=40% +location=bottom_left +orientation=vertical +halign=fill +line_wrap=off +dynamic_lines=false + +## Images +allow_markup=true +allow_images=true +image_size=24 + +## Search +exec_search=false +hide_search=false +parse_search=false +insensitive=false + +## Other +hide_scroll=true +no_actions=true +sort_order=default +gtk_dark=true +filter_rate=100 + +## Keys +key_expand=Tab +key_exit=Escape diff --git a/config/wofi/colors b/config/wofi/colors new file mode 100644 index 0000000..3315baa --- /dev/null +++ b/config/wofi/colors @@ -0,0 +1,6 @@ +#2F3741 +#2F3741 +#d9e0ee +#4B87CD +#f38ba8 +#cba6f7 diff --git a/config/wofi/config b/config/wofi/config new file mode 120000 index 0000000..941720b --- /dev/null +++ b/config/wofi/config @@ -0,0 +1 @@ +/home/ja/00-Shared-Drives/Common-nvme/git-packages - nvme/01-Published/Hyprland-Dots/config/wofi/configs/config-default \ No newline at end of file diff --git a/config/wofi/configs/config-default b/config/wofi/configs/config-default new file mode 100644 index 0000000..34109ee --- /dev/null +++ b/config/wofi/configs/config-default @@ -0,0 +1,40 @@ +## Wofi Config + +## General +show=drun +prompt=Apps +normal_window=true +layer=overlay +term=foot +columns=2 + +## Geometry +width=30% +height=30% +location=top_left +orientation=vertical +halign=fill +line_wrap=off +dynamic_lines=false + +## Images +allow_markup=true +allow_images=true +image_size=24 + +## Search +exec_search=false +hide_search=false +parse_search=false +insensitive=false + +## Other +hide_scroll=true +no_actions=true +sort_order=default +gtk_dark=true +filter_rate=100 + +## Keys +key_expand=Tab +key_exit=Escape diff --git a/config/wofi/configs/config-gnome b/config/wofi/configs/config-gnome new file mode 100644 index 0000000..d4ae53a --- /dev/null +++ b/config/wofi/configs/config-gnome @@ -0,0 +1,46 @@ +## Wofi Config + +## General +mode=drun,run +run-always_parse_args=true +show=drun +prompt=Apps +#normal_window=true +layer=overlay +term=foot +columns=1 +lines=15 + +## Geometry +height=20% +width=12% +location=top_left +xoffset=4 +yoffset=10 +orientation=vertical +halign=fill +line_wrap=off +dynamic_lines=false + +## Images +allow_markup=true +allow_images=true +image_size=24 + +## Search +exec_search=false +hide_search=false +parse_search=false +insensitive=false + +## Other +hide_scroll=false +no_actions=true +sort_order=default +gtk_dark=true +filter_rate=100 + +## Keys +key_expand=Tab +key_exit=Escape + diff --git a/config/wofi/configs/config-plasma b/config/wofi/configs/config-plasma new file mode 100644 index 0000000..185a1c7 --- /dev/null +++ b/config/wofi/configs/config-plasma @@ -0,0 +1,46 @@ +## Wofi Config + +## General +mode=drun,run +run-always_parse_args=true +show=drun +prompt=Apps +#normal_window=true +#layer=overlay +term=foot +columns=1 +lines=15 + +## Geometry +height=20% +width=14% +xoffset=10 +yoffset=-40 +location=bottom_left +orientation=vertical +halign=fill +line_wrap=off +dynamic_lines=false + +## Images +allow_markup=true +allow_images=true +image_size=24 + +## Search +exec_search=false +hide_search=false +parse_search=false +insensitive=false + +## Other +hide_scroll=false +no_actions=true +sort_order=default +gtk_dark=true +filter_rate=100 + +## Keys +key_expand=Tab +key_exit=Escape + diff --git a/config/wofi/style.css b/config/wofi/style.css new file mode 120000 index 0000000..cf63413 --- /dev/null +++ b/config/wofi/style.css @@ -0,0 +1 @@ +/home/ja/00-Shared-Drives/Common-nvme/git-packages - nvme/01-Published/Hyprland-Dots/config/wofi/styles/style-dark.css \ No newline at end of file diff --git a/config/wofi/styles/style-dark.css b/config/wofi/styles/style-dark.css new file mode 100644 index 0000000..7f8419e --- /dev/null +++ b/config/wofi/styles/style-dark.css @@ -0,0 +1,69 @@ +*{ +font-family: "JetBrainsMono Nerd Font"; +min-height: 0; +font-size: 100%; +font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; +padding: 0px; +margin-top: 1px; +margin-bottom: 1px; +} + + +#window { + /*background-color: --wofi-color0;*/ + background-color: rgba(50, 50, 50, 0.6); + color: --wofi-color2; + /*border: 2px solid --wofi-color1;*/ + border-radius: 0px; +} + +#outer-box { + padding: 10px; +} + +#input { + background-color: --wofi-color1; + /*border: 1px solid --wofi-color3;*/ + padding: 4px 6px; +} + +#scroll { + margin-top: 10px; + margin-bottom: 10px; +} + +#inner-box { +} + +#img { + padding-right: 5px; +} + +#text { + color: --wofi-color2; +} + +#text:selected { + color: --wofi-color0; +} + +#entry { + padding: 3px; +} + +#entry:selected { + background-color: --wofi-color3; + background: linear-gradient(90deg, #89b4fa, #b4befe, #89b4fa); + color: --wofi-color0; +} + +#unselected { +} + +#selected { +} + +#input, #entry:selected { + border-radius: 10px; + border: 1px solid #b4befe; +} diff --git a/config/wofi/styles/style-light.css b/config/wofi/styles/style-light.css new file mode 100644 index 0000000..6c3985e --- /dev/null +++ b/config/wofi/styles/style-light.css @@ -0,0 +1,71 @@ +*{ +font-family: "JetBrainsMono Nerd Font"; +min-height: 0; +/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ +font-size: 100%; +dfont-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; +padding: 0px; +margin-top: 1px; +margin-bottom: 1px; +} + +#window { + /*background-color: --wofi-color0;*/ + background: rgba(230, 230, 250, 0.8); + color: #1e1e2e; + /*border: 2px solid #1e1e2e;*/ + border-radius: 8px; +} + +#outer-box { + padding: 10px; +} + +#input { + background-color: #e7e7ec; + /*border: 1px solid #1e1e2e;*/ + padding: 4px 6px; + color: #585b70 +} + +#scroll { + margin-top: 10px; + margin-bottom: 10px; +} + +#inner-box { + color: #585b70 +} + +#img { + padding-right: 5px; +} + +#text { + color: #585b70; +} + +#text:selected { + color: #1e1e2e; +} + +#entry { + padding: 3px; +} + +#entry:selected { + background-color: --wofi-color3; + background: linear-gradient(90deg, #89b4fa, #b4befe, #89b4fa); + color: --wofi-color0; +} + +#unselected { +} + +#selected { +} + +#input, #entry:selected { + border-radius: 10px; + border: 1px solid #b4befe; +} diff --git a/copy.sh b/copy.sh new file mode 100644 index 0000000..e530720 --- /dev/null +++ b/copy.sh @@ -0,0 +1,121 @@ +#!/bin/bash + +### https://github.com/JaKooLit/JaKooLit + +# Check if running as root. If root, script will exit +if [[ $EUID -eq 0 ]]; then + echo "This script should not be executed as root! Exiting......." + exit 1 +fi + +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +WARN="$(tput setaf 166)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +ORANGE=$(tput setaf 166) +YELLOW=$(tput setaf 3) +RESET=$(tput sgr0) + +# Set the name of the log file to include the current date and time +LOG="install-$(date +%d-%H%M%S)_dotfiles.log" + +# preparing hyprland.conf keyboard layout +# Function to detect keyboard layout in an X server environment +detect_x_layout() { + layout=$(setxkbmap -query | grep layout | awk '{print $2}') + if [ -n "$layout" ]; then + echo "$layout" + else + echo "unknown" + fi +} + +# Function to detect keyboard layout in a tty environment +detect_tty_layout() { + layout=$(localectl status --no-pager | awk '/X11 Layout/ {print $3}') + if [ -n "$layout" ]; then + echo "$layout" + else + echo "unknown" + fi +} + +# Detect the current keyboard layout based on the environment +if [ -n "$DISPLAY" ]; then + # System is in an X server environment + layout=$(detect_x_layout) +else + # System is in a tty environment + layout=$(detect_tty_layout) +fi + +echo "Keyboard layout: $layout" + +printf "${NOTE} Detecting keyboard layout to prepare necessary changes in hyprland.conf before copying\n" +printf "\n" + +# Prompt the user to confirm whether the detected layout is correct +read -p "Detected keyboard layout or keymap: $layout. Is this correct? [y/n] " confirm + +if [ "$confirm" = "y" ]; then + # If the detected layout is correct, update the 'kb_layout=' line in the file + awk -v layout="$layout" '/kb_layout/ {$0 = " kb_layout=" layout} 1' config/hypr/configs/Settings.conf > temp.conf + mv temp.conf config/hypr/configs/Settings.conf +else + # If the detected layout is not correct, prompt the user to enter the correct layout + printf "${WARN} Ensure to type in the proper keyboard layout, e.g., gb, de, pl, etc.\n" + read -p "Please enter the correct keyboard layout: " new_layout + # Update the 'kb_layout=' line with the correct layout in the file + awk -v new_layout="$new_layout" '/kb_layout/ {$0 = " kb_layout=" new_layout} 1' config/hypr/configs/Settings.conf > temp.conf + mv temp.conf config/hypr/configs/Settings.conf +fi +printf "\n" + +### Copy Config Files ### +set -e # Exit immediately if a command exits with a non-zero status. + +printf "${NOTE} copying dotfiles\n" + for DIR in btop cava dunst foot hypr swappy swaylock waybar wofi; do + DIRPATH=~/.config/$DIR + if [ -d "$DIRPATH" ]; then + echo -e "${NOTE} - Config for $DIR found, attempting to back up." + mv $DIRPATH $DIRPATH-back-up 2>&1 | tee -a "$LOG" + echo -e "${NOTE} - Backed up $DIR to $DIRPATH-back-up." + fi + done + + for DIRw in wallpapers; do + DIRPATH=~/Pictures/$DIRw + if [ -d "$DIRPATH" ]; then + echo -e "${NOTE} - wallpapers in $DIRw found, attempting to back up." + mv $DIRPATH $DIRPATH-back-up 2>&1 | tee -a "$LOG" + echo -e "${NOTE} - Backed up $DIRw to $DIRPATH-back-up." + fi + done + +# Copying config files +printf " Copying config files...\n" +mkdir -p ~/.config +cp -r config/* ~/.config/ && { echo "${OK}Copy completed!"; } || { echo "${ERROR} Failed to copy config files."; exit 1; } 2>&1 | tee -a "$LOG" + +# copying Wallpapers +mkdir -p ~/Pictures/wallpapers +cp -r wallpapers ~/Pictures/ && { echo "${OK}Copy completed!"; } || { echo "${ERROR} Failed to copy wallpapers."; exit 1; } 2>&1 | tee -a "$LOG" + +# Initial Symlinks to avoid errors +# symlinks for waybar +ln -sf "$HOME/.config/waybar/configs/config-default" "$HOME/.config/waybar/config" && \ +ln -sf "$HOME/.config/waybar/style/style-dark.css" "$HOME/.config/waybar/style.css" && \ + +# symlinks for dunst +ln -sf "$HOME/.config/dunst/styles/dunstrc-dark" "$HOME/.config/dunst/dunstrc" && \ +# symlink for wofi +ln -sf "$HOME/.config/wofi/styles/style-dark.css" "$HOME/.config/wofi/style.css" && \ + +# Set some files as executable +chmod +x ~/.config/hypr/scripts/* 2>&1 | tee -a "$LOG" + +printf "\n${OK} Copy Completed!\n\n" +printf "${NOTE} Highly recommended to logout and re-login\n\n" diff --git a/wallpapers/Dynamic-Wallpapers/Dark/Beach_dark.jpg b/wallpapers/Dynamic-Wallpapers/Dark/Beach_dark.jpg new file mode 100644 index 0000000..07188cd Binary files /dev/null and b/wallpapers/Dynamic-Wallpapers/Dark/Beach_dark.jpg differ diff --git a/wallpapers/Dynamic-Wallpapers/Light/Beach_light.jpg b/wallpapers/Dynamic-Wallpapers/Light/Beach_light.jpg new file mode 100644 index 0000000..40e2e43 Binary files /dev/null and b/wallpapers/Dynamic-Wallpapers/Light/Beach_light.jpg differ diff --git a/wallpapers/mecha-nostalgia.png b/wallpapers/mecha-nostalgia.png new file mode 100644 index 0000000..87f7867 Binary files /dev/null and b/wallpapers/mecha-nostalgia.png differ