diff --git a/CHANGELOGS.md b/CHANGELOGS.md new file mode 100644 index 0000000..99d3e22 --- /dev/null +++ b/CHANGELOGS.md @@ -0,0 +1,11 @@ +## Changelogs + +## 30-Sep-2023 +- added gnome-system-monitor (right click cpu module in waybar) + +## 27-Sep-2023 +- remove auto start of portal-hyprland-hyprland +- removal of Virtual-1 monitor in Monitors.conf + +## 22-Sep-2023 +- initial release diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..fdddb29 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/README.md b/README.md index 57c2069..08aefde 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,79 @@ -# Debian-Ubuntu-Hyprland -BETA!! A Hyprland installer for Debian and Ubuntu + +### Debian 12 Trixie- Hyprland install script based from my Fedora-Hyprland [`Link`](https://github.com/JaKooLit/Fedor-Hyprland) and Arch-Hyprland-v4 [`Link`](https://github.com/JaKooLit/Hyprland-v4) + +### ⚠️ Pre-requisites: +- Needs a Debian 12 Testing (Trixie) Branch as it needs a newer wayland packages! I have tried on Stable Debian 12 Bookworm in which, Hyprland wont build +- if you have manually installed Debian, make sure that "deb-src's" are enabled in your /etc/apt/sources.list. By default, it will enable the first line with deb-src + + +![alt text](https://github.com/JaKooLit/Fedora-Hyprland/blob/main/screenshots/dual_panel-light-dark-switch.png) + +![alt text](https://github.com/JaKooLit/Fedora-Hyprland/blob/main/screenshots/default-light-dark.png) + + +### 📷 you can find more screenshots in the screenshots directory + +### ✨ Youtube presentation [`Link`]() - to be added soon :) + +### ✨ Some notes on installation +- This script is meant to install in Debian Testing (Trixie). But it may work in newer Ubuntu and based +- I However, if you decided to try, recommend to install SDDM. Apart from GDM and SDDM, any other Login Manager may not work nor launch Hyprland. However, hyprland can be launched through tty by type Hyprland + +### ⚠️ WARNING! nwg-look takes long time to install. +- nwg-look is a utility to costumize your GTK theme. It's a LXAppearance like. Its a good tool though but this package is entirely optional + +### ✨ Costumize the packages +- inside the install-scripts folder, you can edit 00-hypr-pkgs.sh. Do not edit 00-dependencies.sh unless you know what you are doing +- default GTK theme if agreed to be installed is Tokyo night GTK themes (dark and light) + Tokyo night SE icons + +### 🔔 NOTICE TO NVIDIA OWNERS ### +- by default it is installing the latest and newest nvidia drivers. If you have an older nvidia-gpu (GTX 800 series and older), check out nvidia-debian website [`LINK`](https://wiki.debian.org/NvidiaGraphicsDrivers) and edit nvidia.sh in install-scripts folder to install proper gpu driver + +### ✨ to run +> clone this repo by using git. Change directory, make executable and run the script +```bash +git clone https://github.com/JaKooLit/Debian-Ubuntu-Hyprland.git +cd Debian-Ubuntu-Hyprland +chmod +x install.sh +./install.sh +``` +### ✨ for ZSH and OH-MY-ZSH installation +> do this once installed and script completed; do the following to change the default shell zsh +```bash +chsh -s $(which zsh) +zsh +source ~/.zshrc +``` +- reboot or logout +- by default mikeh theme is installed. You can find more themes from this [`OH-MY-ZSH-THEMES`](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes) +- to change the theme, edit ~/.zshrc ZSH_THEME="desired theme" + +### ✨ Hyprland Dot Notes +- super h for launching a small help file +- super e to view / edit settings, monitor, keybinds, Environment Variables, etc +- go through the keybinds. There are alot of hidden features like dual panel, change waybar styles, change wallpaper, etc... its too long to put all in the readme!!! +- super d for wofi (menu) +- super t for thunar (file manager) +- +### ✨ Roadmap: +- [ ] Install zsh and oh-my-zsh without necessary steps above +- [ ] possibly adding gruvbox themes, cursors, icons +- [ ] adding vertical waybar +- [X] ~~Use kitty in favor of foot~~ - Dropped the idea of kitty. Kitty is using twice memory compared to foot. + +### ❗ some known issues +- reports from members of my discord, states that some users of nvidia are getting stuck on sddm login. credit to @Kenni Fix stated was +``` + while in sddm press ctrl+alt+F2 or F3 +log into your account +`lspci -nn`, find the id of your nvidia card +`ls /dev/dri/by-path` find the matching id +`ls -l /dev/dri/by-path` to check where the symlink points to +) +7. add "env = WLR_DRM_DEVICES,/dev/dri/cardX" to the ENVvariables config (.config/hypr/configs/ENVariables.conf) ; X being where the symlink of the gpu points to +``` +- more info from the hyprland wiki [`Hyprland Wiki Link`](https://wiki.hyprland.org/FAQ/#my-external-monitor-is-blank--doesnt-render--receives-no-signal-laptop) + +- Does not work in Ubuntu 23.04 +### 👍 CREDITS + diff --git a/assets/.zshrc b/assets/.zshrc new file mode 100644 index 0000000..4f684c9 --- /dev/null +++ b/assets/.zshrc @@ -0,0 +1,18 @@ +# If you come from bash you might have to change your $PATH. +# export PATH=$HOME/bin:/usr/local/bin:$PATH + +export ZSH="$HOME/.oh-my-zsh" + +ZSH_THEME="gnzh" + +plugins=( + git + dnf + zsh-autosuggestions + zsh-syntax-highlighting +) + +source $ZSH/oh-my-zsh.sh + + + diff --git a/assets/hyprland.desktop b/assets/hyprland.desktop new file mode 100644 index 0000000..8bc9468 --- /dev/null +++ b/assets/hyprland.desktop @@ -0,0 +1,5 @@ +[Desktop Entry] +Name=Hyprland +Comment=An intelligent dynamic tiling Wayland compositor +Exec=Hyprland +Type=Application diff --git a/assets/tokyo-themes/Tokyonight-Dark-B.zip b/assets/tokyo-themes/Tokyonight-Dark-B.zip new file mode 100644 index 0000000..f8b2a3d Binary files /dev/null and b/assets/tokyo-themes/Tokyonight-Dark-B.zip differ diff --git a/assets/tokyo-themes/Tokyonight-Light-B.zip b/assets/tokyo-themes/Tokyonight-Light-B.zip new file mode 100644 index 0000000..0ad8c2c Binary files /dev/null and b/assets/tokyo-themes/Tokyonight-Light-B.zip differ diff --git a/config/Thunar/accels.scm b/config/Thunar/accels.scm new file mode 100644 index 0000000..0dd646e --- /dev/null +++ b/config/Thunar/accels.scm @@ -0,0 +1,131 @@ +; thunar GtkAccelMap rc-file -*- scheme -*- +; this file is an automated accelerator map dump +; +; (gtk_accel_path "/ThunarStandardView/sort-by-type" "") +; (gtk_accel_path "/ThunarStatusBar/toggle-last-modified" "") +; (gtk_accel_path "/ThunarActionManager/cut" "x") +; (gtk_accel_path "/ThunarStandardView/sort-by-size" "") +; (gtk_accel_path "/ThunarWindow/file-menu" "") +; (gtk_accel_path "/ThunarWindow/close-tab" "w") +; (gtk_accel_path "/ThunarStatusBar/toggle-size" "") +; (gtk_accel_path "/ThunarWindow/new-window" "n") +; (gtk_accel_path "/ThunarBookmarks/05236c1e56bf89e963d95883e09da5b4" "") +; (gtk_accel_path "/ThunarWindow/clear-directory-specific-settings" "") +; (gtk_accel_path "/ThunarWindow/close-window" "q") +; (gtk_accel_path "/ThunarWindow/open-parent" "Up") +; (gtk_accel_path "/ThunarWindow/view-side-pane-menu" "") +; (gtk_accel_path "/ThunarStatusBar/toggle-size-in-bytes" "") +; (gtk_accel_path "/ThunarWindow/switch-previous-tab" "Page_Up") +; (gtk_accel_path "/ThunarBookmarks/3925ac2f7e4055558c447a20c2e047ad" "") +; (gtk_accel_path "/ThunarActionManager/open" "o") +; (gtk_accel_path "/ThunarStandardView/sort-ascending" "") +; (gtk_accel_path "/ThunarWindow/toggle-split-view" "F3") +; (gtk_accel_path "/ThunarActionManager/copy-2" "Insert") +; (gtk_accel_path "/ThunarActionManager/trash-delete" "Delete") +; (gtk_accel_path "/ThunarWindow/open-recent" "") +; (gtk_accel_path "/ThunarWindow/view-configure-toolbar" "") +; (gtk_accel_path "/ThunarStandardView/forward" "Right") +; (gtk_accel_path "/ThunarActionManager/restore" "") +; (gtk_accel_path "/ThunarWindow/open-location-alt" "d") +; (gtk_accel_path "/ThunarBookmarks/54b46b08907eba130aa7b45747971edc" "") +; (gtk_accel_path "/ThunarWindow/zoom-out-alt" "minus") +; (gtk_accel_path "/ThunarStandardView/select-by-pattern" "s") +; (gtk_accel_path "/ThunarWindow/open-file-menu" "F10") +; (gtk_accel_path "/ThunarWindow/contents" "F1") +; (gtk_accel_path "/ThunarWindow/show-highlight" "") +; (gtk_accel_path "/ThunarBookmarks/44e0e66b3d753576f90ed75c87917822" "") +; (gtk_accel_path "/ThunarStandardView/sort-descending" "") +; (gtk_accel_path "/ThunarStandardView/sort-by-name" "") +; (gtk_accel_path "/ThunarBookmarks/b6b3368230fb9c168f1090ce48fbb4f5" "") +; (gtk_accel_path "/ThunarStandardView/select-all-files" "a") +; (gtk_accel_path "/ThunarActionManager/execute" "") +; (gtk_accel_path "/ThunarStandardView/properties" "Return") +; (gtk_accel_path "/ThunarActionManager/cut-2" "") +; (gtk_accel_path "/ThunarStandardView/sort-by-dtime" "") +; (gtk_accel_path "/ThunarWindow/switch-next-tab" "Page_Down") +; (gtk_accel_path "/ThunarActionManager/paste-2" "Insert") +; (gtk_accel_path "/ThunarWindow/open-templates" "") +; (gtk_accel_path "/ThunarStatusBar/toggle-filetype" "") +; (gtk_accel_path "/ThunarBookmarks/e02afe67295bafd99368cbfb38bfb76a" "") +; (gtk_accel_path "/ThunarWindow/close-all-windows" "w") +; (gtk_accel_path "/ThunarStandardView/create-document" "") +; (gtk_accel_path "/ThunarWindow/detach-tab" "") +; (gtk_accel_path "/ThunarBookmarks/707266d8a544f819b5de3061849d9040" "") +; (gtk_accel_path "/ThunarBookmarks/978d3e7a7225e42c977fe94183792d87" "") +; (gtk_accel_path "/ThunarWindow/cancel-search" "Escape") +; (gtk_accel_path "/ThunarWindow/zoom-in-alt2" "equal") +; (gtk_accel_path "/ThunarShortcutsPane/sendto-shortcuts" "d") +; (gtk_accel_path "/ThunarActionManager/undo" "z") +; (gtk_accel_path "/ThunarStandardView/toggle-sort-order" "") +; (gtk_accel_path "/ThunarWindow/reload-alt" "F5") +; (gtk_accel_path "/ThunarWindow/view-location-selector-entry" "") +; (gtk_accel_path "/ThunarActionManager/paste" "v") +; (gtk_accel_path "/ThunarWindow/zoom-in-alt1" "plus") +; (gtk_accel_path "/ThunarWindow/view-menubar" "m") +; (gtk_accel_path "/ThunarStandardView/back" "Left") +; (gtk_accel_path "/ThunarWindow/open-desktop" "") +; (gtk_accel_path "/ThunarWindow/view-as-detailed-list" "2") +; (gtk_accel_path "/ThunarActionManager/restore-show" "") +; (gtk_accel_path "/ThunarWindow/zoom-out" "KP_Subtract") +; (gtk_accel_path "/ThunarStatusBar/toggle-display-name" "") +; (gtk_accel_path "/ThunarWindow/sendto-menu" "") +; (gtk_accel_path "/ThunarWindow/go-menu" "") +; (gtk_accel_path "/ThunarWindow/remove-from-recent" "") +; (gtk_accel_path "/ThunarActionManager/open-with-other" "") +; (gtk_accel_path "/ThunarStandardView/invert-selection" "") +; (gtk_accel_path "/ThunarWindow/view-side-pane-shortcuts" "b") +; (gtk_accel_path "/ThunarWindow/view-location-selector-menu" "") +; (gtk_accel_path "/ThunarWindow/edit-menu" "") +; (gtk_accel_path "/ThunarWindow/reload" "r") +; (gtk_accel_path "/ThunarActionManager/move-to-trash" "") +; (gtk_accel_path "/ThunarActionManager/copy" "c") +; (gtk_accel_path "/ThunarActionManager/delete-3" "KP_Delete") +; (gtk_accel_path "/ThunarWindow/toggle-side-pane" "F9") +; (gtk_accel_path "/ThunarStandardView/unselect-all-files" "Escape") +; (gtk_accel_path "/ThunarStandardView/arrange-items-menu" "") +; (gtk_accel_path "/ThunarStandardView/sort-by-mtime" "") +; (gtk_accel_path "/ThunarWindow/open-computer" "") +; (gtk_accel_path "/ThunarWindow/bookmarks-menu" "") +; (gtk_accel_path "/ThunarWindow/toggle-image-preview" "") +; (gtk_accel_path "/ThunarWindow/view-as-icons" "1") +; (gtk_accel_path "/ThunarActionManager/delete-2" "Delete") +; (gtk_accel_path "/ThunarWindow/zoom-in" "KP_Add") +; (gtk_accel_path "/ThunarStandardView/rename" "F2") +; (gtk_accel_path "/ThunarWindow/open-location" "l") +; (gtk_accel_path "/ThunarWindow/view-as-compact-list" "3") +; (gtk_accel_path "/ThunarWindow/view-menu" "") +; (gtk_accel_path "/ThunarWindow/search" "f") +; (gtk_accel_path "/ThunarWindow/new-tab" "t") +; (gtk_accel_path "/ThunarWindow/zoom-reset" "KP_0") +; (gtk_accel_path "/ThunarWindow/contents/help-menu" "") +; (gtk_accel_path "/ThunarActionManager/open-in-new-tab" "p") +; (gtk_accel_path "/ThunarWindow/view-location-selector-buttons" "") +; (gtk_accel_path "/ThunarActionManager/redo" "z") +; (gtk_accel_path "/ThunarWindow/open-trash" "") +; (gtk_accel_path "/ThunarActionManager/open-in-new-window" "o") +; (gtk_accel_path "/ThunarWindow/view-statusbar" "") +; (gtk_accel_path "/ThunarActionManager/open-location" "") +; (gtk_accel_path "/ThunarStandardView/duplicate" "") +; (gtk_accel_path "/ThunarBookmarks/c76f07a72d3c8ef5d4bf8e84c8981221" "") +; (gtk_accel_path "/ThunarActionManager/trash-delete-2" "KP_Delete") +; (gtk_accel_path "/ThunarBookmarks/1b01cfaf1605da233a4b53296606bab0" "") +; (gtk_accel_path "/ThunarBookmarks/780467f8577186d3f1806d9df2a8aab9" "") +; (gtk_accel_path "/ThunarBookmarks/e9f83883e2df949f12acd9850f926a67" "") +; (gtk_accel_path "/ThunarStandardView/create-folder" "n") +; (gtk_accel_path "/ThunarWindow/open-home" "Home") +; (gtk_accel_path "/ThunarWindow/show-hidden" "h") +; (gtk_accel_path "/ThunarStandardView/back-alt" "BackSpace") +; (gtk_accel_path "/ThunarStandardView/set-default-app" "") +; (gtk_accel_path "/ThunarWindow/empty-trash" "") +; (gtk_accel_path "/ThunarBookmarks/a02380ffe1621507749c5c5773da7194" "") +; (gtk_accel_path "/ThunarWindow/preferences" "") +; (gtk_accel_path "/ThunarActionManager/delete" "") +; (gtk_accel_path "/ThunarWindow/view-side-pane-tree" "e") +; (gtk_accel_path "/ThunarWindow/open-file-system" "") +; (gtk_accel_path "/ThunarWindow/open-network" "") +; (gtk_accel_path "/ThunarActionManager/sendto-desktop" "") +; (gtk_accel_path "/ThunarStandardView/make-link" "") +; (gtk_accel_path "/ThunarBookmarks/5a2d02665264f10a15b7d94f958e51dc" "") +; (gtk_accel_path "/ThunarWindow/zoom-reset-alt" "0") +; (gtk_accel_path "/ThunarBookmarks/3b727c236c2811d0a6488b65982ea897" "") +; (gtk_accel_path "/ThunarWindow/about" "") diff --git a/config/Thunar/renamerrc b/config/Thunar/renamerrc new file mode 100644 index 0000000..1cbe905 --- /dev/null +++ b/config/Thunar/renamerrc @@ -0,0 +1,10 @@ +[Configuration] +LastActiveMode=THUNAR_RENAMER_MODE_NAME +LastActiveRenamer=ThunarSbrDateRenamer + +[ThunarSbrDateRenamer] +Offset=0 +Mode=THUNAR_SBR_DATE_MODE_NOW +Format=%Y%m%d +OffsetMode=THUNAR_SBR_OFFSET_MODE_LEFT + diff --git a/config/Thunar/uca.xml b/config/Thunar/uca.xml new file mode 100644 index 0000000..358e2ec --- /dev/null +++ b/config/Thunar/uca.xml @@ -0,0 +1,59 @@ + + + + audacious + Add to audacious playlist + + 1681893052016505-1 + audacious -e %U + + * + * + + + + utilities-terminal + Open Terminal Here + + 1488955845049151-1 + for f in %F; do exo-open --working-directory "$f" --launch TerminalEmulator; done + + + * + + + + + checkbox + Check sha1sum + + 1526633271260079-26 + zenity --info --title="Check sha1 for %n" --text="$(sha1sum %f)" + Check sha1sum + + *.iso;*.ISO + + + + checkbox + Check sha256sum + + 1577688162350307-1 + zenity --info --title="Check sha256 for %n" --text="$(sha256sum %f)" + Check sha256sum + + *.iso;*.ISO + + + + checkbox + Check md5sum + + 1526736788575383-2 + zenity --info --title="Check md5 for %n" --text="$(md5sum %f)" + Check md5sum + + *.iso;*.ISO;*.tar.gz;*.TAR.GZ;*.zip;*.ZIP + + + 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/foot/foot.ini b/config/foot/foot.ini new file mode 100644 index 0000000..46871aa --- /dev/null +++ b/config/foot/foot.ini @@ -0,0 +1,193 @@ +# -*- 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=FantasqueSansMono:weight=SemiBold:size=14 +# 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..4f7f0a6 --- /dev/null +++ b/config/hypr/HelpFile.md @@ -0,0 +1,90 @@ +# 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 update discord server link or you can message me directly on my discord. DC user: Ja.KooLit +# 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 ``` + +# 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..b17c59b --- /dev/null +++ b/config/hypr/configs/ENVariables.conf @@ -0,0 +1,31 @@ +#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 = XDG_SESSION_TYPE,wayland +#env = __GLX_VENDOR_LIBRARY_NAME,nvidia +#env = GBM_BACKEND,nvidia-drm ## it causes issues like Hyprland crashing so care + +#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..34650ca --- /dev/null +++ b/config/hypr/configs/Execs.conf @@ -0,0 +1,44 @@ +#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 && swww img $HOME/Pictures/wallpapers/kitty_dark.jpg #using swww utility +exec-once = swaybg -m fill -i $HOME/Pictures/wallpapers/staircase.jpg #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 + +exec-once = /usr/lib/x86_64-linux-gnu/libexec/polkit-kde-authentication-agent-1 + +# screen share +#exec-once = $scriptsDir/PortalHyprlandDebian.sh + +# apps, blueman, network manager applet and ROG-control-Center +exec-once = $scriptsDir/Startup.sh +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 Themes +#source = $themes/frappe.conf +#source = $themes/latte.conf +#source = $themes/macchiato.conf +source = $themes/mocha.conf + +# 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 2 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..8344d1e --- /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 +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..f8a9ad4 --- /dev/null +++ b/config/hypr/configs/Settings.conf @@ -0,0 +1,145 @@ +# blurls +# 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(df8e1d) + 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 = liner, 0, 0, 1, 1 + 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 = liner, 1, 1, 1, 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, 20, nice + animation = borderangle, 1, 30, liner, 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..70e7780 --- /dev/null +++ b/config/hypr/configs/WindowRules.conf @@ -0,0 +1,47 @@ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + +windowrule = float, org.kde.polkit-kde-authentication-agent-1 +windowrule = float, nm-connection-editor|blueman-manager +windowrule = float, swayimg|Viewnior|pavucontrol +windowrule = float, nwg-look|qt5ct|mpv +windowrule = float, onedriver|onedriver-launcher +windowrule = float, zoom +windowrule = float, wofi +windowrule = float, gnome-system-monitor + +# mission center (windows task manager look alike) +windowrule = float, missioncenter +windowrule = center, missioncenter +windowrule = size 1000 700, missioncenter +#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:^(Microsoft-edge-beta)$ #this is on arch +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/dunst/dunstrc b/config/hypr/dunst/dunstrc new file mode 100644 index 0000000..e69de29 diff --git a/config/hypr/dunst/icons/backup.png b/config/hypr/dunst/icons/backup.png new file mode 100644 index 0000000..a60a495 Binary files /dev/null and b/config/hypr/dunst/icons/backup.png differ diff --git a/config/hypr/dunst/icons/battery-quarter-solid.svg b/config/hypr/dunst/icons/battery-quarter-solid.svg new file mode 100644 index 0000000..450ef3d --- /dev/null +++ b/config/hypr/dunst/icons/battery-quarter-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/config/hypr/dunst/icons/battery-status.png b/config/hypr/dunst/icons/battery-status.png new file mode 100644 index 0000000..07bf815 Binary files /dev/null and b/config/hypr/dunst/icons/battery-status.png differ diff --git a/config/hypr/dunst/icons/brightness-100.png b/config/hypr/dunst/icons/brightness-100.png new file mode 100644 index 0000000..1e28ac3 Binary files /dev/null and b/config/hypr/dunst/icons/brightness-100.png differ diff --git a/config/hypr/dunst/icons/brightness-20.png b/config/hypr/dunst/icons/brightness-20.png new file mode 100644 index 0000000..aee9c52 Binary files /dev/null and b/config/hypr/dunst/icons/brightness-20.png differ diff --git a/config/hypr/dunst/icons/brightness-40.png b/config/hypr/dunst/icons/brightness-40.png new file mode 100644 index 0000000..bbedd1c Binary files /dev/null and b/config/hypr/dunst/icons/brightness-40.png differ diff --git a/config/hypr/dunst/icons/brightness-60.png b/config/hypr/dunst/icons/brightness-60.png new file mode 100644 index 0000000..4cd838b Binary files /dev/null and b/config/hypr/dunst/icons/brightness-60.png differ diff --git a/config/hypr/dunst/icons/brightness-80.png b/config/hypr/dunst/icons/brightness-80.png new file mode 100644 index 0000000..6684bdb Binary files /dev/null and b/config/hypr/dunst/icons/brightness-80.png differ diff --git a/config/hypr/dunst/icons/dropper.png b/config/hypr/dunst/icons/dropper.png new file mode 100644 index 0000000..2e222a3 Binary files /dev/null and b/config/hypr/dunst/icons/dropper.png differ diff --git a/config/hypr/dunst/icons/microphone-mute.png b/config/hypr/dunst/icons/microphone-mute.png new file mode 100644 index 0000000..1780e33 Binary files /dev/null and b/config/hypr/dunst/icons/microphone-mute.png differ diff --git a/config/hypr/dunst/icons/microphone.png b/config/hypr/dunst/icons/microphone.png new file mode 100644 index 0000000..d1b6d76 Binary files /dev/null and b/config/hypr/dunst/icons/microphone.png differ diff --git a/config/hypr/dunst/icons/music.png b/config/hypr/dunst/icons/music.png new file mode 100644 index 0000000..92bf4c6 Binary files /dev/null and b/config/hypr/dunst/icons/music.png differ diff --git a/config/hypr/dunst/icons/palette.png b/config/hypr/dunst/icons/palette.png new file mode 100644 index 0000000..3ba73d0 Binary files /dev/null and b/config/hypr/dunst/icons/palette.png differ diff --git a/config/hypr/dunst/icons/picture.png b/config/hypr/dunst/icons/picture.png new file mode 100644 index 0000000..4669bc3 Binary files /dev/null and b/config/hypr/dunst/icons/picture.png differ diff --git a/config/hypr/dunst/icons/timer.png b/config/hypr/dunst/icons/timer.png new file mode 100644 index 0000000..420d1f1 Binary files /dev/null and b/config/hypr/dunst/icons/timer.png differ diff --git a/config/hypr/dunst/icons/uptime.png b/config/hypr/dunst/icons/uptime.png new file mode 100644 index 0000000..9dd08de Binary files /dev/null and b/config/hypr/dunst/icons/uptime.png differ diff --git a/config/hypr/dunst/icons/volume-high.png b/config/hypr/dunst/icons/volume-high.png new file mode 100644 index 0000000..200f17b Binary files /dev/null and b/config/hypr/dunst/icons/volume-high.png differ diff --git a/config/hypr/dunst/icons/volume-low.png b/config/hypr/dunst/icons/volume-low.png new file mode 100644 index 0000000..17cfff7 Binary files /dev/null and b/config/hypr/dunst/icons/volume-low.png differ diff --git a/config/hypr/dunst/icons/volume-mid.png b/config/hypr/dunst/icons/volume-mid.png new file mode 100644 index 0000000..1a3ad3a Binary files /dev/null and b/config/hypr/dunst/icons/volume-mid.png differ diff --git a/config/hypr/dunst/icons/volume-mute.png b/config/hypr/dunst/icons/volume-mute.png new file mode 100644 index 0000000..0b9b0c3 Binary files /dev/null and b/config/hypr/dunst/icons/volume-mute.png differ diff --git a/config/hypr/dunst/icons/vpn.png b/config/hypr/dunst/icons/vpn.png new file mode 100644 index 0000000..e31acaa Binary files /dev/null and b/config/hypr/dunst/icons/vpn.png differ diff --git a/config/hypr/dunst/images/notification.png b/config/hypr/dunst/images/notification.png new file mode 100644 index 0000000..48f6e3c Binary files /dev/null and b/config/hypr/dunst/images/notification.png differ diff --git a/config/hypr/dunst/images/notification2.png b/config/hypr/dunst/images/notification2.png new file mode 100644 index 0000000..557777d Binary files /dev/null and b/config/hypr/dunst/images/notification2.png differ diff --git a/config/hypr/dunst/images/notification3.png b/config/hypr/dunst/images/notification3.png new file mode 100644 index 0000000..40303e2 Binary files /dev/null and b/config/hypr/dunst/images/notification3.png differ diff --git a/config/hypr/dunst/images/notification4.png b/config/hypr/dunst/images/notification4.png new file mode 100755 index 0000000..4f3a210 Binary files /dev/null and b/config/hypr/dunst/images/notification4.png differ diff --git a/config/hypr/dunst/reload b/config/hypr/dunst/reload new file mode 100755 index 0000000..9e8ee07 --- /dev/null +++ b/config/hypr/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/hypr/dunst/styles/dunstrc-dark b/config/hypr/dunst/styles/dunstrc-dark new file mode 100755 index 0000000..ef1c864 --- /dev/null +++ b/config/hypr/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/hypr/dunst/styles/dunstrc-light b/config/hypr/dunst/styles/dunstrc-light new file mode 100755 index 0000000..e738d22 --- /dev/null +++ b/config/hypr/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/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 100644 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..97dd6e6 --- /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 2 +done diff --git a/config/hypr/scripts/Brightness.sh b/config/hypr/scripts/Brightness.sh new file mode 100755 index 0000000..3c1fd6c --- /dev/null +++ b/config/hypr/scripts/Brightness.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +iDIR="$HOME/.config/hypr/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..3d6f82c --- /dev/null +++ b/config/hypr/scripts/BrightnessKbd.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env bash + +iDIR="$HOME/.config/hypr/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 100644 index 0000000..b97039e --- /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 100644 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 100644 index 0000000..64cb898 --- /dev/null +++ b/config/hypr/scripts/ChangeLayoutMenu.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +# Files +CONFIG="$HOME/.config/hypr/wofi/WofiBig/config" +STYLE="$HOME/.config/hypr/wofi/style.css" +COLORS="$HOME/.config/hypr/wofi/colors" + +WAYBARFILE="$HOME/.config/hypr/waybar/config" +WOFIFILE="$HOME/.config/hypr/wofi/config" + +# wofi window config (in %) +WIDTH=10 +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" + + +menu(){ +printf "1. default\n" +printf "2. plasma-style\n" +printf "3. gnome-style\n" +printf "4. dual-panel\n" +printf "5. simple\n" +printf "6. no panel" +} + +main() { + choice=$(menu | ${wofi_command} | cut -d. -f1) + case $choice in + 1) + ln -sf "$HOME/.config/hypr/waybar/configs/config-default" "$WAYBARFILE" + ln -sf "$HOME/.config/hypr/wofi/configs/config-default" "$WOFIFILE" + ;; + 2) + ln -sf "$HOME/.config/hypr/waybar/configs/config-plasma" "$WAYBARFILE" + ln -sf "$HOME/.config/hypr/wofi/configs/config-plasma" "$WOFIFILE" + ;; + 3) + ln -sf "$HOME/.config/hypr/waybar/configs/config-gnome" "$WAYBARFILE" + ln -sf "$HOME/.config/hypr/wofi/configs/config-gnome" "$WOFIFILE" + ;; + 4) + ln -sf "$HOME/.config/hypr/waybar/configs/config-dual" "$WAYBARFILE" + ln -sf "$HOME/.config/hypr/wofi/configs/config-default" "$WOFIFILE" + ;; + 5) + ln -sf "$HOME/.config/hypr/waybar/configs/config-simple" "$WAYBARFILE" + ln -sf "$HOME/.config/hypr/wofi/configs/config-default" "$WOFIFILE" + ;; + 6) + 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 + +# Restart Waybar and run other scripts if a choice was made +if [[ -n "$choice" ]]; then + # Restart Waybar + killall waybar +fi + +exec ~/.config/hypr/scripts/Startup.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..51e604c --- /dev/null +++ b/config/hypr/scripts/ClipManager.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +# WOFI STYLES +CONFIG="$HOME/.config/hypr/wofi/WofiBig/config" +STYLE="$HOME/.config/hypr/wofi/style.css" +COLORS="$HOME/.config/hypr/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..90553d1 --- /dev/null +++ b/config/hypr/scripts/DarkLight-swaybg.sh @@ -0,0 +1,54 @@ +#!/bin/bash +set -x +# Define the path +wallpaper_path="$HOME/Pictures/wallpapers/Dynamic-Wallpapers" +hypr_config_path="$HOME/.config/hypr" + +# Define the GTK themes for light and dark modes +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 "${hypr_config_path}/waybar/style/style-${next_mode}.css" "${hypr_config_path}/waybar/style.css" +ln -sf "${hypr_config_path}/dunst/styles/dunstrc-${next_mode}" "${hypr_config_path}/dunst/dunstrc" +ln -sf "${hypr_config_path}/wofi/styles/style-${next_mode}.css" "${hypr_config_path}/wofi/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/Startup.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..09f4334 --- /dev/null +++ b/config/hypr/scripts/DarkLight.sh @@ -0,0 +1,63 @@ +#!/bin/bash +set -x +# Define the path +wallpaper_path="$HOME/Pictures/wallpapers/Dynamic-Wallpapers" +hypr_config_path="$HOME/.config/hypr" + +# 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 "${hypr_config_path}/waybar/style/style-${next_mode}.css" "${hypr_config_path}/waybar/style.css" +ln -sf "${hypr_config_path}/dunst/styles/dunstrc-${next_mode}" "${hypr_config_path}/dunst/dunstrc" +ln -sf "${hypr_config_path}/wofi/styles/style-${next_mode}.css" "${hypr_config_path}/wofi/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/Startup.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..34eb76c --- /dev/null +++ b/config/hypr/scripts/Dunst.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +CONFIG="$HOME/.config/hypr/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 100644 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 100644 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 100644 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 100644 index 0000000..0c02922 --- /dev/null +++ b/config/hypr/scripts/LockScreen.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +CONFIG="$HOME/.config/hypr/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..51aa521 --- /dev/null +++ b/config/hypr/scripts/MediaCtrl.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +music_icon="$HOME/.config/hypr/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/PortalHyprlandDebian.sh b/config/hypr/scripts/PortalHyprlandDebian.sh new file mode 100755 index 0000000..5f4cccb --- /dev/null +++ b/config/hypr/scripts/PortalHyprlandDebian.sh @@ -0,0 +1,8 @@ +#!/bin/bash +sleep 1 +killall xdg-desktop-portal-hyprland +killall xdg-desktop-portal-wlr +killall xdg-desktop-portal +/usr/lib/xdg-desktop-portal-hyprland & +sleep 2 +/usr/libexec/xdg-desktop-portal & diff --git a/config/hypr/scripts/QuickEdit.sh b/config/hypr/scripts/QuickEdit.sh new file mode 100644 index 0000000..bd3ae8f --- /dev/null +++ b/config/hypr/scripts/QuickEdit.sh @@ -0,0 +1,58 @@ +#!/bin/bash + +# WOFI STYLES +CONFIG="$HOME/.config/hypr/wofi/WofiBig/config" +STYLE="$HOME/.config/hypr/wofi/style.css" +COLORS="$HOME/.config/hypr/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/ScreenShot.sh b/config/hypr/scripts/ScreenShot.sh new file mode 100644 index 0000000..372ba02 --- /dev/null +++ b/config/hypr/scripts/ScreenShot.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +iDIR="$HOME/.config/hypr/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/Startup.sh b/config/hypr/scripts/Startup.sh new file mode 100644 index 0000000..4431c13 --- /dev/null +++ b/config/hypr/scripts/Startup.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +SCRIPTSDIR=$HOME/.config/hypr/scripts + +# Kill already running process +_ps=(waybar mako dunst) +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/Sunset.sh b/config/hypr/scripts/Sunset.sh new file mode 100644 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 100644 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 100644 index 0000000..e5d0e53 --- /dev/null +++ b/config/hypr/scripts/Volume.sh @@ -0,0 +1,109 @@ +#!/bin/bash + +iDIR="$HOME/.config/hypr/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 100644 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 100644 index 0000000..a478855 --- /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=20 +HEIGHT=40 + +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/hypr/wofi/WofiBig/config" +STYLE="$HOME/.config/hypr/wofi/style.css" +COLORS="$HOME/.config/hypr/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 100644 index 0000000..f996bba --- /dev/null +++ b/config/hypr/scripts/Waybar.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +CONFIG="$HOME/.config/hypr/waybar/config" +STYLE="$HOME/.config/hypr/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 100644 index 0000000..2fde46e --- /dev/null +++ b/config/hypr/scripts/WaybarStyles.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +# Check which waybar theme is set +THEMEIS=$(realpath ~/.config/hypr/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/hypr/waybar/style/style${SWITCHTO}.css" +if [ -f "$THEMEFILE" ]; then + ln -sf "$THEMEFILE" "$HOME/.config/hypr/waybar/style.css" + +else + echo "Error: $THEMEFILE not found" + exit 1 +fi + +# Restart waybar +killall waybar +exec ~/.config/hypr/scripts/Waybar.sh + + + diff --git a/config/hypr/scripts/Weather.py b/config/hypr/scripts/Weather.py new file mode 100644 index 0000000..cd269d9 --- /dev/null +++ b/config/hypr/scripts/Weather.py @@ -0,0 +1,120 @@ +#!/usr/bin/env python +# From https://raw.githubusercontent.com/rxyhn/dotfiles/main/home/rxyhn/modules/desktop/waybar/scripts/waybar-wttr.py + +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/?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 100644 index 0000000..1e275af --- /dev/null +++ b/config/hypr/scripts/Weather.sh @@ -0,0 +1,79 @@ +#!/bin/bash + +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/$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 100644 index 0000000..3579863 --- /dev/null +++ b/config/hypr/scripts/Wofi.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +CONFIG="$HOME/.config/hypr/wofi/config" +STYLE="$HOME/.config/hypr/wofi/style.css" +COLORS="$HOME/.config/hypr/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 100644 index 0000000..95062ee --- /dev/null +++ b/config/hypr/scripts/WofiBeats.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +## Files +CONFIG="$HOME/.config/hypr/wofi/WofiBig/config" +STYLE="$HOME/.config/hypr/wofi/style.css" +COLORS="$HOME/.config/hypr/wofi/colors" +iDIR="$HOME/.config/hypr/dunst/icons" + + +# wofi window config (in %) +WIDTH=20 +HEIGHT=40 + +## 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://tunein.com/radio/Easy-Rock-Manila-963-s120725/" + 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 100644 index 0000000..41536f6 --- /dev/null +++ b/config/hypr/scripts/WofiBig.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +CONFIG="$HOME/.config/hypr/wofi/WofiBig/config" +STYLE="$HOME/.config/hypr/wofi/style.css" +COLORS="$HOME/.config/hypr/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..f0d07e1 --- /dev/null +++ b/config/hypr/scripts/WofiEmoji.sh @@ -0,0 +1,1868 @@ +#!/bin/bash + +# WOFI STYLES +CONFIG="$HOME/.config/hypr/wofi/WofiBig/config" +STYLE="$HOME/.config/hypr/wofi/style.css" +COLORS="$HOME/.config/hypr/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..cba148c --- /dev/null +++ b/config/hypr/scripts/WofiPower.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +# WOFI STYLES +CONFIG="$HOME/.config/hypr/wofi/WofiBig/config" +STYLE="$HOME/.config/hypr/wofi/style.css" +COLORS="$HOME/.config/hypr/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 diff --git a/config/hypr/swaylock/config b/config/hypr/swaylock/config new file mode 100644 index 0000000..fd13da9 --- /dev/null +++ b/config/hypr/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/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/hypr/waybar/config b/config/hypr/waybar/config new file mode 100644 index 0000000..e69de29 diff --git a/config/hypr/waybar/configs/config-default b/config/hypr/waybar/configs/config-default new file mode 100644 index 0000000..6347911 --- /dev/null +++ b/config/hypr/waybar/configs/config-default @@ -0,0 +1,44 @@ +{ + +"include": "~/.config/hypr/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/hypr/waybar/configs/config-dual b/config/hypr/waybar/configs/config-dual new file mode 100644 index 0000000..41cf722 --- /dev/null +++ b/config/hypr/waybar/configs/config-dual @@ -0,0 +1,74 @@ +[{ +"include": "~/.config/hypr/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/hypr/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/hypr/waybar/configs/config-gnome b/config/hypr/waybar/configs/config-gnome new file mode 100644 index 0000000..50a2ce3 --- /dev/null +++ b/config/hypr/waybar/configs/config-gnome @@ -0,0 +1,46 @@ +{ + +"include": "~/.config/hypr/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/hypr/waybar/configs/config-plasma b/config/hypr/waybar/configs/config-plasma new file mode 100644 index 0000000..c48cbe8 --- /dev/null +++ b/config/hypr/waybar/configs/config-plasma @@ -0,0 +1,44 @@ +{ + +"include": "~/.config/hypr/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/hypr/waybar/configs/config-simple b/config/hypr/waybar/configs/config-simple new file mode 100644 index 0000000..29f37ae --- /dev/null +++ b/config/hypr/waybar/configs/config-simple @@ -0,0 +1,34 @@ +{ + +"include": "~/.config/hypr/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/hypr/waybar/modules b/config/hypr/waybar/modules new file mode 100644 index 0000000..c4b3b5a --- /dev/null +++ b/config/hypr/waybar/modules @@ -0,0 +1,375 @@ +{ + + "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": "sh -c '(sleep 0.5s; wlogout --protocol layer-shell)' & disown", + }, + + "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}" + }, + + "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": "pipewire", + "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, + "on-click-right": "mode", + "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": "{essid}  ", + "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": 0, + "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" + ] + }, + + "wlr/workspaces": { + "format": "{name}", + //"format": "{name}: {icon}", + //"format": "{icon}", + "on-click": "activate", + "all-outputs": false, + "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", + }, + + "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, + }, + + } \ No newline at end of file diff --git a/config/hypr/waybar/style.css b/config/hypr/waybar/style.css new file mode 100644 index 0000000..e69de29 diff --git a/config/hypr/waybar/style/style-b&w.css b/config/hypr/waybar/style/style-b&w.css new file mode 100644 index 0000000..9608eac --- /dev/null +++ b/config/hypr/waybar/style/style-b&w.css @@ -0,0 +1,167 @@ +*{ +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); +} +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: 0 10px; +} +#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/hypr/waybar/style/style-dark.css b/config/hypr/waybar/style/style-dark.css new file mode 100644 index 0000000..7fa9910 --- /dev/null +++ b/config/hypr/waybar/style/style-dark.css @@ -0,0 +1,142 @@ +*{ + 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) + } + + window#waybar.hidden { + opacity: 0.5; + } + + tooltip { + background: #373737; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #373737; + } + + /*-----module groups----*/ + .modules-right { + background-color: #373737; + border: 0px solid #191919; + border-radius: 10px; + } + + .modules-center { + background-color: #373737; + border: 0px solid #373737; + border-radius: 10px; + } + + .modules-left { + background-color: #373737; + border: 0px solid #373737; + border-radius: 10px; + + } + + #workspaces button { + padding: 2px; + color: #4f4f4f; + margin-right: 5px; + } + + #workspaces button.active { + color: #7aa2f7; + border-radius: 15px 15px 15px 15px; + } + + #workspaces button.focused { + color: #d8dee9; + } + + #workspaces button.urgent { + color: #11111b; + border-radius: 10px; + } + + #workspaces button:hover { + color: #fff; + border-radius: 15px; + } + + #clock, + #battery, + #cpu, + #memory, + #disk, + #temperature, + #network, + #pulseaudio, + #wireplumber, + #mode, + #tray, + #cava, + #backlight, + #window, + #idle_inhibitor, + #keyboard-state, + #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: #7aa2f7; + 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/hypr/waybar/style/style-default.css b/config/hypr/waybar/style/style-default.css new file mode 100644 index 0000000..cd369a7 --- /dev/null +++ b/config/hypr/waybar/style/style-default.css @@ -0,0 +1,312 @@ +*{ +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 #window { + background: rgba(12, 12, 12, 0.0); +} +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/hypr/waybar/style/style-default_alter.css b/config/hypr/waybar/style/style-default_alter.css new file mode 100644 index 0000000..52c14ec --- /dev/null +++ b/config/hypr/waybar/style/style-default_alter.css @@ -0,0 +1,310 @@ +@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; +} + +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/hypr/waybar/style/style-light.css b/config/hypr/waybar/style/style-light.css new file mode 100644 index 0000000..d3d0631 --- /dev/null +++ b/config/hypr/waybar/style/style-light.css @@ -0,0 +1,150 @@ +*{ +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) +} + +window#waybar.hidden { + opacity: 0.7; +} + +tooltip { + background: rgba(236, 236, 236, 0.8); + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: rgba(236, 236, 236, 0.8); +} + +tooltip label { + color: #373737; +} + +/*-----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 { + padding: 2px; + color: #585b70; + margin-right: 5px; +} + +#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 10px; + 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; +} \ No newline at end of file diff --git a/config/hypr/waybar/style/style-mauve.css b/config/hypr/waybar/style/style-mauve.css new file mode 100644 index 0000000..e9a83f1 --- /dev/null +++ b/config/hypr/waybar/style/style-mauve.css @@ -0,0 +1,149 @@ +*{ +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; +} + +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/hypr/waybar/style/style-rgb.css b/config/hypr/waybar/style/style-rgb.css new file mode 100644 index 0000000..f380d67 --- /dev/null +++ b/config/hypr/waybar/style/style-rgb.css @@ -0,0 +1,233 @@ +*{ +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; +} + +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, +#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 { + color: #ffffff; +} + +#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/hypr/waybar/style/style-simple.css b/config/hypr/waybar/style/style-simple.css new file mode 100644 index 0000000..dfa77c7 --- /dev/null +++ b/config/hypr/waybar/style/style-simple.css @@ -0,0 +1,74 @@ +*{ + 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; + } + + #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/hypr/wofi/WofiBig/config b/config/hypr/wofi/WofiBig/config new file mode 100644 index 0000000..a8c75d9 --- /dev/null +++ b/config/hypr/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/hypr/wofi/colors b/config/hypr/wofi/colors new file mode 100644 index 0000000..3315baa --- /dev/null +++ b/config/hypr/wofi/colors @@ -0,0 +1,6 @@ +#2F3741 +#2F3741 +#d9e0ee +#4B87CD +#f38ba8 +#cba6f7 diff --git a/config/hypr/wofi/config b/config/hypr/wofi/config new file mode 100644 index 0000000..34109ee --- /dev/null +++ b/config/hypr/wofi/config @@ -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/hypr/wofi/configs/config-default b/config/hypr/wofi/configs/config-default new file mode 100644 index 0000000..34109ee --- /dev/null +++ b/config/hypr/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/hypr/wofi/configs/config-gnome b/config/hypr/wofi/configs/config-gnome new file mode 100644 index 0000000..d4ae53a --- /dev/null +++ b/config/hypr/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/hypr/wofi/configs/config-plasma b/config/hypr/wofi/configs/config-plasma new file mode 100644 index 0000000..185a1c7 --- /dev/null +++ b/config/hypr/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/hypr/wofi/style.css b/config/hypr/wofi/style.css new file mode 100644 index 0000000..e69de29 diff --git a/config/hypr/wofi/styles/style-dark.css b/config/hypr/wofi/styles/style-dark.css new file mode 100644 index 0000000..f8a5e20 --- /dev/null +++ b/config/hypr/wofi/styles/style-dark.css @@ -0,0 +1,69 @@ +*{ +font-family: "JetBrainsMono Nerd Font"; +min-height: 0; +font-size: 98%; +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/hypr/wofi/styles/style-light.css b/config/hypr/wofi/styles/style-light.css new file mode 100644 index 0000000..64602b4 --- /dev/null +++ b/config/hypr/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: 98%; +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/config/neofetch/config.conf b/config/neofetch/config.conf new file mode 100644 index 0000000..e2de7b1 --- /dev/null +++ b/config/neofetch/config.conf @@ -0,0 +1,863 @@ +# Source: https://github.com/Chick2D/neofetch-themes/ + +# Made by https://github.com/HimDek/ (HimDek) +# A matching oh-my-zsh theme: https://github.com/HimDek/Acenoster-ZSH-Theme/ + +# Customization Wiki https://github.com/dylanaraps/neofetch/wiki/Customizing-Info + +print_info() { + + info "${cl2} ╭─" distro + info "${cl2} ├─" kernel + info "${cl2} ├─" users + info "${cl2} ├─󰏗" packages + info "${cl2} ╰─" shell + echo + info "${cl6} ╭─" de + info "${cl6} ├─" term + info "${cl6} ├─" term_font + info "${cl6} ├─󰂫" theme + info "${cl6} ├─󰂫" icons + info "${cl6} ╰─" font + echo + info "${cl4} ╭─" model + info "${cl4} ├─󰍛" cpu + info "${cl4} ├─󰍹" gpu +# info "${cl4} ├─" gpu_driver + info "${cl4} ├─" resolution + info "${cl4} ├─" memory + info "${cl4} ├─ ${cl0}" disk +# info "${cl4} ├─󰁹 ${cl0} " battery + info "${cl4} ╰─󰄉" uptime + + prin " " + prin " \n \n \n \n \n \n ${cl3} \n \n ${cl5} \n \n ${cl2} \n \n ${cl6} \n \n ${cl4} \n \n ${cl1} \n \n ${cl7} \n \n ${cl0} \n \n ${cl5} " + +} + +##--------- Title + +# Hide/Show Fully qualified domain name. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --title_fqdn +title_fqdn="on" + + +##--------- Kernel + +# Shorten the output of the kernel function. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --kernel_shorthand +# Supports: Everything except *BSDs (except PacBSD and PC-BSD) +# +# Example: +# on: '4.8.9-1-ARCH' +# off: 'Linux 4.8.9-1-ARCH' +kernel_shorthand="on" + + +##--------- Distro + +# Shorten the output of the distro function +# +# Default: 'off' +# Values: 'on', 'tiny', 'off' +# Flag: --distro_shorthand +# Supports: Everything except Windows and Haiku +distro_shorthand="off" + +# Show/Hide OS Architecture. +# Show 'x86_64', 'x86' and etc in 'Distro:' output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --os_arch +# +# Example: +# on: 'Arch Linux x86_64' +# off: 'Arch Linux' +os_arch="on" + + +##--------- Uptime + +# Shorten the output of the uptime function +# +# Default: 'on' +# Values: 'on', 'tiny', 'off' +# Flag: --uptime_shorthand +# +# Example: +# on: '2 days, 10 hours, 3 mins' +# tiny: '2d 10h 3m' +# off: '2 days, 10 hours, 3 minutes' +uptime_shorthand="on" + + +##--------- Memory + +# Show memory pecentage in output. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --memory_percent +# +# Example: +# on: '1801MiB / 7881MiB (22%)' +# off: '1801MiB / 7881MiB' +memory_percent="on" + +# Change memory output unit. +# +# Default: 'mib' +# Values: 'kib', 'mib', 'gib' +# Flag: --memory_unit +# +# Example: +# kib '1020928KiB / 7117824KiB' +# mib '1042MiB / 6951MiB' +# gib: ' 0.98GiB / 6.79GiB' +memory_unit="Gib" + + +##--------- Packages + +# Show/Hide Package Manager names. +# +# Default: 'tiny' +# Values: 'on', 'tiny' 'off' +# Flag: --package_managers +# +# Example: +# on: '998 (pacman), 8 (flatpak), 4 (snap)' +# tiny: '908 (pacman, flatpak, snap)' +# off: '908' +package_managers="on" + + +##--------- Shell + +# Show the path to $SHELL +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --shell_path +# +# Example: +# on: '/bin/bash' +# off: 'bash' +shell_path="off" + +# Show $SHELL version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --shell_version +# +# Example: +# on: 'bash 4.4.5' +# off: 'bash' +shell_version="on" + + +##--------- CPU + +# CPU speed type +# +# Default: 'bios_limit' +# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'. +# Flag: --speed_type +# Supports: Linux with 'cpufreq' +# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value. +speed_type="scaling_max_freq" + +# CPU speed shorthand +# +# Default: 'off' +# Values: 'on', 'off'. +# Flag: --speed_shorthand +# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz +# +# Example: +# on: 'i7-6500U (4) @ 3.1GHz' +# off: 'i7-6500U (4) @ 3.100GHz' +speed_shorthand="on" + +# Enable/Disable CPU brand in output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_brand +# +# Example: +# on: 'Intel i7-6500U' +# off: 'i7-6500U (4)' +cpu_brand="on" + +# CPU Speed +# Hide/Show CPU speed. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_speed +# +# Example: +# on: 'Intel i7-6500U (4) @ 3.1GHz' +# off: 'Intel i7-6500U (4)' +cpu_speed="on" + +# CPU Cores +# Display CPU cores in output +# +# Default: 'logical' +# Values: 'logical', 'physical', 'off' +# Flag: --cpu_cores +# Support: 'physical' doesn't work on BSD. +# +# Example: +# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores) +# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores) +# off: 'Intel i7-6500U @ 3.1GHz' +cpu_cores="logical" + +# CPU Temperature +# Hide/Show CPU temperature. +# Note the temperature is added to the regular CPU function. +# +# Default: 'off' +# Values: 'C', 'F', 'off' +# Flag: --cpu_temp +# Supports: Linux, BSD +# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable +# coretemp kernel module. This only supports newer Intel processors. +# +# Example: sudo rm /var/lib/pacman/db.lck +# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]' +# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]' +# off: 'Intel i7-6500U (4) @ 3.1GHz' +cpu_temp="C" + + +##--------- GPU + +# Enable/Disable GPU Brand +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gpu_brand +# +# Example: +# on: 'AMD HD 7950' +# off: 'HD 7950' +gpu_brand="on" + +# Which GPU to display +# +# Default: 'all' +# Values: 'all', 'dedicated', 'integrated' +# Flag: --gpu_type +# Supports: Linux +# +# Example: +# all: +# GPU1: AMD HD 7950 +# GPU2: Intel Integrated Graphics +# +# dedicated: +# GPU1: AMD HD 7950 +# +# integrated: +# GPU1: Intel Integrated Graphics +gpu_type="all" + + +##--------- Resolution + +# Display refresh rate next to each monitor +# Default: 'off' +# Values: 'on', 'off' +# Flag: --refresh_rate +# Supports: Doesn't work on Windows. +# +# Example: +# on: '1920x1080 @ 60Hz' +# off: '1920x1080' +refresh_rate="on" + + +##--------- Gtk Theme / Icons / Font + +# Shorten output of GTK Theme / Icons / Font +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --gtk_shorthand +# +# Example: +# on: 'Numix, Adwaita' +# off: 'Numix [GTK2], Adwaita [GTK3]' +gtk_shorthand="on" + +# Enable/Disable gtk2 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk2 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Adwaita [GTK3]' +gtk2="off" + +# Enable/Disable gtk3 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk3 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Numix [GTK2]' +gtk3="off" + + +##--------- IP Address + +# Website to ping for the public IP +# +# Default: 'http://ident.me' +# Values: 'url' +# Flag: --ip_host +public_ip_host="http://ident.me" + +# Public IP timeout. +# +# Default: '2' +# Values: 'int' +# Flag: --ip_timeout +public_ip_timeout=2 + +# Desktop Environment + +# Show Desktop Environment version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --de_version +de_version="on" + + +##--------- Disk + +# Which disks to display. +# The values can be any /dev/sdXX, mount point or directory. +# NOTE: By default we only show the disk info for '/'. +# +# Default: '/' +# Values: '/', '/dev/sdXX', '/path/to/drive'. +# Flag: --disk_show +# +# Example: +# disk_show=('/' '/dev/sdb1'): +# 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 823G / 893G (93%)' +# +# disk_show=('/'): +# 'Disk (/): 74G / 118G (66%)' +# +disk_show=('/') + +# Disk subtitle. +# What to append to the Disk subtitle. +# +# Default: 'mount' +# Values: 'mount', 'name', 'dir', 'none' +# Flag: --disk_subtitle +# +# Example: +# name: 'Disk (/dev/sda1): 74G / 118G (66%)' +# 'Disk (/dev/sdb2): 74G / 118G (66%)' +# +# mount: 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Local Disk): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 74G / 118G (66%)' +# +# dir: 'Disk (/): 74G / 118G (66%)' +# 'Disk (Local Disk): 74G / 118G (66%)' +# 'Disk (Videos): 74G / 118G (66%)' +# +# none: 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +disk_subtitle="mount" + +# Disk percent. +# Show/Hide disk percent. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --disk_percent +# +# Example: +# on: 'Disk (/): 74G / 118G (66%)' +# off: 'Disk (/): 74G / 118G' +disk_percent="on" + + +##--------- Song + +# Manually specify a music player. +# +# Default: 'auto' +# Values: 'auto', 'player-name' +# Flag: --music_player +# +# Available values for 'player-name': +# +# amarok +# audacious +# banshee +# bluemindo +# clementine +# cmus +# deadbeef +# deepin-music +# dragon +# elisa +# exaile +# gnome-music +# gmusicbrowser +# gogglesmm +# guayadeque +# io.elementary.music +# iTunes +# juk +# lollypop +# mocp +# mopidy +# mpd +# muine +# netease-cloud-music +# olivia +# playerctl +# pogo +# pragha +# qmmp +# quodlibet +# rhythmbox +# sayonara +# smplayer +# spotify +# strawberry +# tauonmb +# tomahawk +# vlc +# xmms2d +# xnoise +# yarock +music_player="auto" + +# Format to display song information. +# +# Default: '%artist% - %album% - %title%' +# Values: '%artist%', '%album%', '%title%' +# Flag: --song_format +# +# Example: +# default: 'Song: Jet - Get Born - Sgt Major' +song_format="%artist% - %album% - %title%" + +# Print the Artist, Album and Title on separate lines +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --song_shorthand +# +# Example: +# on: 'Artist: The Fratellis' +# 'Album: Costello Music' +# 'Song: Chelsea Dagger' +# +# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger' +song_shorthand="off" + +# 'mpc' arguments (specify a host, password etc). +# +# Default: '' +# Example: mpc_args=(-h HOST -P PASSWORD) +mpc_args=() + + +##--------- Text Colors + +# Text Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --colors +# +# Each number represents a different part of the text in +# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info' +# +# Example: +# colors=(distro) - Text is colored based on Distro colors. +# colors=(4 6 1 8 8 6) - Text is colored in the order above. +colors=(distro) + + +##--------- Text Options + +# Toggle bold text +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bold +bold="on" + +# Enable/Disable Underline +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --underline +underline_enabled="on" + +# Underline character +# +# Default: '-' +# Values: 'string' +# Flag: --underline_char +underline_char="󰍴" + +# Info Separator +# Replace the default separator with the specified string. +# +# Default: ':' +# Flag: --separator +# +# Example: +# separator="->": 'Shell-> bash' +# separator=" =": 'WM = dwm' +separator=" " + +##--------- Color Blocks + +# Color block range +# The range of colors to print. +# +# Default: '0', '15' +# Values: 'num' +# Flag: --block_range +# +# Example: +# +# Display colors 0-7 in the blocks. (8 colors) +# neofetch --block_range 0 7 +# +# Display colors 0-15 in the blocks. (16 colors) +# neofetch --block_range 0 15 +#block_range=(8 15) +block_range=(1 8) + +# Colors for custom colorblocks +#colors +#bold="(tput bold)" +magenta="\033[1;35m" +green="\033[1;32m" +white="\033[1;37m" +blue="\033[1;34m" +red="\033[1;31m" +black="\033[1;40;30m" +yellow="\033[1;33m" +cyan="\033[1;36m" +reset="\033[0m" +bgyellow="\033[1;43;33m" +bgwhite="\033[1;47;37m" +cl0="${reset}" +cl1="${magenta}" +cl2="${green}" +cl3="${white}" +cl4="${blue}" +cl5="${red}" +cl6="${yellow}" +cl7="${cyan}" +cl8="${black}" +cl9="${bgyellow}" +cl10="${bgwhite}" + +# Toggle color blocks +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --color_blocks +color_blocks="on" + +# Color block width in spaces +# +# Default: '3' +# Values: 'num' +# Flag: --block_width +block_width=4 + +# Color block height in lines +# +# Default: '1' +# Values: 'num' +# Flag: --block_height +block_height=1 + + +# Color Alignment +# +# Default: 'auto' +# Values: 'auto', 'num' +# Flag: --col_offset +# +# Number specifies how far from the left side of the terminal (in spaces) to +# begin printing the columns, in case you want to e.g. center them under your +# text. +# Example: +# col_offset="auto" - Default behavior of neofetch +# col_offset=7 - Leave 7 spaces then print the colors +col_offset="auto" + +##--------- Progress Bars + +# Bar characters +# +# Default: '-', '=' +# Values: 'string', 'string' +# Flag: --bar_char +# +# Example: +# neofetch --bar_char 'elapsed' 'total' +# neofetch --bar_char '-' '=' +bar_char_elapsed="-" +bar_char_total="=" + +# Toggle Bar border +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bar_border +bar_border="on" + +# Progress bar length in spaces +# Number of chars long to make the progress bars. +# +# Default: '15' +# Values: 'num' +# Flag: --bar_length +bar_length=15 + +# Progress bar colors +# When set to distro, uses your distro's logo colors. +# +# Default: 'distro', 'distro' +# Values: 'distro', 'num' +# Flag: --bar_colors +# +# Example: +# neofetch --bar_colors 3 4 +# neofetch --bar_colors distro 5 +bar_color_elapsed="distro" +bar_color_total="distro" + +# Info display +# Display a bar with the info. +# +# Default: 'off' +# Values: 'bar', 'infobar', 'barinfo', 'off' +# Flags: --cpu_display +# --memory_display +# --battery_display +# --disk_display +# +# Example: +# bar: '[---=======]' +# infobar: 'info [---=======]' +# barinfo: '[---=======] info' +# off: 'info' +cpu_display="on" +memory_display="on" +battery_display="on" +disk_display="on" + + +##--------- Backend Settings + +# Image backend. +# +# Default: 'ascii' +# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off', +# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty' +# Flag: --backend +image_backend="ascii" + +# Image Source +# +# Which image or ascii file to display. +# +# Default: 'auto' +# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' +# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")' +# Flag: --source +# +# NOTE: 'auto' will pick the best image source for whatever image backend is used. +# In ascii mode, distro ascii art will be used and in an image mode, your +# wallpaper will be used. +image_source="auto" + + +##--------- Ascii Options + +# Ascii distro +# Which distro's ascii art to display. +# +# Default: 'auto' +# Values: 'auto', 'distro_name' +# Flag: --ascii_distro +# NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, "AOSC OS", +# "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox, ARCHlabs, +# ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya, Bedrock, +# Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD, +# BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS, +# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, +# Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin, +# DesaOS, Devuan, DracOS, DarkOs, DragonFly, Drauger, Elementary, +# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD, +# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo, +# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra, +# Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, +# Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite, +# LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, +# Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib, +# Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner, +# NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba, +# OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD, +# Parabola, Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint, +# popos, Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix, +# Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan, +# Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific, +# Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz, +# SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS, +# openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, +# Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio, +# Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin, +# and IRIX have ascii logos +# NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants. +# Use '{distro name}_old' to use the old logos. +# NOTE: Ubuntu has flavor variants. +# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME, +# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors. +# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu, +# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android, +# Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola, +# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS, +# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian, +# postmarketOS, and Void have a smaller logo variant. +# Use '{distro name}_small' to use the small variants. +ascii_distro="auto" + +# Ascii Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --ascii_colors +# +# Example: +# ascii_colors=(distro) - Ascii is colored based on Distro colors. +# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors. +ascii_colors=(distro) + +# Bold ascii logo +# Whether or not to bold the ascii logo. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --ascii_bold +ascii_bold="on" + + +##--------- Image Options + +# Image loop +# Setting this to on will make neofetch redraw the image constantly until +# Ctrl+C is pressed. This fixes display issues in some terminal emulators. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --loop +image_loop="off" + +# Thumbnail directory +# +# Default: '~/.cache/thumbnails/neofetch' +# Values: 'dir' +thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" + +# Crop mode +# +# Default: 'normal' +# Values: 'normal', 'fit', 'fill' +# Flag: --crop_mode +# +# See this wiki page to learn about the fit and fill options. +# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F +crop_mode="normal" + +# Crop offset +# Note: Only affects 'normal' crop mode. +# +# Default: 'center' +# Values: 'northwest', 'north', 'northeast', 'west', 'center' +# 'east', 'southwest', 'south', 'southeast' +# Flag: --crop_offset +crop_offset="center" + +# Image size +# The image is half the terminal width by default. +# +# Default: 'auto' +# Values: 'auto', '00px', '00%', 'none' +# Flags: --image_size +# --size +image_size="auto" + +# Gap between image and text +# +# Default: '3' +# Values: 'num', '-num' +# Flag: --gap +gap=2 + +# Image offsets +# Only works with the w3m backend. +# +# Default: '0' +# Values: 'px' +# Flags: --xoffset +# --yoffset +yoffset=0 +xoffset=0 + +# Image background color +# Only works with the w3m backend. +# +# Default: '' +# Values: 'color', 'blue' +# Flag: --bg_color +background_color= + + +##--------- Misc Options + +# Stdout mode +# Turn off all colors and disables image backend (ASCII/Image). +# Useful for piping into another command. +# Default: 'off' +# Values: 'on', 'off' +stdout="off" diff --git a/config/neofetch/config.conf-orig b/config/neofetch/config.conf-orig new file mode 100644 index 0000000..cdba4c6 --- /dev/null +++ b/config/neofetch/config.conf-orig @@ -0,0 +1,864 @@ +# See this wiki page for more info: +# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info +print_info() { + info title + info underline + + info "OS" distro + info "Host" model + info "Kernel" kernel + info "Uptime" uptime + info "Packages" packages + info "Shell" shell + info "Resolution" resolution + info "DE" de + info "WM" wm + info "WM Theme" wm_theme + info "Theme" theme + info "Icons" icons + info "Terminal" term + info "Terminal Font" term_font + info "CPU" cpu + info "GPU" gpu + info "Memory" memory + + # info "GPU Driver" gpu_driver # Linux/macOS only + # info "CPU Usage" cpu_usage + # info "Disk" disk + # info "Battery" battery + # info "Font" font + # info "Song" song + # [[ "$player" ]] && prin "Music Player" "$player" + # info "Local IP" local_ip + # info "Public IP" public_ip + # info "Users" users + # info "Locale" locale # This only works on glibc systems. + + info cols +} + +# Title + + +# Hide/Show Fully qualified domain name. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --title_fqdn +title_fqdn="off" + + +# Kernel + + +# Shorten the output of the kernel function. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --kernel_shorthand +# Supports: Everything except *BSDs (except PacBSD and PC-BSD) +# +# Example: +# on: '4.8.9-1-ARCH' +# off: 'Linux 4.8.9-1-ARCH' +kernel_shorthand="on" + + +# Distro + + +# Shorten the output of the distro function +# +# Default: 'off' +# Values: 'on', 'tiny', 'off' +# Flag: --distro_shorthand +# Supports: Everything except Windows and Haiku +distro_shorthand="off" + +# Show/Hide OS Architecture. +# Show 'x86_64', 'x86' and etc in 'Distro:' output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --os_arch +# +# Example: +# on: 'Arch Linux x86_64' +# off: 'Arch Linux' +os_arch="on" + + +# Uptime + + +# Shorten the output of the uptime function +# +# Default: 'on' +# Values: 'on', 'tiny', 'off' +# Flag: --uptime_shorthand +# +# Example: +# on: '2 days, 10 hours, 3 mins' +# tiny: '2d 10h 3m' +# off: '2 days, 10 hours, 3 minutes' +uptime_shorthand="on" + + +# Memory + + +# Show memory pecentage in output. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --memory_percent +# +# Example: +# on: '1801MiB / 7881MiB (22%)' +# off: '1801MiB / 7881MiB' +memory_percent="off" + +# Change memory output unit. +# +# Default: 'mib' +# Values: 'kib', 'mib', 'gib' +# Flag: --memory_unit +# +# Example: +# kib '1020928KiB / 7117824KiB' +# mib '1042MiB / 6951MiB' +# gib: ' 0.98GiB / 6.79GiB' +memory_unit="mib" + + +# Packages + + +# Show/Hide Package Manager names. +# +# Default: 'tiny' +# Values: 'on', 'tiny' 'off' +# Flag: --package_managers +# +# Example: +# on: '998 (pacman), 8 (flatpak), 4 (snap)' +# tiny: '908 (pacman, flatpak, snap)' +# off: '908' +package_managers="on" + + +# Shell + + +# Show the path to $SHELL +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --shell_path +# +# Example: +# on: '/bin/bash' +# off: 'bash' +shell_path="off" + +# Show $SHELL version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --shell_version +# +# Example: +# on: 'bash 4.4.5' +# off: 'bash' +shell_version="on" + + +# CPU + + +# CPU speed type +# +# Default: 'bios_limit' +# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'. +# Flag: --speed_type +# Supports: Linux with 'cpufreq' +# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value. +speed_type="bios_limit" + +# CPU speed shorthand +# +# Default: 'off' +# Values: 'on', 'off'. +# Flag: --speed_shorthand +# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz +# +# Example: +# on: 'i7-6500U (4) @ 3.1GHz' +# off: 'i7-6500U (4) @ 3.100GHz' +speed_shorthand="off" + +# Enable/Disable CPU brand in output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_brand +# +# Example: +# on: 'Intel i7-6500U' +# off: 'i7-6500U (4)' +cpu_brand="on" + +# CPU Speed +# Hide/Show CPU speed. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_speed +# +# Example: +# on: 'Intel i7-6500U (4) @ 3.1GHz' +# off: 'Intel i7-6500U (4)' +cpu_speed="on" + +# CPU Cores +# Display CPU cores in output +# +# Default: 'logical' +# Values: 'logical', 'physical', 'off' +# Flag: --cpu_cores +# Support: 'physical' doesn't work on BSD. +# +# Example: +# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores) +# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores) +# off: 'Intel i7-6500U @ 3.1GHz' +cpu_cores="logical" + +# CPU Temperature +# Hide/Show CPU temperature. +# Note the temperature is added to the regular CPU function. +# +# Default: 'off' +# Values: 'C', 'F', 'off' +# Flag: --cpu_temp +# Supports: Linux, BSD +# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable +# coretemp kernel module. This only supports newer Intel processors. +# +# Example: +# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]' +# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]' +# off: 'Intel i7-6500U (4) @ 3.1GHz' +cpu_temp="off" + + +# GPU + + +# Enable/Disable GPU Brand +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gpu_brand +# +# Example: +# on: 'AMD HD 7950' +# off: 'HD 7950' +gpu_brand="on" + +# Which GPU to display +# +# Default: 'all' +# Values: 'all', 'dedicated', 'integrated' +# Flag: --gpu_type +# Supports: Linux +# +# Example: +# all: +# GPU1: AMD HD 7950 +# GPU2: Intel Integrated Graphics +# +# dedicated: +# GPU1: AMD HD 7950 +# +# integrated: +# GPU1: Intel Integrated Graphics +gpu_type="all" + + +# Resolution + + +# Display refresh rate next to each monitor +# Default: 'off' +# Values: 'on', 'off' +# Flag: --refresh_rate +# Supports: Doesn't work on Windows. +# +# Example: +# on: '1920x1080 @ 60Hz' +# off: '1920x1080' +refresh_rate="off" + + +# Gtk Theme / Icons / Font + + +# Shorten output of GTK Theme / Icons / Font +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --gtk_shorthand +# +# Example: +# on: 'Numix, Adwaita' +# off: 'Numix [GTK2], Adwaita [GTK3]' +gtk_shorthand="off" + + +# Enable/Disable gtk2 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk2 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Adwaita [GTK3]' +gtk2="on" + +# Enable/Disable gtk3 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk3 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Numix [GTK2]' +gtk3="on" + + +# IP Address + + +# Website to ping for the public IP +# +# Default: 'http://ident.me' +# Values: 'url' +# Flag: --ip_host +public_ip_host="http://ident.me" + +# Public IP timeout. +# +# Default: '2' +# Values: 'int' +# Flag: --ip_timeout +public_ip_timeout=2 + + +# Desktop Environment + + +# Show Desktop Environment version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --de_version +de_version="on" + + +# Disk + + +# Which disks to display. +# The values can be any /dev/sdXX, mount point or directory. +# NOTE: By default we only show the disk info for '/'. +# +# Default: '/' +# Values: '/', '/dev/sdXX', '/path/to/drive'. +# Flag: --disk_show +# +# Example: +# disk_show=('/' '/dev/sdb1'): +# 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 823G / 893G (93%)' +# +# disk_show=('/'): +# 'Disk (/): 74G / 118G (66%)' +# +disk_show=('/') + +# Disk subtitle. +# What to append to the Disk subtitle. +# +# Default: 'mount' +# Values: 'mount', 'name', 'dir', 'none' +# Flag: --disk_subtitle +# +# Example: +# name: 'Disk (/dev/sda1): 74G / 118G (66%)' +# 'Disk (/dev/sdb2): 74G / 118G (66%)' +# +# mount: 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Local Disk): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 74G / 118G (66%)' +# +# dir: 'Disk (/): 74G / 118G (66%)' +# 'Disk (Local Disk): 74G / 118G (66%)' +# 'Disk (Videos): 74G / 118G (66%)' +# +# none: 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +disk_subtitle="mount" + +# Disk percent. +# Show/Hide disk percent. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --disk_percent +# +# Example: +# on: 'Disk (/): 74G / 118G (66%)' +# off: 'Disk (/): 74G / 118G' +disk_percent="on" + + +# Song + + +# Manually specify a music player. +# +# Default: 'auto' +# Values: 'auto', 'player-name' +# Flag: --music_player +# +# Available values for 'player-name': +# +# amarok +# audacious +# banshee +# bluemindo +# clementine +# cmus +# deadbeef +# deepin-music +# dragon +# elisa +# exaile +# gnome-music +# gmusicbrowser +# gogglesmm +# guayadeque +# io.elementary.music +# iTunes +# juk +# lollypop +# mocp +# mopidy +# mpd +# muine +# netease-cloud-music +# olivia +# playerctl +# pogo +# pragha +# qmmp +# quodlibet +# rhythmbox +# sayonara +# smplayer +# spotify +# strawberry +# tauonmb +# tomahawk +# vlc +# xmms2d +# xnoise +# yarock +music_player="auto" + +# Format to display song information. +# +# Default: '%artist% - %album% - %title%' +# Values: '%artist%', '%album%', '%title%' +# Flag: --song_format +# +# Example: +# default: 'Song: Jet - Get Born - Sgt Major' +song_format="%artist% - %album% - %title%" + +# Print the Artist, Album and Title on separate lines +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --song_shorthand +# +# Example: +# on: 'Artist: The Fratellis' +# 'Album: Costello Music' +# 'Song: Chelsea Dagger' +# +# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger' +song_shorthand="off" + +# 'mpc' arguments (specify a host, password etc). +# +# Default: '' +# Example: mpc_args=(-h HOST -P PASSWORD) +mpc_args=() + + +# Text Colors + + +# Text Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --colors +# +# Each number represents a different part of the text in +# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info' +# +# Example: +# colors=(distro) - Text is colored based on Distro colors. +# colors=(4 6 1 8 8 6) - Text is colored in the order above. +colors=(distro) + + +# Text Options + + +# Toggle bold text +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bold +bold="on" + +# Enable/Disable Underline +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --underline +underline_enabled="on" + +# Underline character +# +# Default: '-' +# Values: 'string' +# Flag: --underline_char +underline_char="-" + + +# Info Separator +# Replace the default separator with the specified string. +# +# Default: ':' +# Flag: --separator +# +# Example: +# separator="->": 'Shell-> bash' +# separator=" =": 'WM = dwm' +separator=":" + + +# Color Blocks + + +# Color block range +# The range of colors to print. +# +# Default: '0', '15' +# Values: 'num' +# Flag: --block_range +# +# Example: +# +# Display colors 0-7 in the blocks. (8 colors) +# neofetch --block_range 0 7 +# +# Display colors 0-15 in the blocks. (16 colors) +# neofetch --block_range 0 15 +block_range=(0 15) + +# Toggle color blocks +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --color_blocks +color_blocks="on" + +# Color block width in spaces +# +# Default: '3' +# Values: 'num' +# Flag: --block_width +block_width=3 + +# Color block height in lines +# +# Default: '1' +# Values: 'num' +# Flag: --block_height +block_height=1 + +# Color Alignment +# +# Default: 'auto' +# Values: 'auto', 'num' +# Flag: --col_offset +# +# Number specifies how far from the left side of the terminal (in spaces) to +# begin printing the columns, in case you want to e.g. center them under your +# text. +# Example: +# col_offset="auto" - Default behavior of neofetch +# col_offset=7 - Leave 7 spaces then print the colors +col_offset="auto" + +# Progress Bars + + +# Bar characters +# +# Default: '-', '=' +# Values: 'string', 'string' +# Flag: --bar_char +# +# Example: +# neofetch --bar_char 'elapsed' 'total' +# neofetch --bar_char '-' '=' +bar_char_elapsed="-" +bar_char_total="=" + +# Toggle Bar border +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bar_border +bar_border="on" + +# Progress bar length in spaces +# Number of chars long to make the progress bars. +# +# Default: '15' +# Values: 'num' +# Flag: --bar_length +bar_length=15 + +# Progress bar colors +# When set to distro, uses your distro's logo colors. +# +# Default: 'distro', 'distro' +# Values: 'distro', 'num' +# Flag: --bar_colors +# +# Example: +# neofetch --bar_colors 3 4 +# neofetch --bar_colors distro 5 +bar_color_elapsed="distro" +bar_color_total="distro" + + +# Info display +# Display a bar with the info. +# +# Default: 'off' +# Values: 'bar', 'infobar', 'barinfo', 'off' +# Flags: --cpu_display +# --memory_display +# --battery_display +# --disk_display +# +# Example: +# bar: '[---=======]' +# infobar: 'info [---=======]' +# barinfo: '[---=======] info' +# off: 'info' +cpu_display="off" +memory_display="off" +battery_display="off" +disk_display="off" + + +# Backend Settings + + +# Image backend. +# +# Default: 'ascii' +# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off', +# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty' +# Flag: --backend +image_backend="ascii" + +# Image Source +# +# Which image or ascii file to display. +# +# Default: 'auto' +# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' +# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")' +# Flag: --source +# +# NOTE: 'auto' will pick the best image source for whatever image backend is used. +# In ascii mode, distro ascii art will be used and in an image mode, your +# wallpaper will be used. +image_source="auto" + + +# Ascii Options + + +# Ascii distro +# Which distro's ascii art to display. +# +# Default: 'auto' +# Values: 'auto', 'distro_name' +# Flag: --ascii_distro +# NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, "AOSC OS", +# "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox, ARCHlabs, +# ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya, Bedrock, +# Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD, +# BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS, +# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, +# Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin, +# DesaOS, Devuan, DracOS, DarkOs, DragonFly, Drauger, Elementary, +# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD, +# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo, +# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra, +# Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, +# Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite, +# LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, +# Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib, +# Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner, +# NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba, +# OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD, +# Parabola, Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint, +# popos, Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix, +# Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan, +# Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific, +# Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz, +# SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS, +# openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, +# Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio, +# Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin, +# and IRIX have ascii logos +# NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants. +# Use '{distro name}_old' to use the old logos. +# NOTE: Ubuntu has flavor variants. +# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME, +# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors. +# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu, +# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android, +# Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola, +# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS, +# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian, +# postmarketOS, and Void have a smaller logo variant. +# Use '{distro name}_small' to use the small variants. +ascii_distro="auto" + +# Ascii Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --ascii_colors +# +# Example: +# ascii_colors=(distro) - Ascii is colored based on Distro colors. +# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors. +ascii_colors=(distro) + +# Bold ascii logo +# Whether or not to bold the ascii logo. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --ascii_bold +ascii_bold="on" + + +# Image Options + + +# Image loop +# Setting this to on will make neofetch redraw the image constantly until +# Ctrl+C is pressed. This fixes display issues in some terminal emulators. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --loop +image_loop="off" + +# Thumbnail directory +# +# Default: '~/.cache/thumbnails/neofetch' +# Values: 'dir' +thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" + +# Crop mode +# +# Default: 'normal' +# Values: 'normal', 'fit', 'fill' +# Flag: --crop_mode +# +# See this wiki page to learn about the fit and fill options. +# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F +crop_mode="normal" + +# Crop offset +# Note: Only affects 'normal' crop mode. +# +# Default: 'center' +# Values: 'northwest', 'north', 'northeast', 'west', 'center' +# 'east', 'southwest', 'south', 'southeast' +# Flag: --crop_offset +crop_offset="center" + +# Image size +# The image is half the terminal width by default. +# +# Default: 'auto' +# Values: 'auto', '00px', '00%', 'none' +# Flags: --image_size +# --size +image_size="auto" + +# Gap between image and text +# +# Default: '3' +# Values: 'num', '-num' +# Flag: --gap +gap=3 + +# Image offsets +# Only works with the w3m backend. +# +# Default: '0' +# Values: 'px' +# Flags: --xoffset +# --yoffset +yoffset=0 +xoffset=0 + +# Image background color +# Only works with the w3m backend. +# +# Default: '' +# Values: 'color', 'blue' +# Flag: --bg_color +background_color= + + +# Misc Options + +# Stdout mode +# Turn off all colors and disables image backend (ASCII/Image). +# Useful for piping into another command. +# Default: 'off' +# Values: 'on', 'off' +stdout="off" 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/xfce4/helpers.rc b/config/xfce4/helpers.rc new file mode 100644 index 0000000..32fb567 --- /dev/null +++ b/config/xfce4/helpers.rc @@ -0,0 +1,4 @@ +FileManager=Thunar +TerminalEmulator=foot +WebBrowser=firefox +#MailReader=evolution diff --git a/config/xfce4/panel/whiskermenu-7.rc b/config/xfce4/panel/whiskermenu-7.rc new file mode 100644 index 0000000..08ecef8 --- /dev/null +++ b/config/xfce4/panel/whiskermenu-7.rc @@ -0,0 +1,83 @@ +favorites=arcolinux-welcome-app.desktop,archlinux-tweak-tool.desktop,firefox.desktop,thunar.desktop,xfce4-terminal.desktop,conkyzen.desktop +recent= +button-title=ArcoLinux\ \ +button-icon=start-here-arcolinux +button-single-row=false +show-button-title=true +show-button-icon=true +launcher-show-name=true +launcher-show-description=true +launcher-show-tooltip=true +launcher-icon-size=2 +hover-switch-category=true +category-show-name=true +category-icon-size=2 +sort-categories=true +view-mode=1 +default-category=0 +recent-items-max=10 +favorites-in-recent=true +position-search-alternate=true +position-commands-alternate=true +position-categories-alternate=true +position-categories-horizontal=false +stay-on-focus-out=false +profile-shape=0 +confirm-session-command=true +menu-width=410 +menu-height=583 +menu-opacity=80 +command-settings=xfce4-settings-manager +show-command-settings=true +command-lockscreen=archlinux-logout +show-command-lockscreen=true +command-switchuser=xfce4-session-logout -u +show-command-switchuser=true +command-logoutuser=xfce4-session-logout --logout --fast +show-command-logoutuser=false +command-restart=xfce4-session-logout --reboot --fast +show-command-restart=false +command-shutdown=xfce4-session-logout --halt --fast +show-command-shutdown=false +command-suspend=xfce4-session-logout --suspend +show-command-suspend=false +command-hibernate=xfce4-session-logout --hibernate +show-command-hibernate=false +command-logout=xfce4-session-logout +show-command-logout=true +command-menueditor=menulibre +show-command-menueditor=true +command-profile=mugshot +show-command-profile=true +search-actions=5 + +[action0] +name=Man Pages +pattern=# +command=exo-open --launch TerminalEmulator man %s +regex=false + +[action1] +name=Web Search +pattern=? +command=exo-open --launch WebBrowser https://google.com/?q=%u +regex=false + +[action2] +name=Wikipedia +pattern=!w +command=exo-open --launch WebBrowser https://en.wikipedia.org/wiki/%u +regex=false + +[action3] +name=Run in Terminal +pattern=! +command=exo-open --launch TerminalEmulator %s +regex=false + +[action4] +name=Open URI +pattern=^(file|http|https):\\/\\/(.*)$ +command=exo-open \\0 +regex=true + diff --git a/config/xfce4/terminal/terminalrc b/config/xfce4/terminal/terminalrc new file mode 100644 index 0000000..0cc51f2 --- /dev/null +++ b/config/xfce4/terminal/terminalrc @@ -0,0 +1,42 @@ +[Configuration] +MiscAlwaysShowTabs=FALSE +MiscBell=FALSE +MiscBellUrgent=FALSE +MiscBordersDefault=TRUE +MiscCursorBlinks=FALSE +MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK +MiscDefaultGeometry=100x30 +MiscInheritGeometry=FALSE +MiscMenubarDefault=FALSE +MiscMouseAutohide=FALSE +MiscMouseWheelZoom=TRUE +MiscToolbarDefault=FALSE +MiscConfirmClose=TRUE +MiscCycleTabs=TRUE +MiscTabCloseButtons=TRUE +MiscTabCloseMiddleClick=TRUE +MiscTabPosition=GTK_POS_TOP +MiscHighlightUrls=TRUE +MiscMiddleClickOpensUri=FALSE +MiscCopyOnSelect=FALSE +MiscDefaultWorkingDir= +MiscRewrapOnResize=TRUE +MiscUseShiftArrowsToScroll=FALSE +MiscSlimTabs=FALSE +ScrollingBar=TERMINAL_SCROLLBAR_NONE +ScrollingLines=10000 +ScrollingUnlimited=TRUE +FontName=Monospace 10 +BackgroundMode=TERMINAL_BACKGROUND_TRANSPARENT +BackgroundDarkness=0.600000 +DropdownStatusIcon=FALSE +MiscShowRelaunchDialog=TRUE +MiscNewTabAdjacent=FALSE +MiscSearchDialogOpacity=100 +MiscShowUnsafePasteDialog=TRUE +DropdownWidth=60 +DropdownHeight=60 +FontUseSystem=TRUE +ColorPalette=#3f3f3f;#cc0000;#4e9a06;#c4a000;#3465a4;#75507b;#06989a;#d3d7cf;#555753;#ef2929;#8ae234;#fce94f;#739fcf;#ad7fa8;#34e2e2;#eeeeec +DropdownAlwaysShowTabs=FALSE +ScrollingOnOutput=FALSE diff --git a/config/xfce4/xfce4-screenshooter b/config/xfce4/xfce4-screenshooter new file mode 100644 index 0000000..afd8a24 --- /dev/null +++ b/config/xfce4/xfce4-screenshooter @@ -0,0 +1,7 @@ +delay=1 +region=1 +action=1 +show_mouse=0 +title=ArcoLinux +timestamp=TRUE +app=nomacs diff --git a/config/xfce4/xfce4-taskmanager.rc b/config/xfce4/xfce4-taskmanager.rc new file mode 100644 index 0000000..67f58af --- /dev/null +++ b/config/xfce4/xfce4-taskmanager.rc @@ -0,0 +1,27 @@ +[Settings] +ShowAllProcesses=TRUE +ShowLegend=TRUE +MorePrecision=FALSE +FullCommandLine=FALSE +ShowStatusIcon=FALSE +ShowMemoryInXBytes=FALSE +MonitorPaintBox=TRUE +ShowApplicationIcons=TRUE +ToolbarStyle=DEFAULT +PromptTerminateTask=TRUE +RefreshRate=750 +ColumnsPositions=0;1;3;4;5;6;7;2;8; +ColumnUID=TRUE +ColumnPID=TRUE +ColumnPPID=FALSE +ColumnState=FALSE +ColumnVSZ=FALSE +ColumnRSS=TRUE +ColumnCPU=TRUE +ColumnPriority=FALSE +SortColumn=0 +SortType=0 +WindowWidth=644 +WindowHeight=665 +HandlePosition=164 +ProcessTreeView=FALSE diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml b/config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml new file mode 100644 index 0000000..ff9be7f --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/pointers.xml b/config/xfce4/xfconf/xfce-perchannel-xml/pointers.xml new file mode 100644 index 0000000..6bbc4e2 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/pointers.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/thunar-volman.xml b/config/xfce4/xfconf/xfce-perchannel-xml/thunar-volman.xml new file mode 100644 index 0000000..c85ceea --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/thunar-volman.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml b/config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml new file mode 100644 index 0000000..a3db2b3 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-appfinder.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-appfinder.xml new file mode 100644 index 0000000..80101ba --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-appfinder.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml new file mode 100644 index 0000000..0552eb0 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml @@ -0,0 +1,685 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml new file mode 100644 index 0000000..6e4edea --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-notifyd.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-notifyd.xml new file mode 100644 index 0000000..96f5ea2 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-notifyd.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml new file mode 100644 index 0000000..f18ae81 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml new file mode 100644 index 0000000..32ef9ec --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-screensaver.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-screensaver.xml new file mode 100644 index 0000000..b72e42c --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-screensaver.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml new file mode 100644 index 0000000..e8d68ef --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-settings-manager.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-settings-manager.xml new file mode 100644 index 0000000..62fff05 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-settings-manager.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml new file mode 100644 index 0000000..682a2a7 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml new file mode 100644 index 0000000..7355e82 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/install-scripts/00-dependencies.sh b/install-scripts/00-dependencies.sh new file mode 100755 index 0000000..5ad8f1b --- /dev/null +++ b/install-scripts/00-dependencies.sh @@ -0,0 +1,153 @@ +#!/bin/bash + +# https://github.com/JaKooLit + +# WARNING! If you remove packages here, Hyprland may not work properly. + +# packages neeeded +dependencies=( + build-essential + cmake + cmake-extras + curl + gettext + gir1.2-graphene-1.0 + git + glslang-tools + gobject-introspection + golang + hwdata + libavcodec-dev + libavformat-dev + libavutil-dev + libcairo2-dev + libdeflate-dev + libdisplay-info-dev + libdrm-dev + libegl1-mesa-dev + libgbm-dev + libgdk-pixbuf-2.0-dev + libgdk-pixbuf2.0-bin + libgirepository1.0-dev + libgl1-mesa-dev + libgraphene-1.0-0 + libgraphene-1.0-dev + libgtk-3-dev + libgulkan-0.15-0 + libgulkan-dev + libinih-dev + libinput-dev + libjbig-dev + libjpeg-dev + libjpeg62-turbo-dev + liblerc-dev + libliftoff-dev + liblzma-dev + libnotify-bin + libpam0g-dev + libpango1.0-dev + libpipewire-0.3-dev + libseat-dev + libswresample-dev + libsystemd-dev + libtiff-dev + libtiffxx6 + libudev-dev + libvkfft-dev + libvulkan-dev + libvulkan-volk-dev + libwayland-dev + libwebp-dev + libxcb-composite0-dev + libxcb-dri3-dev + libxcb-ewmh-dev + libxcb-icccm4-dev + libxcb-present-dev + libxcb-render-util0-dev + libxcb-res0-dev + libxcb-xinput-dev + libxcb-xkb-dev + libxkbcommon-dev + libxkbcommon-x11-dev + libxkbregistry-dev + libxml2-dev + libxxhash-dev + meson + ninja-build + psmisc + python3-mako + python3-markdown + python3-markupsafe + python3-yaml + qt6-base-dev + scdoc + seatd + spirv-tools + vulkan-validationlayers + vulkan-validationlayers-dev + wayland-protocols + xdg-desktop-portal + xwayland +) + +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### +# Determine the directory where the script is located +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || exit 1 + +# 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)_dependencies.log" + +set -e + +# Function for installing packages on Debian/Ubuntu +install_package() { + # Checking if package is already installed + if dpkg -l | grep -q -w "$1"; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + if sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review the log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry, I have tried :(" + exit 1 + fi + fi +} + +# Installation of main dependencies +printf "\n%s - Installing main dependencies.... \n" "${NOTE}" + +for PKG1 in "${dependencies[@]}"; do + install_package "$PKG1" 2>&1 | tee -a "$LOG" + if [ $? -ne 0 ]; then + echo -e "\e[1A\e[K${ERROR} - $PKG1 install had failed, please check the install.log" + exit 1 + fi +done + +# Install dependencies for wlroots +sudo apt build-dep wlroots +export PATH=$PATH:/usr/local/go/bin + +# Install Rust +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +source $HOME/.cargo/env + +clear diff --git a/install-scripts/00-hypr-pkgs.sh b/install-scripts/00-hypr-pkgs.sh new file mode 100755 index 0000000..91e032f --- /dev/null +++ b/install-scripts/00-hypr-pkgs.sh @@ -0,0 +1,110 @@ +#!/bin/bash + +# https://github.com/JaKooLit + +# edit your packages desired here. +# WARNING! If you remove packages here, dotfiles may not work properly. +# and also, ensure that packages are present in debian repo + +# add packages wanted here +Extra=( + +) + +# packages neeeded +hypr_package=( + curl + dunst + foot + grim + gvfs + gvfs-backends + network-manager-gnome + pavucontrol + playerctl + polkit-kde-agent-1 + python3-requests + qt5ct + slurp + waybar + wget + wl-clipboard + wofi +) + +# the following packages can be deleted. however, dotfiles may not work properly +hypr_package_2=( + brightnessctl + btop + cava + gnome-system-monitor + mousepad + mpv + nvtop + pamixer + swaybg + swayidle + viewnior + vim + wlsunset +) + + +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### +# Determine the directory where the script is located +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || exit 1 + +# 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)_hypr-pkgs.log" + +set -e + +# Function for installing packages on Debian/Ubuntu +install_package() { + # Checking if package is already installed + if dpkg -l | grep -q -w "$1"; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + if sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review the log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry, I have tried :(" + exit 1 + fi + fi +} + + +# Installation of main components +printf "\n%s - Installing hyprland packages.... \n" "${NOTE}" + +for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${Extra[@]}"; do + install_package "$PKG1" 2>&1 | tee -a "$LOG" + if [ $? -ne 0 ]; then + echo -e "\e[1A\e[K${ERROR} - $PKG1 install had failed, please check the install.log" + exit 1 + fi +done + +# Install cliphist using go +export PATH=$PATH:/usr/local/go/bin +go install go.senan.xyz/cliphist@latest 2>&1 | tee -a "$LOG" + +clear diff --git a/install-scripts/bluetooth.sh b/install-scripts/bluetooth.sh new file mode 100755 index 0000000..1676045 --- /dev/null +++ b/install-scripts/bluetooth.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +blue=( +bluez +blueman +) + + +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### +# Determine the directory where the script is located +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || exit 1 + +# 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)_bluetooth.log" + +# Set the script to exit on error +set -e + +# Function for installing packages on Debian/Ubuntu +install_package() { + # Checking if package is already installed + if dpkg -l | grep -q -w "$1"; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + if sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review the log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry, I have tried :(" + exit 1 + fi + fi +} + +# Bluetooth + +printf "${NOTE} Installing Bluetooth Packages...\n" + for BLUE in "${blue[@]}"; do + install_package "$BLUE" 2>&1 | tee -a "$LOG" + [ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $BLUE install had failed, please check the install.log"; exit 1; } + done + + printf " Activating Bluetooth Services...\n" + sudo systemctl enable --now bluetooth.service 2>&1 | tee -a "$LOG" + + clear diff --git a/install-scripts/dotfiles.sh b/install-scripts/dotfiles.sh new file mode 100644 index 0000000..96c4b18 --- /dev/null +++ b/install-scripts/dotfiles.sh @@ -0,0 +1,112 @@ +#!/bin/bash + +# Determine the directory where the dotfiles.sh script is located +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Change the working directory to the parent directory of the script +cd "$SCRIPT_DIR/.." || exit 1 + +# 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 +} + +# 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 foot hypr swappy swaylock waybar wofi neofetch; 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/hypr ~/.config/ && { echo "Copy completed!"; } || { echo "Error: Failed to copy hypr config files."; exit 1; } 2>&1 | tee -a "$LOG" + cp -r config/foot ~/.config/ || { echo "Error: Failed to copy foot config files."; exit 1; } 2>&1 | tee -a "$LOG" + cp -r config/btop ~/.config/ || { echo "Error: Failed to copy btop config files."; exit 1; } 2>&1 | tee -a "$LOG" + cp -r config/cava ~/.config/ || { echo "Error: Failed to copy cava config files."; exit 1; } 2>&1 | tee -a "$LOG" + cp -r config/swappy ~/.config/ || { echo "Error: Failed to copy swappy config files."; exit 1; } 2>&1 | tee -a "$LOG" + cp -r config/neofetch ~/.config/ || { echo "Error: Failed to copy neofetch config files."; exit 1; } 2>&1 | tee -a "$LOG" + mkdir -p ~/Pictures/wallpapers + cp -r wallpapers ~/Pictures/ && { echo "Copy completed!"; } || { echo "Error: Failed to copy wallpapers."; exit 1; } 2>&1 | tee -a "$LOG" + + # symlinks for waybar + ln -sf "$HOME/.config/hypr/waybar/configs/config-default" "$HOME/.config/hypr/waybar/config" && \ + ln -sf "$HOME/.config/hypr/waybar/style/style-dark.css" "$HOME/.config/hypr/waybar/style.css" && \ + + # symlinks for dunst + ln -sf "$HOME/.config/hypr/dunst/styles/dunstrc-dark" "$HOME/.config/hypr/dunst/dunstrc" && \ + + # symlink for wofi + ln -sf "$HOME/.config/hypr/wofi/styles/style-dark.css" "$HOME/.config/hypr/wofi/style.css" && \ + + # Set some files as executable + chmod +x ~/.config/hypr/scripts/* 2>&1 | tee -a "$LOG" + +# Clear screen +clear diff --git a/install-scripts/fonts.sh b/install-scripts/fonts.sh new file mode 100644 index 0000000..461ff93 --- /dev/null +++ b/install-scripts/fonts.sh @@ -0,0 +1,76 @@ +#!/bin/bash + +fonts=( +fonts-noto +fonts-noto-color-emoji +fonts-font-awesome +fonts-noto-cjk +fonts-fantasque-sans +) + + +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### +# Determine the directory where the script is located +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || exit 1 + + +# 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)_fonts.log" + +set -e + +# Function for installing packages on Debian/Ubuntu +install_package() { + # Checking if package is already installed + if dpkg -l | grep -q -w "$1"; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + sudo apt-get install -y "$1" >> "$LOG" 2>&1 + # Check if the package was installed successfully + if dpkg -l | grep -q -w "$1"; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review the log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry, I have tried :(" + exit 1 + fi + fi +} + +# Installation of main components +printf "\n%s - Installing fonts.... \n" "${NOTE}" + +for PKG1 in "${fonts[@]}"; do + install_package "$PKG1" 2>&1 | tee -a "$LOG" + if [ $? -ne 0 ]; then + echo -e "\e[1A\e[K${ERROR} - $PKG1 install had failed, please check the install.log" + exit 1 + fi +done + +# jetbrains nerd font. Necessary for waybar +curl -OL https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.tar.xz + +mkdir -p ~/.local/share/fonts/ +tar -xJkf JetBrainsMono.tar.xz -C ~/.local/share/fonts/ 2>&1 | tee -a "$LOG" + +# update font cache +fc-cache -v + +clear diff --git a/install-scripts/gtk_themes.sh b/install-scripts/gtk_themes.sh new file mode 100755 index 0000000..2308efa --- /dev/null +++ b/install-scripts/gtk_themes.sh @@ -0,0 +1,64 @@ +#!/bin/bash + +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### +# Determine the directory where the script is located +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || exit 1 + +# 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)_themes.log" + +set -e + +# Function for installing packages on Debian/Ubuntu +install_package() { + # Checking if package is already installed + if dpkg -l | grep -q -w "$1"; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + if sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review the log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry, I have tried :(" + exit 1 + fi + fi +} + +# installing unzip package to unzip theme packages +for PKG1 in unzip; do + install_package "$PKG1" 2>&1 | tee -a "$LOG" + if [ $? -ne 0 ]; then + echo -e "\033[1A\033[K${ERROR} - $PKG1 install had failed, please check the install.log" + exit 1 + fi +done + +printf "${NOTE} Installing Tokyo Theme GTK packages...\n" +if wget https://github.com/ljmill/tokyo-night-icons/releases/download/v0.2.0/TokyoNight-SE.tar.bz2; then + mkdir -p ~/.icons + tar -xvjf TokyoNight-SE.tar.bz2 -C ~/.icons + mkdir -p ~/.themes + unzip -q "assets/tokyo-themes/Tokyonight-Dark-B.zip" -d ~/.themes || true + unzip -q "assets/tokyo-themes/Tokyonight-Light-B.zip" -d ~/.themes || true +else + echo -e "${ERROR} Download failed for Tokyo Theme GTK packages." +fi + +clear diff --git a/install-scripts/hyprland.sh b/install-scripts/hyprland.sh new file mode 100644 index 0000000..3c11635 --- /dev/null +++ b/install-scripts/hyprland.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# 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)_hyprland.log" + +# Clone, build, and install Hyprland using Cmake +printf "${NOTE} Cloning Hyprland...\n" +if git clone --recursive https://github.com/hyprwm/Hyprland 2>&1 | tee -a "$LOG"; then + cd Hyprland || exit 1 + if sudo make install 2>&1 | tee -a "$LOG"; then + printf "${OK} Hyprland installed successfully.\n" + else + echo -e "${ERROR} Installation failed for Hyprland." + fi + # Return to the previous directory + cd .. +else + echo -e "${ERROR} Download failed for Hyprland." +fi + +clear diff --git a/install-scripts/nvidia.sh b/install-scripts/nvidia.sh new file mode 100755 index 0000000..41f316e --- /dev/null +++ b/install-scripts/nvidia.sh @@ -0,0 +1,131 @@ +#!/bin/bash + +nvidia_pkg=( + nvidia-driver + firmware-misc-nonfree + linux-headers-$(uname -r) + libva-wayland2 + nvidia-vaapi-driver +) + +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### +# Determine the directory where the script is located +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || exit 1 + +# 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)_nvidia.log" + +set -e + +# Function for installing packages on Debian/Ubuntu +install_package() { + # Checking if package is already installed + if dpkg -l | grep -q -w "$1"; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + if sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review the log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry, I have tried :(" + exit 1 + fi + fi +} + +# Function to add a value to a configuration file if not present +add_to_file() { + local config_file="$1" + local value="$2" + + if ! sudo grep -q "$value" "$config_file"; then + echo "Adding $value to $config_file" + sudo sh -c "echo '$value' >> '$config_file'" + else + echo "$value is already present in $config_file." + fi +} + +# Clone, build, and install nvidia-Hyprland using Cmake +printf "${NOTE} Installing nvidia-Hyprland...\n" +if git clone --recursive https://github.com/hyprwm/Hyprland 2>&1 | tee -a "$LOG"; then + cd Hyprland || exit 1 + # additional for hyprland-nvidia + sed 's/glFlush();/glFinish();/g' -i subprojects/wlroots/render/gles2/renderer.c + if sudo make install 2>&1 | tee -a "$LOG"; then + printf "${OK} Nvidia-Hyprland installed successfully.\n" + # Return to the previous directory + cd .. + else + echo -e "${ERROR} Installation failed for Nvidia-Hyprland." 2>&1 | tee -a "$LOG" + fi +else + echo -e "${ERROR} Download failed for Nvidia-Hyprland." 2>&1 | tee -a "$LOG" +fi + +# Install additional Nvidia packages +printf "${YELLOW} Installing Nvidia packages...\n" + for NVIDIA in "${nvidia_pkg[@]}"; do + install_package "$NVIDIA" 2>&1 | tee -a "$LOG" + done + +# Preparing exec.conf to enable env = WLR_NO_HARDWARE_CURSORS,1 so it will be ready once config files copied +sed -i '21s/#//' config/hypr/configs/ENVariables.conf + +printf "${YELLOW} nvidia-stuff to /etc/default/grub..." + + # Additional options to add to GRUB_CMDLINE_LINUX + additional_options="rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 rcutree.rcu_idle_gp_delay=1" + + # Check if additional options are already present in GRUB_CMDLINE_LINUX + if grep -q "GRUB_CMDLINE_LINUX.*$additional_options" /etc/default/grub; then + echo "GRUB_CMDLINE_LINUX already contains the additional options" + else + # Append the additional options to GRUB_CMDLINE_LINUX + sudo sed -i "s/GRUB_CMDLINE_LINUX=\"/GRUB_CMDLINE_LINUX=\"$additional_options /" /etc/default/grub + echo "Added the additional options to GRUB_CMDLINE_LINUX" + fi + + # Update GRUB configuration + sudo update-grub 2>&1 | tee -a "$LOG" + + # Define the configuration file and the line to add + config_file="/etc/modprobe.d/nvidia.conf" + line_to_add="options nvidia-drm modeset=1" + + # Check if the config file exists + if [ ! -e "$config_file" ]; then + echo "Creating $config_file" + sudo touch "$config_file" 2>&1 | tee -a "$LOG" + fi + + add_to_file "$config_file" "$line_to_add" + + # Add NVIDIA modules to initramfs configuration + modules_to_add="nvidia nvidia_modeset nvidia_uvm nvidia_drm" + modules_file="/etc/initramfs-tools/modules" + + if [ -e "$modules_file" ]; then + add_to_file "$modules_file" "$modules_to_add" 2>&1 | tee -a "$LOG" + sudo update-initramfs -u 2>&1 | tee -a "$LOG" + else + echo "Modules file ($modules_file) not found." 2>&1 | tee -a "$LOG" + fi + +clear diff --git a/install-scripts/nwg-look.sh b/install-scripts/nwg-look.sh new file mode 100755 index 0000000..ec523e7 --- /dev/null +++ b/install-scripts/nwg-look.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +nwg_look=( + golang + libgtk-3-dev + libcairo2-dev + libglib2.0-bin +) + +############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU'RE DOING! ############## + +# Determine the directory where the script is located +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || exit 1 + +# 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')_nwg-look.log" + +# Function for installing packages on Debian/Ubuntu +install_package() { + # Checking if package is already installed + if dpkg -l | grep -q -w "$1"; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + if sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review the log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry, I have tried :(" + exit 1 + fi + fi +} + +for package in "${nwg_look[@]}"; do + install_package "$package" || exit 1 +done + +printf "${NOTE} Installing nwg-look\n" +if git clone https://github.com/nwg-piotr/nwg-look.git; then + cd nwg-look || exit 1 + make build + sudo make install + cd .. +else + echo -e "${ERROR} Download failed for nwg-look." + exit 1 +fi + +clear diff --git a/install-scripts/rog.sh b/install-scripts/rog.sh new file mode 100755 index 0000000..ef144da --- /dev/null +++ b/install-scripts/rog.sh @@ -0,0 +1,64 @@ +#!/bin/bash + +############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU'RE DOING! ############## + +# Determine the directory where the script is located +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || exit 1 + +# 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')_rog.log" + +# Function to handle the installation and log messages +install_and_log() { + local project_name="$1" + local git_url="$2" + + printf "${NOTE} Installing $project_name\n" + + if git clone "$git_url" "$project_name"; then + cd "$project_name" || exit 1 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 2>&1 | tee -a "$LOG" + source "$HOME/.cargo/env" + make + + if sudo make install 2>&1 | tee -a "$LOG"; then + printf "${OK} $project_name installed successfully.\n" + if [ "$project_name" == "supergfxctl" ]; then + # Enable supergfxctl + sudo systemctl enable supergfxd.service --now + fi + else + echo -e "${ERROR} Installation failed for $project_name." + fi + + # Return to the previous directory + cd - || exit 1 + else + echo -e "${ERROR} Cloning $project_name from $git_url failed." + fi +} + +# Download and build asusctl +install_and_log "asusctl" "https://gitlab.com/asus-linux/asusctl.git" + +# Download and build supergfxctl +install_and_log "supergfxctl" "https://gitlab.com/asus-linux/supergfxctl.git" + +# Uncomment startup of ROG-Software +sed -i '20s/#//' config/hypr/configs/Execs.conf + +clear diff --git a/install-scripts/sddm.sh b/install-scripts/sddm.sh new file mode 100755 index 0000000..4bc2e73 --- /dev/null +++ b/install-scripts/sddm.sh @@ -0,0 +1,69 @@ +#!/bin/bash +# https://github.com/JaKooLit + +# WARNING! If you remove packages here, dotfiles may not work properly. +# and also, ensure that packages are present in debian repo + +login=( + sddm +) + +# Determine the directory where the script is located +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || exit 1 + +# 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)_sddm.log" + +set -e + +# Install SDDM and Tokyo-Night theme +for PKG1 in "${login[@]}" ; do + sudo apt install --no-install-recommends -y "$PKG1" 2>&1 | tee -a "$LOG" + if [ $? -ne 0 ]; then + echo -e "\e[1A\e[K${ERROR} - $PKG1 install had failed, please check the install.log" + exit 1 + fi +done + +# Check if other login managers are installed and disabling their service before enabling sddm +for login_manager in lightdm gdm lxdm lxdm-gtk3; do + if sudo apt list installed "$login_manager" &>> /dev/null; then + echo "Disabling $login_manager..." + sudo systemctl disable "$login_manager" 2>&1 | tee -a "$LOG" + fi +done + +printf " Activating sddm service........\n" +sudo systemctl enable sddm + +# Set up SDDM +echo -e "${NOTE} Setting up the login screen." +sddm_conf_dir=/etc/sddm.conf.d +[ ! -d "$sddm_conf_dir" ] && { printf "$CAT - $sddm_conf_dir not found, creating...\n"; sudo mkdir -p "$sddm_conf_dir" 2>&1 | tee -a "$LOG"; } + +wayland_sessions_dir=/usr/share/wayland-sessions +[ ! -d "$wayland_sessions_dir" ] && { printf "$CAT - $wayland_sessions_dir not found, creating...\n"; sudo mkdir -p "$wayland_sessions_dir" 2>&1 | tee -a "$LOG"; } +sudo cp assets/hyprland.desktop "$wayland_sessions_dir/" 2>&1 | tee -a "$LOG" + +# Tokyo-night SDDM-themes +printf "\n%s - Installing Tokyo-Night SDDM Theme\n" "${NOTE}" +git clone https://github.com/rototrash/tokyo-night-sddm.git 2>&1 | tee -a "$LOG" +sudo mkdir -p /usr/share/sddm/themes +sudo mv tokyo-night-sddm /usr/share/sddm/themes/ +echo -e "[Theme]\nCurrent=tokyo-night-sddm" | sudo tee -a "$sddm_conf_dir/10-theme.conf" 2>&1 | tee -a "$LOG" + +clear \ No newline at end of file diff --git a/install-scripts/swaylock-effects.sh b/install-scripts/swaylock-effects.sh new file mode 100755 index 0000000..18b863d --- /dev/null +++ b/install-scripts/swaylock-effects.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU'RE DOING! ############## + +# Determine the directory where the script is located +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || exit 1 + +# 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')_swaylock-effects.log" + +printf "${NOTE} Installing swaylock-effects\n" + +if git clone https://github.com/mortie/swaylock-effects.git; then + cd swaylock-effects || exit 1 + meson build + ninja -C build + sudo ninja -C build install 2>&1 | tee -a "$LOG" + # Return to the previous directory + cd - || exit 1 +else + echo -e "${ERROR} Download failed for swaylock-effects" 2>&1 | tee -a "$LOG" +fi + +clear diff --git a/install-scripts/swww.sh b/install-scripts/swww.sh new file mode 100755 index 0000000..f6cda4b --- /dev/null +++ b/install-scripts/swww.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU'RE DOING! ############## + +# Determine the directory where the script is located +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || exit 1 + +# 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')_swww.log" + +printf "${NOTE} Installing swww\n" + +if git clone https://github.com/Horus645/swww.git 2>&1 | tee -a "$LOG"; then + cd swww || exit 1 + source "$HOME/.cargo/env" + cargo build --release 2>&1 | tee -a "$LOG" + # Copy binaries to /usr/bin/ + sudo cp target/release/swww /usr/bin/ 2>&1 | tee -a "$LOG" + sudo cp target/release/swww-daemon /usr/bin/ 2>&1 | tee -a "$LOG" + + # Copy bash completions + sudo mkdir -p /usr/share/bash-completion/completions 2>&1 | tee -a "$LOG" + sudo cp completions/swww.bash /usr/share/bash-completion/completions/swww 2>&1 | tee -a "$LOG" + + # Copy zsh completions + sudo mkdir -p /usr/share/zsh/site-functions 2>&1 | tee -a "$LOG" + sudo cp completions/_swww /usr/share/zsh/site-functions/_swww 2>&1 | tee -a "$LOG" + + # Return to the previous directory + cd - || exit 1 +else + echo -e "${ERROR} Download failed for swww" 2>&1 | tee -a "$LOG" +fi + +# Uncomment startup of swww +sed -i -e '7s/^#//' -e '8s/^/#/' config/hypr/configs/Execs.conf + +clear diff --git a/install-scripts/thunar.sh b/install-scripts/thunar.sh new file mode 100755 index 0000000..39bfcdb --- /dev/null +++ b/install-scripts/thunar.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +thunar=( +thunar +thunar-volman +tumbler +thunar-archive-plugin +xarchiver +) + +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### +# Determine the directory where the script is located +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || exit 1 + +# 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)_thunar.log" + +set -e + +# Function for installing packages on Debian/Ubuntu +install_package() { + # Checking if package is already installed + if dpkg -l | grep -q -w "$1"; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + if sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review the log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry, I have tried :(" + exit 1 + fi + fi +} + +printf "${NOTE} Installing Thunar Packages...\n" + for THUNAR in "${thunar[@]}"; do + install_package "$THUNAR" 2>&1 | tee -a "$LOG" + [ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $THUNAR install had failed, please check the install.log"; exit 1; } + done + + # Check for existing config folders and backup + for DIR1 in Thunar xfce4; do + DIRPATH=~/.config/$DIR1 + if [ -d "$DIRPATH" ]; then + echo -e "${NOTE} Config for $DIR1 found, backing up." + mv $DIRPATH $DIRPATH-back-up 2>&1 | tee -a "$LOG" + echo -e "${NOTE} Backed up $DIR1 to $DIRPATH-back-up." + fi + done + cp -r config/xfce4 ~/.config/ && { echo "Copy xfce4 completed!"; } || { echo "Error: Failed to copy xfce4 config files."; exit 1; } 2>&1 | tee -a "$LOG" + cp -r config/Thunar ~/.config/ && { echo "Copy Thunar completed!"; } || { echo "Error: Failed to copy Thunar config files."; exit 1; } 2>&1 | tee -a "$LOG" + +clear diff --git a/install-scripts/xdph.sh b/install-scripts/xdph.sh new file mode 100755 index 0000000..3d145c6 --- /dev/null +++ b/install-scripts/xdph.sh @@ -0,0 +1,66 @@ +#!/bin/bash + + +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### +# Determine the directory where the script is located +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || exit 1 + +# 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)_xdph.log" + +# Clone and build xdg-desktop-portal-hyprland +printf "${NOTE} Installing xdg-desktop-portal-hyprland...\n" +if git clone https://github.com/hyprwm/xdg-desktop-portal-hyprland.git 2>&1 | tee -a "$LOG"; then + cd xdg-desktop-portal-hyprland || exit 1 + cd subprojects + git clone https://github.com/hyprwm/hyprland-protocols.git + git clone https://github.com/Kistler-Group/sdbus-cpp.git + cd .. + make all + if sudo make install 2>&1 | tee -a "$LOG"; then + printf "${OK} xdg-desktop-portal-hyprland installed successfully.\n" + # Return to the previous directory + cd .. + else + echo -e "${ERROR} Installation failed for xdg-desktop-portal-hyprland." + fi +else + echo -e "${ERROR} Download failed for xdg-desktop-portal-hyprland." +fi + +printf "\n" +printf "\n" +printf "\n" + # Clean out other portals + printf "${NOTE} Clearing any other xdg-desktop-portal implementations...\n" + # Check if packages are installed and uninstall if present + if sudo apt list installed xdg-desktop-portal-gnome &>> /dev/null; then + echo "Removing xdg-desktop-portal-gnome..." + sudo apt remove -y xdg-desktop-portal-gnome 2>&1 | tee -a "$LOG" + fi + if sudo apt list installed xdg-desktop-portal-wlr &>> /dev/null; then + echo "Removing xdg-desktop-portal-wlr..." + sudo apt remove -y xdg-desktop-portal-wlr 2>&1 | tee -a "$LOG" + fi + if sudo apt list installed xdg-desktop-portal-lxqt &>> /dev/null; then + echo "Removing xdg-desktop-portal-lxqt..." + sudo apt remove -y xdg-desktop-portal-lxqt 2>&1 | tee -a "$LOG" + fi + +sed -i '17s/#//' config/hypr/configs/Execs.conf + +clear \ No newline at end of file diff --git a/install-scripts/zsh.sh b/install-scripts/zsh.sh new file mode 100755 index 0000000..e388b15 --- /dev/null +++ b/install-scripts/zsh.sh @@ -0,0 +1,73 @@ +#!/bin/bash + + +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### +# Determine the directory where the script is located +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || exit 1 + +# 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)_zsh.log" + +set -e + +# Function for installing packages on Debian/Ubuntu +install_package() { + # Checking if package is already installed + if dpkg -l | grep -q -w "$1"; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + if sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review the log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry, I have tried :(" + exit 1 + fi + fi +} + + +# zsh and oh-my-zsh +printf "${WARN} #### IF YOU HAVE ALREADY ZSH AND OH MY ZSH, YOU SHOULD CHOOSE NO HERE #########\n" +printf "${WARN} ### ------------------------------------------------------------------------------------------------------------------------###\n" +printf "${NOTE} ## CHECK OUT README FOR ADDITIONAL STEPS REQUIRED ONCE ZSH AND OH-MY-ZSH INSTALLED ##\n" +printf "\n" +printf "\n" +read -n1 -rep "${CAT} OPTIONAL - Would you like to install zsh and oh-my-zsh and use as default shell? (y/n)" zsh +echo + +if [[ $zsh =~ ^[Yy]$ ]]; then + for ZSH in zsh ; do + install_package "$ZSH" 2>&1 | tee -a "$LOG" + if [ $? -ne 0 ]; then + echo -e "\e[1A\e[K${ERROR} - $ZSH install had failed, please check the install.log" + fi + done + + # Oh-my-zsh plus zsh-autosuggestions and zsh-syntax-highlighting + printf "${NOTE} Installing oh-my-zsh and plugins.\n" + sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended && \ + git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions && \ + git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting && \ + cp -r 'assets/.zshrc' ~/ +else + printf "${NOTE} ZSH wont be installed.\n" +fi + +clear diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..e94f47e --- /dev/null +++ b/install.sh @@ -0,0 +1,229 @@ +#!/bin/bash + +# https://github.com/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 + +clear + +# Welcome message +echo "$(tput setaf 6)Welcome to JaKooLit's Debian / Ubuntu Hyprland Install Script!$(tput sgr0)" +echo +echo "$(tput setaf 166)ATTENTION: Run a full system update and Reboot first!! (Highly Recommended) $(tput sgr0)" +echo +echo "$(tput setaf 3)NOTE: You will be required to answer some questions during the installation! $(tput sgr0)" +echo + +read -p "$(tput setaf 6)Would you like to proceed? (y/n): $(tput sgr0)" proceed + +if [ "$proceed" != "y" ]; then + echo "Installation aborted." + 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) + +# Function to colorize prompts +colorize_prompt() { + local color="$1" + local message="$2" + echo -n "${color}${message}$(tput sgr0)" +} + +# Set the name of the log file to include the current date and time +LOG="install-$(date +%d-%H%M%S).log" + +# Initialize variables to store user responses +bluetooth="" +dots="" +gtk_themes="" +nvidia="" +nwg="" +rog="" +sddm="" +swww="" +thunar="" +xdph="" +zsh="" + +# Define the directory where your scripts are located +script_directory=install-scripts + +# Function to ask a yes/no question and set the response in a variable +ask_yes_no() { + while true; do + read -p "$(colorize_prompt "$CAT" "$1 (y/n): ")" choice + case "$choice" in + [Yy]* ) eval "$2='Y'"; return 0;; + [Nn]* ) eval "$2='N'"; return 1;; + * ) echo "Please answer with y or n.";; + esac + done +} + +# Function to ask a custom question with specific options and set the response in a variable +ask_custom_option() { + local prompt="$1" + local valid_options="$2" + local response_var="$3" + + while true; do + read -p "$(colorize_prompt "$CAT" "$prompt ($valid_options): ")" choice + if [[ " $valid_options " == *" $choice "* ]]; then + eval "$response_var='$choice'" + return 0 + else + echo "Please choose one of the provided options: $valid_options" + fi + done +} +# Function to execute a script if it exists and make it executable +execute_script() { + local script="$1" + local script_path="$script_directory/$script" + if [ -f "$script_path" ]; then + chmod +x "$script_path" + if [ -x "$script_path" ]; then + "$script_path" + else + echo "Failed to make script '$script' executable." + fi + else + echo "Script '$script' not found in '$script_directory'." + fi +} + +# Collect user responses to all questions +printf "\n" +ask_yes_no "Do you have nvidia gpu?" nvidia +printf "\n" +ask_yes_no "Do you want to install GTK themes?" gtk_themes +printf "\n" +ask_yes_no "Do you want to configure Bluetooth?" bluetooth +printf "\n" +ask_yes_no "Do you want to install Thunar file manager?" thunar +printf "\n" +ask_yes_no "Installing in Asus ROG Laptops?" rog +printf "\n" +ask_yes_no "Do you want to install and configure SDDM?" sddm +printf "\n" +ask_yes_no "Do you want to install xdg-desktop-portal-hyprland?" xdph +printf "\n" +ask_yes_no "Do you want to install zsh and oh-my-zsh?" zsh +printf "\n" +ask_yes_no "Do you want to install swww?" swww +printf "\n" +ask_yes_no "Do you want to install nwg-look?" nwg +printf "\n" +ask_yes_no "Do you want to copy dotfiles?" dots +printf "\n" +# Ensuring all in the scripts folder are made executable +chmod +x install-scripts/* + + +# enabling deb-src in /etc/apt/sources.list +# Path to the sources.list file +sources_list="/etc/apt/sources.list" + +# Check if deb-src lines exist in the sources.list file +if grep -q "^deb-src" "$sources_list"; then + echo "deb-src lines already exist in $sources_list." +else + # Add deb-src lines if they don't exist + echo "deb-src lines not found in $sources_list. Adding one..." + sudo sed -i '/^deb /s/^/#/' "$sources_list" + sudo sed -i '/^# deb-src/ s/^# //' "$sources_list" +fi + +# Install hyprland packages +execute_script "00-dependencies.sh" +execute_script "00-hypr-pkgs.sh" +execute_script "fonts.sh" + +if [ "$nvidia" == "Y" ]; then + execute_script "nvidia.sh" +fi + +if [ "$nvidia" == "N" ]; then + execute_script "hyprland.sh" +fi + +if [ "$gtk_themes" == "Y" ]; then + execute_script "gtk_themes.sh" +fi + +if [ "$bluetooth" == "Y" ]; then + execute_script "bluetooth.sh" +fi + +if [ "$thunar" == "Y" ]; then + execute_script "thunar.sh" +fi + +if [ "$rog" == "Y" ]; then + execute_script "rog.sh" +fi + +if [ "$sddm" == "Y" ]; then + execute_script "sddm.sh" +fi + +if [ "$xdph" == "Y" ]; then + execute_script "xdph.sh" +fi + +if [ "$zsh" == "Y" ]; then + execute_script "zsh.sh" +fi + +if [ "$swww" == "Y" ]; then + execute_script "swww.sh" +fi + +if [ "$nwg" == "Y" ]; then + execute_script "nwg-look.sh" +fi + +if [ "$dots" == "Y" ]; then + execute_script "dotfiles.sh" + +fi + +clear + +printf "\n${OK} Yey! Installation Completed.\n" +printf "\n" +printf "\n${NOTE} NOTICE TO NVIDIA OWNERS! System will reboot your system!\n" +sleep 2 +printf "\n${NOTE} You can start Hyprland by typing Hyprland (IF SDDM is not installed) (note the capital H!).\n" +printf "\n" +printf "\n" +read -n1 -rep "${CAT} Would you like to start Hyprland now? (y,n)" HYP + +if [[ $HYP =~ ^[Yy]$ ]]; then + if [[ "$nvidia" == "Y" ]]; then + echo "${NOTE} NVIDIA GPU detected. Rebooting the system..." + systemctl reboot + elif command -v sddm >/dev/null; then + sudo systemctl restart sddm 2>&1 | tee -a "$LOG" + else + if command -v Hyprland >/dev/null; then + exec Hyprland + else + echo "${ERROR} Hyprland not found. Please make sure Hyprland is installed by checking install logs" + fi + fi +fi + diff --git a/wallpapers/Dynamic-Wallpapers/Dark/Riverside_dark.jpg b/wallpapers/Dynamic-Wallpapers/Dark/Riverside_dark.jpg new file mode 100755 index 0000000..75cac96 Binary files /dev/null and b/wallpapers/Dynamic-Wallpapers/Dark/Riverside_dark.jpg differ diff --git a/wallpapers/Dynamic-Wallpapers/Dark/garden_dark.jpg b/wallpapers/Dynamic-Wallpapers/Dark/garden_dark.jpg new file mode 100755 index 0000000..ae8b49d Binary files /dev/null and b/wallpapers/Dynamic-Wallpapers/Dark/garden_dark.jpg differ diff --git a/wallpapers/Dynamic-Wallpapers/Dark/kitty_dark.jpg b/wallpapers/Dynamic-Wallpapers/Dark/kitty_dark.jpg new file mode 100644 index 0000000..185e5ce Binary files /dev/null and b/wallpapers/Dynamic-Wallpapers/Dark/kitty_dark.jpg differ diff --git a/wallpapers/Dynamic-Wallpapers/Light/Riverside_light.jpg b/wallpapers/Dynamic-Wallpapers/Light/Riverside_light.jpg new file mode 100755 index 0000000..98e459c Binary files /dev/null and b/wallpapers/Dynamic-Wallpapers/Light/Riverside_light.jpg differ diff --git a/wallpapers/Dynamic-Wallpapers/Light/garden_light.jpg b/wallpapers/Dynamic-Wallpapers/Light/garden_light.jpg new file mode 100755 index 0000000..0f3de24 Binary files /dev/null and b/wallpapers/Dynamic-Wallpapers/Light/garden_light.jpg differ diff --git a/wallpapers/Dynamic-Wallpapers/Light/kitty_light.jpg b/wallpapers/Dynamic-Wallpapers/Light/kitty_light.jpg new file mode 100644 index 0000000..2efc129 Binary files /dev/null and b/wallpapers/Dynamic-Wallpapers/Light/kitty_light.jpg differ diff --git a/wallpapers/kitty_dark.jpg b/wallpapers/kitty_dark.jpg new file mode 100644 index 0000000..185e5ce Binary files /dev/null and b/wallpapers/kitty_dark.jpg differ diff --git a/wallpapers/staircase.jpg b/wallpapers/staircase.jpg new file mode 100644 index 0000000..93bf30f Binary files /dev/null and b/wallpapers/staircase.jpg differ