mirror of
https://github.com/alvinlollo/Single-install-script.git
synced 2026-06-15 03:04:26 +10:00
Added removed moved dot files
This commit is contained in:
@@ -1,105 +0,0 @@
|
||||
/* ---- 💫 https://github.com/JaKooLit 💫 ---- */
|
||||
|
||||
// ### DUAL TOP and BOTTOM ### //
|
||||
|
||||
[{
|
||||
"include": [
|
||||
"$HOME/.config/waybar/Modules",
|
||||
"$HOME/.config/waybar/ModulesWorkspaces",
|
||||
"$HOME/.config/waybar/ModulesCustom",
|
||||
"$HOME/.config/waybar/ModulesGroups",
|
||||
"$HOME/.config/waybar/UserModules",
|
||||
],
|
||||
"layer": "top",
|
||||
//"mode": "dock",
|
||||
"exclusive": true,
|
||||
"passthrough": false,
|
||||
"position": "top",
|
||||
"spacing": 3,
|
||||
"fixed-center": true,
|
||||
"ipc": true,
|
||||
"margin-top": 1,
|
||||
"margin-left": 8,
|
||||
"margin-right": 8,
|
||||
|
||||
"modules-left": [
|
||||
"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/hyprwhspr",
|
||||
"custom/lock",
|
||||
],
|
||||
|
||||
"custom/hyprwhspr": {
|
||||
"format": "{}",
|
||||
"exec": "/usr/lib/hyprwhspr/config/hyprland/hyprwhspr-tray.sh status",
|
||||
"interval": 1,
|
||||
"return-type": "json",
|
||||
"exec-on-event": true,
|
||||
"on-click": "/usr/lib/hyprwhspr/config/hyprland/hyprwhspr-tray.sh toggle",
|
||||
"on-click-right": "/usr/lib/hyprwhspr/config/hyprland/hyprwhspr-tray.sh start",
|
||||
"on-click-middle": "/usr/lib/hyprwhspr/config/hyprland/hyprwhspr-tray.sh restart",
|
||||
"tooltip": true
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
"include": [
|
||||
"$HOME/.config/waybar/Modules",
|
||||
"$HOME/.config/waybar/ModulesWorkspaces",
|
||||
"$HOME/.config/waybar/ModulesCustom",
|
||||
"$HOME/.config/waybar/ModulesGroups",
|
||||
"$HOME/.config/waybar/UserModules",
|
||||
],
|
||||
"layer": "top",
|
||||
//"mode": "dock",
|
||||
"exclusive": true,
|
||||
"passthrough": false,
|
||||
"position": "bottom",
|
||||
"spacing": 5,
|
||||
"fixed-center": true,
|
||||
"ipc": true,
|
||||
"height": 0,
|
||||
"margin-left": 8,
|
||||
"margin-right": 8,
|
||||
//"gtk-layer-shell": true,
|
||||
//"margin-bottom": 0,
|
||||
|
||||
"modules-left": [
|
||||
"custom/menu",
|
||||
"wlr/taskbar",
|
||||
],
|
||||
|
||||
"modules-center": [
|
||||
"hyprland/workspaces#rw",
|
||||
],
|
||||
|
||||
"modules-right": [
|
||||
"hyprland/window",
|
||||
"tray",
|
||||
"group/notify",
|
||||
"mpris",
|
||||
"keyboard-state",
|
||||
"pulseaudio",
|
||||
//"wireplumber",
|
||||
"pulseaudio#microphone",
|
||||
"custom/power",
|
||||
],
|
||||
}],
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"custom/hyprwhspr": {
|
||||
"format": "{}",
|
||||
"exec": "/usr/lib/hyprwhspr/config/hyprland/hyprwhspr-tray.sh status",
|
||||
"interval": 1,
|
||||
"return-type": "json",
|
||||
"exec-on-event": true,
|
||||
"on-click": "/usr/lib/hyprwhspr/config/hyprland/hyprwhspr-tray.sh toggle",
|
||||
"on-click-right": "/usr/lib/hyprwhspr/config/hyprland/hyprwhspr-tray.sh start",
|
||||
"on-click-middle": "/usr/lib/hyprwhspr/config/hyprland/hyprwhspr-tray.sh restart",
|
||||
"tooltip": true
|
||||
}
|
||||
}
|
||||
@@ -1,354 +0,0 @@
|
||||
/* ----------- 💫 https://github.com/JaKooLit 💫 -------- */
|
||||
/* ..........Half Moon.................. */
|
||||
/* NOTE: This is only for some waybar configs */
|
||||
/* --- 👍 shared by https://github.com/TomekBobrowicz 👍 --- */
|
||||
|
||||
* {
|
||||
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: 97%;
|
||||
font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
|
||||
}
|
||||
|
||||
|
||||
window#waybar {
|
||||
background-color: rgba(26,27,38,0);
|
||||
border-bottom: 1px solid rgba(26,27,38,0);
|
||||
border-radius: 0px;
|
||||
color: #E6B673;
|
||||
}
|
||||
|
||||
#waybar.empty, #waybar.tiled, #waybar.floating {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
window#waybar.empty,
|
||||
window#waybar.empty #window {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#taskbar,
|
||||
#workspaces {
|
||||
background: #0F1419;
|
||||
margin: 5px;
|
||||
padding: 0px 1px;
|
||||
border-radius: 15px;
|
||||
border: 0px;
|
||||
font-style: normal;
|
||||
color: #0F1419;
|
||||
}
|
||||
|
||||
#taskbar button,
|
||||
#workspaces button {
|
||||
padding: 0px 5px;
|
||||
margin: 4px 3px;
|
||||
border-radius: 15px;
|
||||
border: 0px;
|
||||
color: #0F1419;
|
||||
background: linear-gradient(45deg, #95E6CB, #59C2FF, #D2A6FF);
|
||||
opacity: 0.5;
|
||||
transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
|
||||
}
|
||||
|
||||
#taskbar button.active,
|
||||
#workspaces button.active {
|
||||
padding: 0px 5px;
|
||||
margin: 4px 3px;
|
||||
border-radius: 15px;
|
||||
border: 0px;
|
||||
color: #0F1419;
|
||||
background: linear-gradient(45deg, #59C2FF, #D2A6FF);
|
||||
opacity: 1.0;
|
||||
min-width: 40px;
|
||||
transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
border-radius: 15px;
|
||||
color: #0F1419;
|
||||
background: linear-gradient(45deg, #59C2FF, #D2A6FF);
|
||||
opacity: 0.8;
|
||||
transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
|
||||
|
||||
}
|
||||
@keyframes gradient_horizontal {
|
||||
0% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
50% {
|
||||
background-position: 100% 50%;
|
||||
}
|
||||
100% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes swiping {
|
||||
0% {
|
||||
background-position: 0% 200%;
|
||||
}
|
||||
100% {
|
||||
background-position: 200% 200%;
|
||||
}
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: #0F1419;
|
||||
border: 1px solid #D2A6FF;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: #F3F4F5;
|
||||
}
|
||||
|
||||
#window {
|
||||
color: #E6E1CF;
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
}
|
||||
|
||||
#temperature,
|
||||
#memory {
|
||||
color: #E6B673;
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
}
|
||||
|
||||
#custom-light_dark,
|
||||
#custom-dot_update,
|
||||
#custom-swaync,
|
||||
#custom-hypridle,
|
||||
#idle_inhibitor,
|
||||
#clock {
|
||||
color: #B8CC52;
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
}
|
||||
|
||||
/*-----Indicators----*/
|
||||
#custom-hypridle.notactive,
|
||||
#idle_inhibitor.activated {
|
||||
color: #39FF14;
|
||||
}
|
||||
|
||||
#bluetooth {
|
||||
color: blue;
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
}
|
||||
|
||||
#custom-playerctl,
|
||||
#power-profiles-daemon,
|
||||
#custom-cycle_wall,
|
||||
#cpu {
|
||||
color: #F3F4F5;
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
}
|
||||
|
||||
#disk {
|
||||
color: #B8CC52;
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
}
|
||||
|
||||
#backlight,
|
||||
#battery {
|
||||
color: #F07178;
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
}
|
||||
|
||||
#mpris {
|
||||
color: #F07178;
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding-left: 8px;
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
color: white;
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
}
|
||||
|
||||
#network {
|
||||
color: #FF8F40;
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
}
|
||||
|
||||
#custom-hyprbindings {
|
||||
color: #D2A6FF;
|
||||
background: #0F1419;
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
}
|
||||
#tray {
|
||||
color: #E6E1CF;
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
color: #59C2FF;
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
}
|
||||
|
||||
#custom-notification {
|
||||
color: #95E6CB;
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
}
|
||||
|
||||
#custom-browser,
|
||||
#custom-file_manager,
|
||||
#custom-tty,
|
||||
#custom-settings {
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
color: #0F1419;
|
||||
background: linear-gradient(45deg, #95E6CB, #59C2FF, #D2A6FF);
|
||||
}
|
||||
|
||||
#custom-weather {
|
||||
color: #59C2FF;
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
}
|
||||
|
||||
#custom-menu {
|
||||
color: #59C2FF;
|
||||
background: #0F1419;
|
||||
border-radius: 0px 15px 50px 0px;
|
||||
margin: 5px 5px 5px 0px;
|
||||
padding: 1px 15px;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
color: #D2A6FF;
|
||||
background: #0F1419;
|
||||
border-radius: 15px 0px 0px 50px;
|
||||
margin: 5px 0px;
|
||||
padding: 2px 5px 2px 15px;
|
||||
}
|
||||
|
||||
#custom-lock {
|
||||
color: red;
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
}
|
||||
|
||||
#custom-power_vertical,
|
||||
#keyboard-state {
|
||||
color: green;
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
color: #f53c3c;
|
||||
animation-name: blink;
|
||||
animation-duration: 3.0s;
|
||||
animation-timing-function: steps(12);
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#backlight-slider slider,
|
||||
#pulseaudio-slider slider {
|
||||
min-width: 0px;
|
||||
min-height: 0px;
|
||||
opacity: 0;
|
||||
background-image: none;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
#backlight-slider trough,
|
||||
#pulseaudio-slider trough {
|
||||
min-width: 80px;
|
||||
min-height: 5px;
|
||||
border-radius: 5px;
|
||||
background-color: #6E6A86;
|
||||
}
|
||||
|
||||
#backlight-slider highlight,
|
||||
#pulseaudio-slider highlight {
|
||||
min-height: 10px;
|
||||
border-radius: 5px;
|
||||
background-color: purple;
|
||||
}
|
||||
|
||||
/* hyprwhspr Waybar Styling - Waybar Compatible */
|
||||
|
||||
/* Base styles - same icon for all states, only colors change */
|
||||
#custom-hyprwhspr {
|
||||
background: #0F1419;
|
||||
border-radius: 50px 50px;
|
||||
margin: 5px;
|
||||
padding: 2px 15px;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
border-bottom: 2px solid transparent;
|
||||
transition: color 150ms ease-in-out, border-color 150ms ease-in-out;
|
||||
}
|
||||
|
||||
#custom-hyprwhspr.ready {
|
||||
color: #059669; /* emerald-600 - darker green for better contrast */
|
||||
border-color: transparent;
|
||||
}
|
||||
|
||||
#custom-hyprwhspr.recording {
|
||||
color: #dc2626; /* red-600 - darker red for better contrast */
|
||||
border-color: #dc2626;
|
||||
}
|
||||
|
||||
#custom-hyprwhspr.error {
|
||||
color: #d97706; /* amber-600 - original perfect color */
|
||||
border-color: #d97706;
|
||||
}
|
||||
|
||||
/* Hover effects - Waybar doesn't support filter, so we use opacity instead */
|
||||
#custom-hyprwhspr:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
# You can put extra environment variables here
|
||||
# https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||
|
||||
# ######### Input method ##########
|
||||
# See https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland
|
||||
#env = QT_IM_MODULE, fcitx
|
||||
#env = XMODIFIERS, @im=fcitx
|
||||
#env = SDL_IM_MODULE, fcitx
|
||||
#env = GLFW_IM_MODULE, ibus
|
||||
#env = INPUT_METHOD, fcitx
|
||||
|
||||
# ######## Wayland #########
|
||||
# Tearing
|
||||
# env = WLR_DRM_NO_ATOMIC, 1
|
||||
# ?
|
||||
# env = WLR_NO_HARDWARE_CURSORS, 1
|
||||
|
||||
# ######## EDITOR #########
|
||||
#https://wiki.archlinux.org/title/Category:Text_editors
|
||||
# for example: vi nano nvim ...
|
||||
|
||||
#env = EDITOR, vim
|
||||
@@ -0,0 +1,6 @@
|
||||
# You can make apps auto-start here
|
||||
# Relevant Hyprland wiki section: https://wiki.hyprland.org/Configuring/Keywords/#executing
|
||||
|
||||
# Input method
|
||||
# exec-once = fcitx5
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
# Put general config stuff here
|
||||
# Here's a list of every variable: https://wiki.hyprland.org/Configuring/Variables/
|
||||
|
||||
# monitor=,addreserved, 0, 0, 0, 0 # Custom reserved area
|
||||
|
||||
# HDMI port: mirror display. To see device name, use `hyprctl monitors`
|
||||
@@ -0,0 +1,24 @@
|
||||
# See https://wiki.hyprland.org/Configuring/Binds/
|
||||
#!
|
||||
##! User
|
||||
bind = Ctrl+Super, Slash, exec, xdg-open ~/.config/illogical-impulse/config.json # Edit shell config
|
||||
bind = Ctrl+Super+Alt, Slash, exec, xdg-open ~/.config/hypr/custom/keybinds.conf # Edit extra keybinds
|
||||
|
||||
##! Apps
|
||||
# bind = Super, Return, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # Terminal
|
||||
# bind = Super, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (alt)
|
||||
# bind = Ctrl+Alt, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (for Ubuntu people)
|
||||
# bind = Super, E, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "dolphin" "nautilus" "nemo" "thunar" "${TERMINAL}" "kitty -1 fish -c yazi" # File manager
|
||||
# bind = Super, W, exec, zen-browser # Browser
|
||||
# bind = Super, C, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "code" "codium" "cursor" "zed" "zedit" "zeditor" "kate" "gnome-text-editor" "emacs" "command -v nvim && kitty -1 nvim" "command -v micro && kitty -1 micro" # Code editor
|
||||
# bind = Ctrl+Super+Shift+Alt, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "wps" "onlyoffice-desktopeditors" "libreoffice" # Office software
|
||||
# bind = Super, X, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "kate" "gnome-text-editor" "emacs" # Text editor
|
||||
# bind = Ctrl+Super, V, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "pavucontrol-qt" "pavucontrol" # Volume mixer
|
||||
# bind = Super, I, exec, XDG_CURRENT_DESKTOP=gnome ~/.config/hypr/hyprland/scripts/launch_first_available.sh "qs -p ~/.config/quickshell/$qsConfig/settings.qml" "systemsettings" "gnome-control-center" "better-control" # Settings app
|
||||
# bind = Ctrl+Shift, Escape, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "gnome-system-monitor" "plasma-systemmonitor --page-name Processes" "command -v btop && kitty -1 fish -c btop" # Task manager
|
||||
|
||||
# Add stuff here
|
||||
# Use #! to add an extra column on the cheatsheet
|
||||
# Use ##! to add a section in that column
|
||||
# Add a comment after a bind to add a description, like above
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# You can put custom rules here
|
||||
# Window/layer rules: https://wiki.hyprland.org/Configuring/Window-Rules/
|
||||
# Workspace rules: https://wiki.hyprland.org/Configuring/Workspace-Rules/
|
||||
|
||||
# ######## Window rules ########
|
||||
|
||||
# Uncomment to apply global transparency to all windows:
|
||||
# windowrule = opacity 0.89 override 0.89 override, match:class .*
|
||||
|
||||
# Disable blur for all xwayland apps
|
||||
# windowrule = no_blur on, match:xwayland 1
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
# The content of this script will be generated by switchwall.sh - Don't modify it by yourself.
|
||||
@@ -0,0 +1,26 @@
|
||||
$lock_cmd = hyprctl dispatch global quickshell:lock & pidof qs quickshell hyprlock || hyprlock
|
||||
# $lock_cmd = pidof hyprlock || hyprlock
|
||||
$suspend_cmd = systemctl suspend || loginctl suspend
|
||||
|
||||
general {
|
||||
lock_cmd = $lock_cmd
|
||||
before_sleep_cmd = loginctl lock-session
|
||||
after_sleep_cmd = hyprctl dispatch global quickshell:lockFocus
|
||||
inhibit_sleep = 3
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 300 # 5mins
|
||||
on-timeout = loginctl lock-session
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 600 # 10mins
|
||||
on-timeout = hyprctl dispatch dpms off
|
||||
on-resume = hyprctl dispatch dpms on
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 900 # 15mins
|
||||
on-timeout = $suspend_cmd
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
# This file sources other files in `hyprland` and `custom` folders
|
||||
# You wanna add your stuff in files in `custom`
|
||||
|
||||
$qsConfig = ii
|
||||
exec = hyprctl dispatch submap global # DO NOT REMOVE THIS OR YOU WON'T BE ABLE TO USE ANY KEYBIND
|
||||
submap = global # This is required for catchall to work
|
||||
|
||||
# Defaults
|
||||
source=hyprland/env.conf
|
||||
source=hyprland/execs.conf
|
||||
source=hyprland/general.conf
|
||||
source=hyprland/rules.conf
|
||||
source=hyprland/colors.conf
|
||||
source=hyprland/keybinds.conf
|
||||
|
||||
# Custom
|
||||
source=custom/env.conf
|
||||
source=custom/execs.conf
|
||||
source=custom/general.conf
|
||||
source=custom/rules.conf
|
||||
source=custom/keybinds.conf
|
||||
|
||||
# nwg-displays support
|
||||
source=workspaces.conf
|
||||
source=monitors.conf
|
||||
@@ -0,0 +1,32 @@
|
||||
general {
|
||||
col.active_border = rgba(8e909977)
|
||||
col.inactive_border = rgba(43474e55)
|
||||
}
|
||||
|
||||
misc {
|
||||
background_color = rgba(111318FF)
|
||||
}
|
||||
|
||||
plugin {
|
||||
hyprbars {
|
||||
# Honestly idk if it works like css, but well, why not
|
||||
bar_text_font = Google Sans Flex Medium, Rubik, Geist, AR One Sans, Reddit Sans, Inter, Roboto, Ubuntu, Noto Sans, sans-serif
|
||||
bar_height = 30
|
||||
bar_padding = 10
|
||||
bar_button_padding = 5
|
||||
bar_precedence_over_border = true
|
||||
bar_part_of_window = true
|
||||
|
||||
bar_color = rgba(111318FF)
|
||||
col.text = rgba(e2e2e9FF)
|
||||
|
||||
|
||||
# example buttons (R -> L)
|
||||
# hyprbars-button = color, size, on-click
|
||||
hyprbars-button = rgb(e2e2e9), 13, , hyprctl dispatch killactive
|
||||
hyprbars-button = rgb(e2e2e9), 13, , hyprctl dispatch fullscreen 1
|
||||
hyprbars-button = rgb(e2e2e9), 13, , hyprctl dispatch movetoworkspacesilent special
|
||||
}
|
||||
}
|
||||
|
||||
windowrule = border_color rgba(a9c7ffAA) rgba(a9c7ff77), match:pin 1
|
||||
@@ -0,0 +1,16 @@
|
||||
# ############ Wayland #############
|
||||
env = ELECTRON_OZONE_PLATFORM_HINT,auto
|
||||
|
||||
######### Applications #########
|
||||
env = XDG_DATA_DIRS,$HOME/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
|
||||
|
||||
# ############ Themes #############
|
||||
env = QT_QPA_PLATFORM, wayland
|
||||
env = QT_QPA_PLATFORMTHEME, kde
|
||||
env = XDG_MENU_PREFIX, plasma-
|
||||
|
||||
# ######## Virtual envrionment #########
|
||||
env = ILLOGICAL_IMPULSE_VIRTUAL_ENV, ~/.local/state/quickshell/.venv
|
||||
|
||||
# ######## Terminal application #########
|
||||
env = TERMINAL,kitty -1
|
||||
@@ -0,0 +1,32 @@
|
||||
# Bar, wallpaper
|
||||
exec-once = ~/.config/hypr/hyprland/scripts/start_geoclue_agent.sh
|
||||
exec-once = qs -c $qsConfig &
|
||||
exec-once = ~/.config/hypr/custom/scripts/__restore_video_wallpaper.sh
|
||||
|
||||
# Core components (authentication, lock screen, notification daemon)
|
||||
exec-once = gnome-keyring-daemon --start --components=secrets
|
||||
exec-once = hypridle
|
||||
exec-once = dbus-update-activation-environment --all
|
||||
exec-once = sleep 1 && dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # Some fix idk
|
||||
exec-once = hyprpm reload
|
||||
|
||||
# Audio
|
||||
exec-once = easyeffects --hide-window --service-mode
|
||||
|
||||
# Clipboard: history
|
||||
# exec-once = wl-paste --watch cliphist store &
|
||||
exec-once = wl-paste --type text --watch bash -c 'cliphist store && qs -c $qsConfig ipc call cliphistService update'
|
||||
exec-once = wl-paste --type image --watch bash -c 'cliphist store && qs -c $qsConfig ipc call cliphistService update'
|
||||
|
||||
# Cursor
|
||||
exec-once = hyprctl setcursor Bibata-Modern-Classic 24
|
||||
|
||||
# Fix dock pinned apps not launching properly (https://github.com/end-4/dots-hyprland/issues/2200)
|
||||
# This causes https://github.com/end-4/dots-hyprland/issues/2427
|
||||
# exec-once = sleep 3.5 && hyprctl reload && sleep 0.5 && touch ~/.config/quickshell/ii/shell.qml
|
||||
|
||||
# User
|
||||
exec-once = kdeconnectd
|
||||
exec-once = zen-browser
|
||||
exec-once = /usr/bin/speak-to-ai &
|
||||
exec-once = syncthing &
|
||||
@@ -0,0 +1,178 @@
|
||||
# MONITOR CONFIG
|
||||
monitor=,preferred,auto,1
|
||||
|
||||
gesture = 3, swipe, move,
|
||||
gesture = 3, pinch, float
|
||||
gesture = 4, horizontal, workspace
|
||||
gesture = 4, up, dispatcher, global, quickshell:overviewWorkspacesToggle
|
||||
gesture = 4, down, dispatcher, global, quickshell:overviewWorkspacesClose
|
||||
gestures {
|
||||
workspace_swipe_distance = 700
|
||||
workspace_swipe_cancel_ratio = 0.2
|
||||
workspace_swipe_min_speed_to_force = 5
|
||||
workspace_swipe_direction_lock = true
|
||||
workspace_swipe_direction_lock_threshold = 10
|
||||
workspace_swipe_create_new = true
|
||||
}
|
||||
|
||||
general {
|
||||
# Gaps and border
|
||||
gaps_in = 4
|
||||
gaps_out = 5
|
||||
gaps_workspaces = 50
|
||||
|
||||
border_size = 1
|
||||
col.active_border = rgba(0DB7D455)
|
||||
col.inactive_border = rgba(31313600)
|
||||
resize_on_border = true
|
||||
|
||||
no_focus_fallback = true
|
||||
|
||||
allow_tearing = true # This just allows the `immediate` window rule to work
|
||||
|
||||
snap {
|
||||
enabled = true
|
||||
window_gap = 4
|
||||
monitor_gap = 5
|
||||
respect_gaps = true
|
||||
}
|
||||
}
|
||||
|
||||
dwindle {
|
||||
preserve_split = true
|
||||
smart_split = false
|
||||
smart_resizing = false
|
||||
# precise_mouse_move = true
|
||||
}
|
||||
|
||||
decoration {
|
||||
# 2 = circle, higher = squircle, 4 = very obvious squircle
|
||||
# Clear squircles look really off; we use only extra .4 here to make the rounding feel more continuous
|
||||
rounding_power = 2.4
|
||||
rounding = 18
|
||||
|
||||
blur {
|
||||
enabled = true
|
||||
xray = true
|
||||
special = false
|
||||
new_optimizations = true
|
||||
size = 10
|
||||
passes = 3
|
||||
brightness = 1
|
||||
noise = 0.05
|
||||
contrast = 0.89
|
||||
vibrancy = 0.5
|
||||
vibrancy_darkness = 0.5
|
||||
popups = false
|
||||
popups_ignorealpha = 0.6
|
||||
input_methods = true
|
||||
input_methods_ignorealpha = 0.8
|
||||
}
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
ignore_window = true
|
||||
range = 50
|
||||
offset = 0 4
|
||||
render_power = 10
|
||||
color = rgba(00000027)
|
||||
}
|
||||
|
||||
# Dim
|
||||
dim_inactive = true
|
||||
dim_strength = 0.05
|
||||
dim_special = 0.07
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = true
|
||||
# Curves
|
||||
bezier = expressiveFastSpatial, 0.42, 1.67, 0.21, 0.90
|
||||
bezier = expressiveSlowSpatial, 0.39, 1.29, 0.35, 0.98
|
||||
bezier = expressiveDefaultSpatial, 0.38, 1.21, 0.22, 1.00
|
||||
bezier = emphasizedDecel, 0.05, 0.7, 0.1, 1
|
||||
bezier = emphasizedAccel, 0.3, 0, 0.8, 0.15
|
||||
bezier = standardDecel, 0, 0, 0, 1
|
||||
bezier = menu_decel, 0.1, 1, 0, 1
|
||||
bezier = menu_accel, 0.52, 0.03, 0.72, 0.08
|
||||
bezier = stall, 1, -0.1, 0.7, 0.85
|
||||
# Configs
|
||||
# windows
|
||||
animation = windowsIn, 1, 3, emphasizedDecel, popin 80%
|
||||
animation = fadeIn, 1, 3, emphasizedDecel
|
||||
animation = windowsOut, 1, 2, emphasizedDecel, popin 90%
|
||||
animation = fadeOut, 1, 2, emphasizedDecel
|
||||
animation = windowsMove, 1, 3, emphasizedDecel, slide
|
||||
animation = border, 1, 10, emphasizedDecel
|
||||
# layers
|
||||
animation = layersIn, 1, 2.7, emphasizedDecel, popin 93%
|
||||
animation = layersOut, 1, 2.4, menu_accel, popin 94%
|
||||
# fade
|
||||
animation = fadeLayersIn, 1, 0.5, menu_decel
|
||||
animation = fadeLayersOut, 1, 2.7, stall
|
||||
# workspaces
|
||||
animation = workspaces, 1, 7, menu_decel, slide
|
||||
## specialWorkspace
|
||||
animation = specialWorkspaceIn, 1, 2.8, emphasizedDecel, slidevert
|
||||
animation = specialWorkspaceOut, 1, 1.2, emphasizedAccel, slidevert
|
||||
}
|
||||
|
||||
input {
|
||||
kb_layout = us
|
||||
numlock_by_default = true
|
||||
repeat_delay = 250
|
||||
repeat_rate = 35
|
||||
|
||||
follow_mouse = 1
|
||||
off_window_axis_events = 2
|
||||
|
||||
touchpad {
|
||||
natural_scroll = yes
|
||||
disable_while_typing = true
|
||||
clickfinger_behavior = true
|
||||
scroll_factor = 0.7
|
||||
}
|
||||
}
|
||||
|
||||
misc {
|
||||
disable_hyprland_logo = true
|
||||
disable_splash_rendering = true
|
||||
vfr = 1
|
||||
vrr = 1
|
||||
mouse_move_enables_dpms = true
|
||||
key_press_enables_dpms = true
|
||||
animate_manual_resizes = false
|
||||
animate_mouse_windowdragging = false
|
||||
enable_swallow = false
|
||||
swallow_regex = (foot|kitty|allacritty|Alacritty)
|
||||
on_focus_under_fullscreen = 2
|
||||
allow_session_lock_restore = true
|
||||
session_lock_xray = true
|
||||
initial_workspace_tracking = false
|
||||
focus_on_activate = true
|
||||
}
|
||||
|
||||
binds {
|
||||
scroll_event_delay = 0
|
||||
hide_special_on_workspace_change = true
|
||||
}
|
||||
|
||||
cursor {
|
||||
zoom_factor = 1
|
||||
zoom_rigid = false
|
||||
hotspot_padding = 1
|
||||
}
|
||||
|
||||
# Overview
|
||||
plugin {
|
||||
hyprexpo {
|
||||
columns = 3
|
||||
gap_size = 5
|
||||
bg_col = rgb(000000)
|
||||
workspace_method = first 1 # [center/first] [workspace] e.g. first 1 or center m+1
|
||||
|
||||
enable_gesture = false # laptop touchpad, 4 fingers
|
||||
gesture_distance = 300 # how far is the "max"
|
||||
gesture_positive = false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,241 @@
|
||||
# [hidden]
|
||||
# Lines starting with #! are section headings
|
||||
|
||||
#!
|
||||
##! Shell
|
||||
# These absolutely need to be on top, or they won't work consistently
|
||||
bindid = Super, Super_L, Toggle search, global, quickshell:searchToggleRelease # Toggle search
|
||||
bindid = Super, Super_R, Toggle search, global, quickshell:searchToggleRelease # [hidden] Toggle search
|
||||
bind = Super, Super_L, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || fuzzel # [hidden] Launcher (fallback)
|
||||
bind = Super, Super_R, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || fuzzel # [hidden] Launcher (fallback)
|
||||
binditn = Super, catchall, global, quickshell:searchToggleReleaseInterrupt # [hidden]
|
||||
bind = Ctrl, Super_L, global, quickshell:searchToggleReleaseInterrupt # [hidden]
|
||||
bind = Ctrl, Super_R, global, quickshell:searchToggleReleaseInterrupt # [hidden]
|
||||
bind = Super, mouse:272, global, quickshell:searchToggleReleaseInterrupt # [hidden]
|
||||
bind = Super, mouse:273, global, quickshell:searchToggleReleaseInterrupt # [hidden]
|
||||
bind = Super, mouse:274, global, quickshell:searchToggleReleaseInterrupt # [hidden]
|
||||
bind = Super, mouse:275, global, quickshell:searchToggleReleaseInterrupt # [hidden]
|
||||
bind = Super, mouse:276, global, quickshell:searchToggleReleaseInterrupt # [hidden]
|
||||
bind = Super, mouse:277, global, quickshell:searchToggleReleaseInterrupt # [hidden]
|
||||
bind = Super, mouse_up, global, quickshell:searchToggleReleaseInterrupt # [hidden]
|
||||
bind = Super, mouse_down,global, quickshell:searchToggleReleaseInterrupt # [hidden]
|
||||
|
||||
bindit = ,Super_L, global, quickshell:workspaceNumber # [hidden]
|
||||
bindit = ,Super_R, global, quickshell:workspaceNumber # [hidden]
|
||||
bind = Super, Tab, global, quickshell:overviewWorkspacesToggle # Toggle overview
|
||||
bindd = Super, V, Clipboard history >> clipboard, global, quickshell:overviewClipboardToggle # Clipboard history >> clipboard
|
||||
bindd = Super, Period, Emoji >> clipboard, global, quickshell:overviewEmojiToggle # Emoji >> clipboard
|
||||
bind = Super, A, global, quickshell:sidebarLeftToggle # Toggle left sidebar
|
||||
bind = Super+Alt, A, global, quickshell:sidebarLeftToggleDetach # [hidden]
|
||||
bind = Super, O, global, quickshell:sidebarLeftToggle # [hidden]
|
||||
bindd = Super, N, Toggle right sidebar, global, quickshell:sidebarRightToggle # Toggle right sidebar
|
||||
bindd = Super, Slash, Toggle cheatsheet, global, quickshell:cheatsheetToggle # Toggle cheatsheet
|
||||
bindd = Super, K, Toggle on-screen keyboard, global, quickshell:oskToggle # Toggle on-screen keyboard
|
||||
bindd = Super, M, Toggle media controls, global, quickshell:mediaControlsToggle # Toggle media controls
|
||||
bind = Super, G, global, quickshell:overlayToggle # Toggle overlay
|
||||
bindd = Ctrl+Alt, Delete, Toggle session menu, global, quickshell:sessionToggle # Toggle session menu
|
||||
bindd = Super, J, Toggle bar, global, quickshell:barToggle # Toggle bar
|
||||
bind = Ctrl+Alt, Delete, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill wlogout || wlogout -p layer-shell # [hidden] Session menu (fallback)
|
||||
bind = Shift+Super+Alt, Slash, exec, qs -p ~/.config/quickshell/$qsConfig/welcome.qml # [hidden] Launch welcome app
|
||||
|
||||
bindle=, XF86MonBrightnessUp, exec, qs -c $qsConfig ipc call brightness increment || brightnessctl s 5%+ # [hidden]
|
||||
bindle=, XF86MonBrightnessDown, exec, qs -c $qsConfig ipc call brightness decrement || brightnessctl s 5%- # [hidden]
|
||||
bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+ -l 1.5# [hidden]
|
||||
bindle=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- # [hidden]
|
||||
|
||||
bindl = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle # [hidden]
|
||||
bindld = Super+Shift,M, Toggle mute, exec, wpctl set-mute @DEFAULT_SINK@ toggle # [hidden]
|
||||
bindl = Alt ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle # [hidden]
|
||||
bindl = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle # [hidden]
|
||||
bindld = Super+Alt,M, Toggle mic, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle # [hidden]
|
||||
bindd = Ctrl+Super, T, Toggle wallpaper selector, global, quickshell:wallpaperSelectorToggle # Wallpaper selector
|
||||
bindd = Ctrl+Super+Alt, T, Select random wallpaper, global, quickshell:wallpaperSelectorRandom # Random wallpaper
|
||||
bindd = Ctrl+Super, T, Change wallpaper, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/quickshell/$qsConfig/scripts/colors/switchwall.sh # [hidden] Change wallpaper (fallback)
|
||||
bind = Ctrl+Super, R, exec, killall ags agsv1 gjs ydotool qs quickshell; qs -c $qsConfig & # Restart widgets
|
||||
bind = Ctrl+Super, P, global, quickshell:panelFamilyCycle # Cycle panel family
|
||||
|
||||
##! Utilities
|
||||
# Screenshot, Record, OCR, Color picker, Clipboard history
|
||||
bindd = Super, V, Copy clipboard history entry, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || cliphist list | fuzzel --match-mode fzf --dmenu | cliphist decode | wl-copy # [hidden] Clipboard history >> clipboard (fallback)
|
||||
bindd = Super, Period, Copy an emoji, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || ~/.config/hypr/hyprland/scripts/fuzzel-emoji.sh copy # [hidden] Emoji >> clipboard (fallback)
|
||||
bind = Super+Shift, S, global, quickshell:regionScreenshot # Screen snip
|
||||
bind = Super+Shift, S, exec, qs -c $qsConfig ipc call TEST_ALIVE || pidof slurp || hyprshot --freeze --clipboard-only --mode region --silent # [hidden] Screen snip (fallback)
|
||||
bind = Super+Shift, A, global, quickshell:regionSearch # Google Lens
|
||||
bind = Super+Shift, A, exec, qs -c $qsConfig ipc call TEST_ALIVE || pidof slurp || ~/.config/hypr/hyprland/scripts/snip_to_search.sh # [hidden] Google Lens (fallback)
|
||||
# OCR
|
||||
bind = Super+Shift, X, global, quickshell:regionOcr # Character recognition >> clipboard
|
||||
bind = Super+Shift, T, global, quickshell:regionOcr # [hidden]
|
||||
bind = Super+Shift, X,exec, qs -c $qsConfig ipc call TEST_ALIVE || pidof slurp || grim -g "$(slurp $SLURP_ARGS)" "/tmp/ocr_image.png" && tesseract "/tmp/ocr_image.png" stdout -l $(tesseract --list-langs | awk 'NR>1{print $1}' | tr '\n' '+' | sed 's/\+$/\n/') | wl-copy && rm "/tmp/ocr_image.png" # [hidden]
|
||||
bind = Super+Shift, T,exec, qs -c $qsConfig ipc call TEST_ALIVE || pidof slurp || grim -g "$(slurp $SLURP_ARGS)" "/tmp/ocr_image.png" && tesseract "/tmp/ocr_image.png" stdout -l $(tesseract --list-langs | awk 'NR>1{print $1}' | tr '\n' '+' | sed 's/\+$/\n/') | wl-copy && rm "/tmp/ocr_image.png" # [hidden]
|
||||
# Color picker
|
||||
bindd = Super+Shift, C, Color picker, exec, hyprpicker -a # Pick color (Hex) >> clipboard
|
||||
# Fullscreen screenshot
|
||||
bindl = ,Print,exec,grim - | wl-copy # Screenshot >> clipboard
|
||||
bindln = Ctrl,Print, exec, mkdir -p $(xdg-user-dir PICTURES)/Screenshots && grim $(xdg-user-dir PICTURES)/Screenshots/Screenshot_"$(date '+%Y-%m-%d_%H.%M.%S')".png # Screenshot >> clipboard & file (file)
|
||||
bindln = Ctrl,Print,exec,grim - | wl-copy # [hidden] Screenshot >> clipboard & file (clipboard)
|
||||
# Recording stuff
|
||||
bindl = Super+Shift, R, global, quickshell:regionRecord # Record region (no sound)
|
||||
bindl = Super+Shift, R, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/quickshell/$qsConfig/scripts/videos/record.sh # [hidden] Record region (no sound) (fallback)
|
||||
bindl = Super+Alt, R, global, quickshell:regionRecord # [hidden] Record region (no sound)
|
||||
bindl = Super+Alt, R, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/quickshell/$qsConfig/scripts/videos/record.sh # [hidden] Record region (no sound) (fallback)
|
||||
bindl = Ctrl+Alt, R, exec, ~/.config/quickshell/$qsConfig/scripts/videos/record.sh --fullscreen # [hidden] Record screen (no sound)
|
||||
bindl = Super+Shift+Alt, R, exec, ~/.config/quickshell/$qsConfig/scripts/videos/record.sh --fullscreen --sound # Record screen (with sound)
|
||||
# AI
|
||||
bindd = Super+Shift+Alt, mouse:273, Generate AI summary for selected text, exec, ~/.config/hypr/hyprland/scripts/ai/primary-buffer-query.sh # [hidden] AI summary for selected text
|
||||
|
||||
#!
|
||||
##! Window
|
||||
# Focusing
|
||||
bindm = Super, mouse:272, movewindow # Move
|
||||
bindm = Super, mouse:274, movewindow # [hidden]
|
||||
bindm = Super, mouse:273, resizewindow # Resize
|
||||
#/# bind = Super, ←/↑/→/↓,, # Focus in direction
|
||||
bind = Super, Left, movefocus, l # [hidden]
|
||||
bind = Super, Right, movefocus, r # [hidden]
|
||||
bind = Super, Up, movefocus, u # [hidden]
|
||||
bind = Super, Down, movefocus, d # [hidden]
|
||||
bind = Super, BracketLeft, movefocus, l # [hidden]
|
||||
bind = Super, BracketRight, movefocus, r # [hidden]
|
||||
|
||||
# Window Resize
|
||||
binde = Super+Shift, Right, resizeactive, 20 0 # [hidden]
|
||||
binde = Super+Shift, Left, resizeactive, -20 0 # [hidden]
|
||||
binde = Super+Shift, Up, resizeactive, 0 -20 # [hidden]
|
||||
binde = Super+Shift, Down, resizeactive, 0 20 # [hidden]
|
||||
|
||||
#/# bind = Super+Shift, ←/↑/→/↓,, # Resize
|
||||
# bind = Super+Shift, Left, movewindow, l # [hidden] (Disabled for resizing)
|
||||
# bind = Super+Shift, Right, movewindow, r # [hidden] (Disabled for resizing)
|
||||
# bind = Super+Shift, Up, movewindow, u # [hidden] (Disabled for resizing)
|
||||
# bind = Super+Shift, Down, movewindow, d # [hidden] (Disabled for resizing)
|
||||
|
||||
bind = Alt, F4, killactive, # [hidden] Close (Windows)
|
||||
bind = Super, Q, killactive, # Close
|
||||
bind = Super+Shift+Alt, Q, exec, hyprctl kill # Forcefully zap a window
|
||||
|
||||
# Window split ratio
|
||||
#/# binde = Super, ;/',, # Adjust split ratio
|
||||
binde = Super, Semicolon, splitratio, -0.1 # [hidden]
|
||||
binde = Super, Apostrophe, splitratio, +0.1 # [hidden]
|
||||
# Positioning mode
|
||||
bind = Super+Alt, Space, togglefloating, # Float/Tile
|
||||
bind = Super, W, fullscreen, 1 # Maximize
|
||||
bind = Super, F, fullscreen, 0 # Fullscreen
|
||||
bind = Super+Alt, F, fullscreenstate, 0 3 # Fullscreen spoof
|
||||
bind = Super, P, pin # Pin
|
||||
|
||||
#/# bind = Super+Alt, Hash,, # Send to workspace # (1, 2, 3,...)
|
||||
bind = Super+Alt, code:10, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 1 # [hidden]
|
||||
bind = Super+Alt, code:11, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 2 # [hidden]
|
||||
bind = Super+Alt, code:12, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 3 # [hidden]
|
||||
bind = Super+Alt, code:13, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 4 # [hidden]
|
||||
bind = Super+Alt, code:14, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 5 # [hidden]
|
||||
bind = Super+Alt, code:15, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 6 # [hidden]
|
||||
bind = Super+Alt, code:16, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 7 # [hidden]
|
||||
bind = Super+Alt, code:17, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 8 # [hidden]
|
||||
bind = Super+Alt, code:18, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 9 # [hidden]
|
||||
bind = Super+Alt, code:19, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 10 # [hidden]
|
||||
|
||||
#/# bind = Super+Ctrl, Hash,, # Send to workspace and focus # (1, 2, 3,...)
|
||||
bind = Super+Ctrl, code:10, movetoworkspace, 1 # [hidden]
|
||||
bind = Super+Ctrl, code:11, movetoworkspace, 2 # [hidden]
|
||||
bind = Super+Ctrl, code:12, movetoworkspace, 3 # [hidden]
|
||||
bind = Super+Ctrl, code:13, movetoworkspace, 4 # [hidden]
|
||||
bind = Super+Ctrl, code:14, movetoworkspace, 5 # [hidden]
|
||||
bind = Super+Ctrl, code:15, movetoworkspace, 6 # [hidden]
|
||||
bind = Super+Ctrl, code:16, movetoworkspace, 7 # [hidden]
|
||||
bind = Super+Ctrl, code:17, movetoworkspace, 8 # [hidden]
|
||||
bind = Super+Ctrl, code:18, movetoworkspace, 9 # [hidden]
|
||||
bind = Super+Ctrl, code:19, movetoworkspace, 10 # [hidden]
|
||||
|
||||
# #/# bind = Super+Shift, Scroll ↑/↓,, # Send to workspace left/right
|
||||
bind = Super+Shift, mouse_down, movetoworkspace, r-1 # [hidden]
|
||||
bind = Super+Shift, mouse_up, movetoworkspace, r+1 # [hidden]
|
||||
bind = Super+Alt, mouse_down, movetoworkspace, -1 # [hidden]
|
||||
bind = Super+Alt, mouse_up, movetoworkspace, +1 # [hidden]
|
||||
|
||||
#/# bind = Super+Shift, Page_↑/↓,, # Send to workspace left/right
|
||||
bind = Super+Alt, Page_Down, movetoworkspace, +1 # [hidden]
|
||||
bind = Super+Alt, Page_Up, movetoworkspace, -1 # [hidden]
|
||||
bind = Super+Shift, Page_Down, movetoworkspace, r+1 # [hidden]
|
||||
bind = Super+Shift, Page_Up, movetoworkspace, r-1 # [hidden]
|
||||
bind = Ctrl+Super+Shift, Right, movetoworkspace, r+1 # [hidden]
|
||||
bind = Ctrl+Super+Shift, Left, movetoworkspace, r-1 # [hidden]
|
||||
|
||||
bind = Super+Alt, S, movetoworkspacesilent, special # Send to scratchpad
|
||||
bind = Ctrl+Super, S, togglespecialworkspace, # [hidden]
|
||||
|
||||
##! Workspace
|
||||
# Switching
|
||||
bind = Super, code:10, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 1 # [hidden]
|
||||
bind = Super, code:11, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 2 # [hidden]
|
||||
bind = Super, code:12, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 3 # [hidden]
|
||||
bind = Super, code:13, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 4 # [hidden]
|
||||
bind = Super, code:14, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 5 # [hidden]
|
||||
bind = Super, code:15, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 6 # [hidden]
|
||||
bind = Super, code:16, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 7 # [hidden]
|
||||
bind = Super, code:17, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 8 # [hidden]
|
||||
bind = Super, code:18, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 9 # [hidden]
|
||||
bind = Super, code:19, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 10 # [hidden]
|
||||
|
||||
#/# bind = Ctrl+Super, ←/→,, # Focus left/right
|
||||
bind = Ctrl+Super, Right, workspace, r+1 # [hidden]
|
||||
bind = Ctrl+Super, Left, workspace, r-1 # [hidden]
|
||||
#/# bind = Ctrl+Super+Alt, ←/→,, # [hidden] Focus busy left/right
|
||||
bind = Ctrl+Super+Alt, Right, workspace, m+1 # [hidden]
|
||||
bind = Ctrl+Super+Alt, Left, workspace, m-1 # [hidden]
|
||||
#/# bind = Super, Page_↑/↓,, # Focus left/right
|
||||
bind = Super, Page_Down, workspace, +1 # [hidden]
|
||||
bind = Super, Page_Up, workspace, -1 # [hidden]
|
||||
bind = Ctrl+Super, Page_Down, workspace, r+1 # [hidden]
|
||||
bind = Ctrl+Super, Page_Up, workspace, r-1 # [hidden]
|
||||
#/# bind = Super, Scroll ↑/↓,, # Focus left/right
|
||||
bind = Super, mouse_up, workspace, +1 # [hidden]
|
||||
bind = Super, mouse_down, workspace, -1 # [hidden]
|
||||
bind = Ctrl+Super, mouse_up, workspace, r+1 # [hidden]
|
||||
bind = Ctrl+Super, mouse_down, workspace, r-1 # [hidden]
|
||||
## Special
|
||||
bind = Super, S, togglespecialworkspace, # Toggle scratchpad
|
||||
bind = Super, mouse:275, togglespecialworkspace, # [hidden]
|
||||
bind = Ctrl+Super, BracketLeft, workspace, -1 # [hidden]
|
||||
bind = Ctrl+Super, BracketRight, workspace, +1 # [hidden]
|
||||
bind = Ctrl+Super, Up, workspace, r-5 # [hidden]
|
||||
bind = Ctrl+Super, Down, workspace, r+5 # [hidden]
|
||||
|
||||
##! Virtual machines
|
||||
bind = Super+Alt, F1, exec, notify-send 'Entered Virtual Machine submap' 'Keybinds disabled. Hit Super+Alt+F1 to escape' -a 'Hyprland' && hyprctl dispatch submap virtual-machine # Disable keybinds
|
||||
submap = virtual-machine
|
||||
bind = Super+Alt, F1, exec, notify-send 'Exited Virtual Machine submap' 'Keybinds re-enabled' -a 'Hyprland' && hyprctl dispatch submap global # [hidden]
|
||||
submap = global
|
||||
|
||||
#!
|
||||
# Testing
|
||||
bind = Super+Alt, f11, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i "nipple" | grep -v -i "pussy" | shuf -n 1); ACTION=$(notify-send "Test notification with body image" "This notification should contain your user account <b>image</b> and <a href=\"https://discord.com/app\">Discord</a> <b>icon</b>. Oh and here is a random image in your Pictures folder: <img src=\"$RANDOM_IMAGE\" alt=\"Testing image\"/>" -a "Hyprland keybind" -p -h "string:image-path:/var/lib/AccountsService/icons/$USER" -t 6000 -i "discord" -A "openImage=Profile image" -A "action2=Open the random image" -A "action3=Useless button"); [[ $ACTION == *openImage ]] && xdg-open "/var/lib/AccountsService/icons/$USER"; [[ $ACTION == *action2 ]] && xdg-open \"$RANDOM_IMAGE\"' # [hidden]
|
||||
bind = Super+Alt, f12, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i "nipple" | grep -v -i "pussy" | shuf -n 1); ACTION=$(notify-send "Test notification" "This notification should contain a random image in your <b>Pictures</b> folder and <a href=\"https://discord.com/app\">Discord</a> <b>icon</b>.\n<i>Flick right to dismiss!</i>" -a "Discord (fake)" -p -h "string:image-path:$RANDOM_IMAGE" -t 6000 -i "discord" -A "openImage=Profile image" -A "action2=Useless button"); [[ $ACTION == *openImage ]] && xdg-open "/var/lib/AccountsService/icons/$USER"' # [hidden]
|
||||
bind = Super+Alt, Equal, exec, notify-send "Urgent notification" "Ah hell no" -u critical -a 'Hyprland keybind' # [hidden]
|
||||
|
||||
#!
|
||||
##! Session
|
||||
bindd = Super, L, Lock, exec, loginctl lock-session # Lock
|
||||
bindld = Super+Shift, L, Suspend system, exec, systemctl suspend || loginctl suspend # Sleep
|
||||
bindd = Ctrl+Shift+Alt+Super, Delete, Shutdown, exec, systemctl poweroff || loginctl poweroff # [hidden] Power off
|
||||
|
||||
##! Screen
|
||||
binde = Super, Minus, exec, qs -c $qsConfig ipc call zoom zoomOut # Zoom out
|
||||
binde = Super, Equal, exec, qs -c $qsConfig ipc call zoom zoomIn # Zoom in
|
||||
|
||||
##! Media
|
||||
bindl= Super+Shift, N, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # Next track
|
||||
bindl= Super+Shift, B, exec, playerctl previous # Previous track
|
||||
bindl= Super+Shift, P, exec, playerctl play-pause # Play/pause media
|
||||
|
||||
##! Apps
|
||||
bind = Super, Return, exec, alacritty # Terminal
|
||||
bind = Super, E, exec, dolphin # File manager
|
||||
bind = Super, B, exec, zen-browser # Browser
|
||||
bind = Super, C, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "code" "codium" "cursor" "zed" # Code editor
|
||||
bind = Super, I, exec, XDG_CURRENT_DESKTOP=gnome ~/.config/hypr/hyprland/scripts/launch_first_available.sh "systemsettings" "gnome-control-center" # Settings app
|
||||
bind = Ctrl+Shift, Escape, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "gnome-system-monitor" "btop" # Task manager
|
||||
|
||||
# Cursed stuff
|
||||
bind = Ctrl+Super, Backslash, resizeactive, exact 640 480 # [hidden]
|
||||
@@ -0,0 +1,165 @@
|
||||
# ######## Window rules ########
|
||||
|
||||
# Disable blur for xwayland context menus
|
||||
windowrule = match:class ^()$, match:title ^()$, no_blur on
|
||||
|
||||
# Disable blur for every window
|
||||
windowrule = match:class .*, no_blur on
|
||||
|
||||
# Floating
|
||||
windowrule = match:title ^(Open File)(.*)$, center on
|
||||
windowrule = match:title ^(Open File)(.*)$, float on
|
||||
windowrule = match:title ^(Select a File)(.*)$, center on
|
||||
windowrule = match:title ^(Select a File)(.*)$, float on
|
||||
windowrule = match:title ^(Choose wallpaper)(.*)$, center on
|
||||
windowrule = match:title ^(Choose wallpaper)(.*)$, float on
|
||||
windowrule = match:title ^(Choose wallpaper)(.*)$, size (monitor_w*.60) (monitor_h*.65)
|
||||
windowrule = match:title ^(Open Folder)(.*)$, center on
|
||||
windowrule = match:title ^(Open Folder)(.*)$, float on
|
||||
windowrule = match:title ^(Save As)(.*)$, center on
|
||||
windowrule = match:title ^(Save As)(.*)$, float on
|
||||
windowrule = match:title ^(Library)(.*)$, center on
|
||||
windowrule = match:title ^(Library)(.*)$, float on
|
||||
windowrule = match:title ^(File Upload)(.*)$, center on
|
||||
windowrule = match:title ^(File Upload)(.*)$, float on
|
||||
windowrule = match:title ^(.*)(wants to save)$, center on
|
||||
windowrule = match:title ^(.*)(wants to save)$, float on
|
||||
windowrule = match:title ^(.*)(wants to open)$, center on
|
||||
windowrule = match:title ^(.*)(wants to open)$, float on
|
||||
windowrule = match:class ^(blueberry\.py)$, float on
|
||||
windowrule = match:class ^(guifetch)$ , float on # FlafyDev/guifetch
|
||||
windowrule = match:class ^(pavucontrol)$, float on
|
||||
windowrule = match:class ^(pavucontrol)$, size (monitor_w*.45) (monitor_h*.45)
|
||||
windowrule = match:class ^(pavucontrol)$, center on
|
||||
windowrule = match:class ^(org.pulseaudio.pavucontrol)$, float on
|
||||
windowrule = match:class ^(org.pulseaudio.pavucontrol)$, size (monitor_w*.45) (monitor_h*.45)
|
||||
windowrule = match:class ^(org.pulseaudio.pavucontrol)$, center on
|
||||
windowrule = match:class ^(nm-connection-editor)$, float on
|
||||
windowrule = match:class ^(nm-connection-editor)$, size (monitor_w*.45) (monitor_h*.45)
|
||||
windowrule = match:class ^(nm-connection-editor)$, center on
|
||||
windowrule = match:class .*plasmawindowed.*, float on
|
||||
windowrule = match:class kcm_.*, float on
|
||||
windowrule = match:class .*bluedevilwizard, float on
|
||||
windowrule = match:title .*Welcome, float on
|
||||
windowrule = match:title ^(illogical-impulse Settings)$, float on
|
||||
windowrule = match:title .*Shell conflicts.*, float on
|
||||
windowrule = match:class org.freedesktop.impl.portal.desktop.kde, float on
|
||||
windowrule = match:class org.freedesktop.impl.portal.desktop.kde, size (monitor_w*.60) (monitor_h*.65)
|
||||
windowrule = match:class ^(Zotero)$, float on
|
||||
windowrule = match:class ^(Zotero)$, size (monitor_w*.45) (monitor_h*.45)
|
||||
|
||||
# Move
|
||||
# kde-material-you-colors spawns a window when changing dark/light theme. This is to make sure it doesn't interfere at all.
|
||||
windowrule = match:class ^(plasma-changeicons)$, float on
|
||||
windowrule = match:class ^(plasma-changeicons)$, no_initial_focus on
|
||||
windowrule = match:class ^(plasma-changeicons)$, move 999999 999999
|
||||
# stupid dolphin copy
|
||||
windowrule = match:title ^(Copying — Dolphin)$, move 40 80
|
||||
|
||||
# Tiling
|
||||
windowrule = match:class ^dev\.warp\.Warp$, tile on
|
||||
|
||||
# Picture-in-Picture
|
||||
windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, float on
|
||||
windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, keep_aspect_ratio on
|
||||
windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, move (monitor_w*.73) (monitor_h*.72)
|
||||
windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, size (monitor_w*.25) (monitor_h*.25)
|
||||
windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, float on
|
||||
windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, pin on
|
||||
|
||||
# --- Tearing ---
|
||||
windowrule = match:title .*\.exe, immediate on
|
||||
windowrule = match:title .*minecraft.*, immediate on
|
||||
windowrule = match:class ^(steam_app).*, immediate on
|
||||
|
||||
# Fix Jetbrain IDEs focus/rerendering problem
|
||||
windowrule = match:class ^jetbrains-.*$, match:float 1, match:title ^$|^\s$|^win\d+$, no_initial_focus on
|
||||
|
||||
# No shadow for tiled windows (matches windows that are not floating).
|
||||
windowrule = match:float 0, no_shadow on
|
||||
|
||||
# ######## Workspace rules ########
|
||||
workspace = special:special, gapsout:30
|
||||
|
||||
# ######## Layer rules ########
|
||||
layerrule = match:namespace .*, xray on
|
||||
# layerrule = match:namespace .*, no_anim on
|
||||
layerrule = match:namespace walker, no_anim on
|
||||
layerrule = match:namespace selection, no_anim on
|
||||
layerrule = match:namespace overview, no_anim on
|
||||
layerrule = match:namespace anyrun, no_anim on
|
||||
layerrule = match:namespace indicator.*, no_anim on
|
||||
layerrule = match:namespace osk, no_anim on
|
||||
layerrule = match:namespace hyprpicker, no_anim on
|
||||
|
||||
layerrule = match:namespace noanim, no_anim on
|
||||
layerrule = match:namespace gtk-layer-shell, blur on
|
||||
layerrule = match:namespace gtk-layer-shell, ignore_alpha 0
|
||||
layerrule = match:namespace launcher, blur on
|
||||
layerrule = match:namespace launcher, ignore_alpha 0.5
|
||||
layerrule = match:namespace notifications, blur on
|
||||
layerrule = match:namespace notifications, ignore_alpha 0.69
|
||||
layerrule = match:namespace logout_dialog # wlogout, blur on
|
||||
|
||||
# ags
|
||||
layerrule = match:namespace sideleft.*, animation slide left
|
||||
layerrule = match:namespace sideright.*, animation slide right
|
||||
layerrule = match:namespace session[0-9]*, blur on
|
||||
layerrule = match:namespace bar[0-9]*, blur on
|
||||
layerrule = match:namespace bar[0-9]*, ignore_alpha 0.6
|
||||
layerrule = match:namespace barcorner.*, blur on
|
||||
layerrule = match:namespace barcorner.*, ignore_alpha 0.6
|
||||
layerrule = match:namespace dock[0-9]*, blur on
|
||||
layerrule = match:namespace dock[0-9]*, ignore_alpha 0.6
|
||||
layerrule = match:namespace indicator.*, blur on
|
||||
layerrule = match:namespace indicator.*, ignore_alpha 0.6
|
||||
layerrule = match:namespace overview[0-9]*, blur on
|
||||
layerrule = match:namespace overview[0-9]*, ignore_alpha 0.6
|
||||
layerrule = match:namespace cheatsheet[0-9]*, blur on
|
||||
layerrule = match:namespace cheatsheet[0-9]*, ignore_alpha 0.6
|
||||
layerrule = match:namespace sideright[0-9]*, blur on
|
||||
layerrule = match:namespace sideright[0-9]*, ignore_alpha 0.6
|
||||
layerrule = match:namespace sideleft[0-9]*, blur on
|
||||
layerrule = match:namespace sideleft[0-9]*, ignore_alpha 0.6
|
||||
layerrule = match:namespace indicator.*, blur on
|
||||
layerrule = match:namespace indicator.*, ignore_alpha 0.6
|
||||
layerrule = match:namespace osk[0-9]*, blur on
|
||||
layerrule = match:namespace osk[0-9]*, ignore_alpha 0.6
|
||||
|
||||
# Quickshell
|
||||
layerrule = match:namespace quickshell:.*, blur_popups on
|
||||
layerrule = match:namespace quickshell:.*, blur on
|
||||
layerrule = match:namespace quickshell:.*, ignore_alpha 0.79
|
||||
layerrule = match:namespace quickshell:bar, animation slide
|
||||
layerrule = match:namespace quickshell:actionCenter, no_anim on
|
||||
layerrule = match:namespace quickshell:cheatsheet, animation slide bottom
|
||||
layerrule = match:namespace quickshell:dock, animation slide bottom
|
||||
layerrule = match:namespace quickshell:screenCorners, animation popin 120%
|
||||
layerrule = match:namespace quickshell:lockWindowPusher, no_anim on
|
||||
layerrule = match:namespace quickshell:notificationPopup, animation fade
|
||||
layerrule = match:namespace quickshell:overlay, no_anim on
|
||||
layerrule = match:namespace quickshell:overlay, ignore_alpha 1
|
||||
layerrule = match:namespace quickshell:overview, no_anim on
|
||||
layerrule = match:namespace quickshell:osk, animation slide bottom
|
||||
layerrule = match:namespace quickshell:polkit, no_anim on
|
||||
layerrule = match:namespace quickshell:popup, xray off # No weird color for bar tooltips (this in theory should suffice)
|
||||
layerrule = match:namespace quickshell:popup, ignore_alpha 1 # No weird color for bar tooltips (but somehow this is necessary)
|
||||
layerrule = match:namespace quickshell:mediaControls, ignore_alpha 1 # Same as above
|
||||
layerrule = match:namespace quickshell:reloadPopup, animation slide
|
||||
layerrule = match:namespace quickshell:regionSelector, no_anim on
|
||||
layerrule = match:namespace quickshell:screenshot, no_anim on
|
||||
layerrule = match:namespace quickshell:session, blur on
|
||||
layerrule = match:namespace quickshell:session, no_anim on
|
||||
layerrule = match:namespace quickshell:session, ignore_alpha 0
|
||||
layerrule = match:namespace quickshell:sidebarRight, animation slide right
|
||||
layerrule = match:namespace quickshell:sidebarLeft, animation slide left
|
||||
layerrule = match:namespace quickshell:verticalBar, animation slide
|
||||
layerrule = match:namespace quickshell:wallpaperSelector, animation slide top
|
||||
layerrule = match:namespace quickshell:wNotificationCenter, no_anim on
|
||||
layerrule = match:namespace quickshell:wOnScreenDisplay, no_anim on
|
||||
layerrule = match:namespace quickshell:wStartMenu, no_anim on
|
||||
layerrule = match:namespace quickshell:wTaskView, ignore_alpha 0
|
||||
layerrule = match:namespace quickshell:wTaskView, no_anim on
|
||||
|
||||
# Launchers need to be FAST
|
||||
layerrule = match:namespace gtk4-layer-shell, no_anim on
|
||||
@@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Default system prompt
|
||||
SYSTEM_PROMPT="You are a helpful, quick assistant that provides brief and concise explanation \
|
||||
to given content in at most 100 characters. If the given content is not in English, translate \
|
||||
it to English. If the content is an English word, provide its meaning. If the content is a name, \
|
||||
provide some info about it. For a math expression, provide a simplification, \
|
||||
each step on a line following this style: \`2x=11 (subtract 7 from both sides)\`. \
|
||||
If you do not know the answer, simply say 'No info available'. \
|
||||
Only respond for the appropriate case and use as little text as possible.\
|
||||
The content:"
|
||||
|
||||
first_loaded_model=$("$(dirname "$0")/show-loaded-ollama-models.sh" -j | jq -r '.[0].model' 2>/dev/null) || first_loaded_model=""
|
||||
model=${first_loaded_model:-"llama3.2"}
|
||||
|
||||
# Parse command-line arguments
|
||||
while [[ "$#" -gt 0 ]]; do
|
||||
case $1 in
|
||||
--model) model="$2"; shift ;; # Set the model from the flag
|
||||
*) echo "Unknown parameter: $1"; exit 1 ;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# Combine the system prompt with the clipboard content
|
||||
content=$(wl-paste -p | tr '\n' ' ' | head -c 2000) # 2000 char limit to prevent overflow
|
||||
|
||||
# Properly escape content for JSON using jq
|
||||
prompt_json=$(jq -n --arg system_prompt "$SYSTEM_PROMPT" --arg content "$content" '$system_prompt + " " + $content')
|
||||
|
||||
# Make the API call with the specified or default model
|
||||
api_payload=$(jq -n --arg model "$model" --argjson prompt "$prompt_json" --argjson stream false \
|
||||
'{model: $model, prompt: $prompt, stream: $stream}')
|
||||
response=$(curl -s http://localhost:11434/api/generate -d "$api_payload" | jq -r '.response' 2>/dev/null)
|
||||
|
||||
# Check if content is a single line and no longer than 30 characters
|
||||
if [[ ${#content} -le 30 && "$content" != *$'\n'* ]]; then
|
||||
notify-send --app-name="Text selection query" --expire-time=10000 \
|
||||
"$content" "$response"
|
||||
else
|
||||
notify-send --app-name="Text selection query" --expire-time=10000 \
|
||||
"AI Response" "$response"
|
||||
fi
|
||||
@@ -0,0 +1,99 @@
|
||||
#!/bin/bash
|
||||
|
||||
# From strikeoncmputrz/LLM_Scripts
|
||||
# License: Apache-2.0, can be found in the same folder as this script
|
||||
|
||||
# Global Vars
|
||||
ollama_url=http://localhost
|
||||
port="11434"
|
||||
blobs=()
|
||||
model_name_paths=()
|
||||
|
||||
|
||||
#Parse arguments
|
||||
while [ "$#" -gt 0 ]; do
|
||||
case $1 in
|
||||
-h|--help)
|
||||
echo
|
||||
echo " Identifies Ollama models running on this operating system by parsing running processes."
|
||||
echo
|
||||
echo " Usage: $0 [options]"
|
||||
echo
|
||||
echo " Options:"
|
||||
echo " -j, --json_output Prints result as a json object. Other output disabled. (Default: false)"
|
||||
echo " -p, --port [port number] Specify Ollama Server port (Default: 11434)"
|
||||
echo " -u, --ollama_url [url] Specify Ollama Server URL (Default: http://localhost)"
|
||||
echo
|
||||
echo " Dependencies: jq"
|
||||
exit 0
|
||||
;;
|
||||
-j|--json_output)
|
||||
json_out=1
|
||||
shift 1
|
||||
;;
|
||||
-u|--ollama_url)
|
||||
ollama_url=$2
|
||||
shift 2
|
||||
;;
|
||||
-p|--port)
|
||||
port=$2
|
||||
shift 2
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option: $1"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
compare_running_models_and_modelfiles() {
|
||||
json_match=()
|
||||
json_output=()
|
||||
local matching_models=()
|
||||
OLDIFS=$IFS
|
||||
for ((i=0; i<${#model_name_paths[@]}; i++)); do # Iterate over the array of modelname,blob-path
|
||||
for blob in "${blobs[@]}"; do
|
||||
IFS=',', read -ra fields <<< "${model_name_paths[i]}" # Split the string into parts
|
||||
if [ "${fields[1]}" == "$blob" ]; then # Check if current 'field' matches a blob
|
||||
matching_models+=( '{ "model": "'"${fields[0]}"'", "path": "'"${fields[1]}"'"}') # Add to list of matching models
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
if [ -z "$json_out" ]; then
|
||||
echo -e "\nModel Found: \n $(echo ${matching_models[*]} | jq '.' | sed s/[{}]//g) \n"
|
||||
else
|
||||
local json_match="${matching_models[*]}"
|
||||
json_output=$(echo $json_match | jq -c -s .)
|
||||
echo "$json_output"
|
||||
fi
|
||||
IFS=$OLDIFS
|
||||
}
|
||||
|
||||
get_running_model_paths() {
|
||||
blobs=$(ps aux | grep -- '--model' | grep -v grep | grep -Po '(?<=--model\s).*' | cut -d ' ' -f1)
|
||||
if [ -z "$blobs" ]; then
|
||||
echo -e "\n\n Warning: No running Ollama models detected!\n"
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
parse_modelfiles() {
|
||||
if [ -z "$json_out" ]; then
|
||||
echo -e "\nConnecting to $ollama_url:$port\n"
|
||||
if [ -z "$(curl -s $ollama_url:$port)" ]; then
|
||||
echo -e "Could not connect to Ollama. Check the ollama_url parameter and that the server is running\n"
|
||||
exit 1
|
||||
fi
|
||||
curl -s "$ollama_url:$port"
|
||||
fi
|
||||
local models=( $(curl -s "$ollama_url:$port/api/tags" | jq -r '.models[].name') )
|
||||
for model in "${models[@]}"; do
|
||||
local modelfile=$(curl -s "$ollama_url:$port/api/show" -d '{ "name": "'"$model"'", "modelfile": true }' | jq -r '.modelfile')
|
||||
model_name_paths+=($model,$(echo "$modelfile" | awk '/^FROM/{print $2}'))
|
||||
done
|
||||
}
|
||||
|
||||
parse_modelfiles
|
||||
get_running_model_paths
|
||||
compare_running_models_and_modelfiles
|
||||
Executable
+1888
File diff suppressed because it is too large
Load Diff
+7
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
for cmd in "$@"; do
|
||||
[[ -z "$cmd" ]] && continue
|
||||
eval "command -v ${cmd%% *}" >/dev/null 2>&1 || continue
|
||||
eval "$cmd" &
|
||||
exit
|
||||
done
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
grim -g "$(slurp)" /tmp/image.png
|
||||
imageLink=$(curl -sF files[]=@/tmp/image.png 'https://uguu.se/upload' | jq -r '.files[0].url')
|
||||
xdg-open "https://lens.google.com/uploadbyurl?url=${imageLink}"
|
||||
rm /tmp/image.png
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Check if GeoClue agent is already running
|
||||
if pgrep -f 'geoclue-2.0/demos/agent' > /dev/null; then
|
||||
echo "GeoClue agent is already running."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# List of known possible GeoClue agent paths
|
||||
AGENT_PATHS=(
|
||||
/usr/libexec/geoclue-2.0/demos/agent
|
||||
/usr/lib/geoclue-2.0/demos/agent
|
||||
"$HOME/.nix-profile/libexec/geoclue-2.0/demos/agent"
|
||||
"$HOME/.nix-profile/lib/geoclue-2.0/demos/agent"
|
||||
/run/current-system/sw/libexec/geoclue-2.0/demos/agent
|
||||
)
|
||||
|
||||
# Find the first valid agent path
|
||||
for path in "${AGENT_PATHS[@]}"; do
|
||||
if [ -x "$path" ]; then
|
||||
echo "Starting GeoClue agent from: $path"
|
||||
"$path" & # starts in the background
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
|
||||
# If we got here, none of the paths worked
|
||||
echo "GeoClue agent not found in known paths."
|
||||
echo "Please install GeoClue or update the script with the correct path."
|
||||
exit 1
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
curr_workspace="$(hyprctl activeworkspace -j | jq -r ".id")"
|
||||
dispatcher="$1"
|
||||
shift ## The target is now in $1, not $2
|
||||
|
||||
if [[ -z "${dispatcher}" || "${dispatcher}" == "--help" || "${dispatcher}" == "-h" || -z "$1" ]]; then
|
||||
echo "Usage: $0 <dispatcher> <target>"
|
||||
exit 1
|
||||
fi
|
||||
if [[ "$1" == *"+"* || "$1" == *"-"* ]]; then ## Is this something like r+1 or -1?
|
||||
hyprctl dispatch "${dispatcher}" "$1" ## $1 = workspace id since we shifted earlier.
|
||||
elif [[ "$1" =~ ^[0-9]+$ ]]; then ## Is this just a number?
|
||||
target_workspace=$((((curr_workspace - 1) / 10 ) * 10 + $1))
|
||||
hyprctl dispatch "${dispatcher}" "${target_workspace}"
|
||||
else
|
||||
hyprctl dispatch "${dispatcher}" "$1" ## In case the target in a string, required for special workspaces.
|
||||
exit 1
|
||||
fi
|
||||
Executable
+54
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Controls Hyprland's cursor zoom_factor, clamped between 1.0 and 3.0
|
||||
|
||||
# Get current zoom level
|
||||
get_zoom() {
|
||||
hyprctl getoption -j cursor:zoom_factor | jq '.float'
|
||||
}
|
||||
|
||||
# Clamp a value between 1.0 and 3.0
|
||||
clamp() {
|
||||
local val="$1"
|
||||
awk "BEGIN {
|
||||
v = $val;
|
||||
if (v < 1.0) v = 1.0;
|
||||
if (v > 3.0) v = 3.0;
|
||||
print v;
|
||||
}"
|
||||
}
|
||||
|
||||
# Set zoom level
|
||||
set_zoom() {
|
||||
local value="$1"
|
||||
clamped=$(clamp "$value")
|
||||
hyprctl keyword cursor:zoom_factor "$clamped"
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
reset)
|
||||
set_zoom 1.0
|
||||
;;
|
||||
increase)
|
||||
if [[ -z "$2" ]]; then
|
||||
echo "Usage: $0 increase STEP"
|
||||
exit 1
|
||||
fi
|
||||
current=$(get_zoom)
|
||||
new=$(awk "BEGIN { print $current + $2 }")
|
||||
set_zoom "$new"
|
||||
;;
|
||||
decrease)
|
||||
if [[ -z "$2" ]]; then
|
||||
echo "Usage: $0 decrease STEP"
|
||||
exit 1
|
||||
fi
|
||||
current=$(get_zoom)
|
||||
new=$(awk "BEGIN { print $current - $2 }")
|
||||
set_zoom "$new"
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {reset|increase STEP|decrease STEP}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,12 @@
|
||||
# This configuration is generated by matugen
|
||||
# Changing these variables with matugen still enabled will overwrite them.
|
||||
|
||||
$text_color = rgba(d6e3ffFF)
|
||||
$entry_background_color = rgba(001b3d11)
|
||||
$entry_border_color = rgba(8e909955)
|
||||
$entry_color = rgba(d6e3ffFF)
|
||||
$font_family = Google Sans Flex Medium
|
||||
$font_family_clock = Google Sans Flex Medium
|
||||
$font_material_symbols = Material Symbols Rounded
|
||||
|
||||
$background_image = /home/alvin/Pictures/Wallpapers/Dynamic-Wallpapers/Dark/japan-street-Dark.png
|
||||
@@ -0,0 +1,4 @@
|
||||
# This file is to be overwritten by nwg-displays if you choose to use it.
|
||||
# nwg-displays is a graphical tool for managing monitors.
|
||||
# - Installation for Arch Linux: sudo pacman -S nwg-displays
|
||||
# - Repo: https://github.com/nwg-piotr/nwg-displays
|
||||
Reference in New Issue
Block a user