Update all dotfiles
@ -60,7 +60,11 @@ matches:
|
|||||||
replace: "#\n#\n# Author: GibbyB (Gabriel Brown)\n#\n\nfrom typing import List\n\n\ndef main():\npass\n\n\nif __name__ == \"__main__\":\nmain()"
|
replace: "#\n#\n# Author: GibbyB (Gabriel Brown)\n#\n\nfrom typing import List\n\n\ndef main():\npass\n\n\nif __name__ == \"__main__\":\nmain()"
|
||||||
|
|
||||||
- trigger: ":tsblock"
|
- trigger: ":tsblock"
|
||||||
replace: "```TypeScript\n\n```"
|
replace: "```ts\n\n```"
|
||||||
|
force_clipboard: true
|
||||||
|
|
||||||
|
- trigger: ":tsxblock"
|
||||||
|
replace: "```tsx\n\n```"
|
||||||
force_clipboard: true
|
force_clipboard: true
|
||||||
|
|
||||||
# Frequent Misspellings
|
# Frequent Misspellings
|
||||||
@ -76,6 +80,102 @@ matches:
|
|||||||
- trigger: "updaet"
|
- trigger: "updaet"
|
||||||
replace: "update"
|
replace: "update"
|
||||||
|
|
||||||
|
- trigger: "lenght"
|
||||||
|
replace: "length"
|
||||||
|
|
||||||
|
- trigger: "whiel"
|
||||||
|
replace: "while"
|
||||||
|
|
||||||
|
- trigger: "heigth"
|
||||||
|
replace: "height"
|
||||||
|
|
||||||
|
- trigger: "compsoe"
|
||||||
|
replace: "compose"
|
||||||
|
|
||||||
|
- trigger: "compseo"
|
||||||
|
replace: "compose"
|
||||||
|
|
||||||
|
- trigger: "comspoe"
|
||||||
|
replace: "compose"
|
||||||
|
|
||||||
|
- trigger: "ocmpose"
|
||||||
|
replace: "compose"
|
||||||
|
|
||||||
|
- trigger: "copmose"
|
||||||
|
replace: "compose"
|
||||||
|
|
||||||
|
- trigger: "cmopose"
|
||||||
|
replace: "compose"
|
||||||
|
|
||||||
|
- trigger: "cmopoes"
|
||||||
|
replace: "compose"
|
||||||
|
|
||||||
|
- trigger: "compoes"
|
||||||
|
replace: "compose"
|
||||||
|
|
||||||
|
- trigger: "dcoker"
|
||||||
|
replace: "docker"
|
||||||
|
|
||||||
|
- trigger: "dcoekr"
|
||||||
|
replace: "docker"
|
||||||
|
|
||||||
|
- trigger: "dockre"
|
||||||
|
replace: "docker"
|
||||||
|
|
||||||
|
- trigger: "dokcre"
|
||||||
|
replace: "docker"
|
||||||
|
|
||||||
|
- trigger: "dokcer"
|
||||||
|
replace: "docker"
|
||||||
|
|
||||||
|
- trigger: "gborwn"
|
||||||
|
replace: "gbrown"
|
||||||
|
|
||||||
|
- trigger: "gbrwon"
|
||||||
|
replace: "gbrown"
|
||||||
|
|
||||||
|
- trigger: "gbronw"
|
||||||
|
replace: "gbrown"
|
||||||
|
|
||||||
|
- trigger: "grbown"
|
||||||
|
replace: "gbrown"
|
||||||
|
|
||||||
|
- trigger: "restrat"
|
||||||
|
replace: "restart"
|
||||||
|
|
||||||
|
- trigger: "resatrt"
|
||||||
|
replace: "restart"
|
||||||
|
|
||||||
|
- trigger: "retsart"
|
||||||
|
replace: "restart"
|
||||||
|
|
||||||
|
- trigger: "restatr"
|
||||||
|
replace: "restart"
|
||||||
|
|
||||||
|
- trigger: "restrta"
|
||||||
|
replace: "restart"
|
||||||
|
|
||||||
|
- trigger: "updaet"
|
||||||
|
replace: "update"
|
||||||
|
|
||||||
|
- trigger: "updtae"
|
||||||
|
replace: "update"
|
||||||
|
|
||||||
|
- trigger: "udpate"
|
||||||
|
replace: "update"
|
||||||
|
|
||||||
|
- trigger: "upadte"
|
||||||
|
replace: "update"
|
||||||
|
|
||||||
|
- trigger: "suod"
|
||||||
|
replace: "sudo"
|
||||||
|
|
||||||
|
- trigger: "sduo"
|
||||||
|
replace: "sudo"
|
||||||
|
|
||||||
|
- trigger: "sodu"
|
||||||
|
replace: "sudo"
|
||||||
|
|
||||||
# Good Emojis
|
# Good Emojis
|
||||||
- trigger: ":happy:"
|
- trigger: ":happy:"
|
||||||
replace: "\U0001F603"
|
replace: "\U0001F603"
|
||||||
|
72
configs/dotfiles/forge/config/.windows.json.~260c6b69
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"wmClass": "jetbrains-toolbox",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Com.github.amezin.ddterm",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Com.github.donadigo.eddy",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Conky",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Gnome-initial-setup",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "org.gnome.Calculator",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "gnome-terminal-preferences",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Guake",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "zoom",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "mpv",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Bitwarden",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Hidamari",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "com.mattjakeman.ExtensionManager",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Cider",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Ulauncher",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "com.nextcloud.desktopclient.nextcloud",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Emulator",
|
||||||
|
"mode": "float"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
72
configs/dotfiles/forge/config/.windows.json.~318f7cf9
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"wmClass": "jetbrains-toolbox",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Com.github.amezin.ddterm",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Com.github.donadigo.eddy",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Conky",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Gnome-initial-setup",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "org.gnome.Calculator",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "gnome-terminal-preferences",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Guake",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "zoom",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "mpv",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Bitwarden",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Hidamari",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "com.mattjakeman.ExtensionManager",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Cider",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Ulauncher",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "com.nextcloud.desktopclient.nextcloud",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Emulator",
|
||||||
|
"mode": "float"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
72
configs/dotfiles/forge/config/.windows.json.~38323208
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"wmClass": "jetbrains-toolbox",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Com.github.amezin.ddterm",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Com.github.donadigo.eddy",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Conky",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Gnome-initial-setup",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "org.gnome.Calculator",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "gnome-terminal-preferences",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Guake",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "zoom",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "mpv",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Bitwarden",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Hidamari",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "com.mattjakeman.ExtensionManager",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Cider",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Ulauncher",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "com.nextcloud.desktopclient.nextcloud",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Emulator",
|
||||||
|
"mode": "float"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
72
configs/dotfiles/forge/config/.windows.json.~42767d6d
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"wmClass": "jetbrains-toolbox",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Com.github.amezin.ddterm",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Com.github.donadigo.eddy",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Conky",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Gnome-initial-setup",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "org.gnome.Calculator",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "gnome-terminal-preferences",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Guake",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "zoom",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "mpv",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Bitwarden",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Hidamari",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "com.mattjakeman.ExtensionManager",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Cider",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Ulauncher",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "com.nextcloud.desktopclient.nextcloud",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Emulator",
|
||||||
|
"mode": "float"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
72
configs/dotfiles/forge/config/.windows.json.~63ed4469
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"wmClass": "jetbrains-toolbox",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Com.github.amezin.ddterm",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Com.github.donadigo.eddy",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Conky",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Gnome-initial-setup",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "org.gnome.Calculator",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "gnome-terminal-preferences",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Guake",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "zoom",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "mpv",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Bitwarden",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Hidamari",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "com.mattjakeman.ExtensionManager",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Cider",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Ulauncher",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "com.nextcloud.desktopclient.nextcloud",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Emulator",
|
||||||
|
"mode": "float"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
72
configs/dotfiles/forge/config/.windows.json.~68bf2ae6
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"wmClass": "jetbrains-toolbox",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Com.github.amezin.ddterm",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Com.github.donadigo.eddy",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Conky",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Gnome-initial-setup",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "org.gnome.Calculator",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "gnome-terminal-preferences",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Guake",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "zoom",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "mpv",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Bitwarden",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Hidamari",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "com.mattjakeman.ExtensionManager",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Cider",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Ulauncher",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "com.nextcloud.desktopclient.nextcloud",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "Emulator",
|
||||||
|
"mode": "float"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -36,6 +36,10 @@
|
|||||||
"wmClass": "zoom",
|
"wmClass": "zoom",
|
||||||
"mode": "float"
|
"mode": "float"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"wmClass": "mpv",
|
||||||
|
"mode": "float"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"wmClass": "Bitwarden",
|
"wmClass": "Bitwarden",
|
||||||
"mode": "float"
|
"mode": "float"
|
||||||
@ -61,11 +65,7 @@
|
|||||||
"mode": "float"
|
"mode": "float"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"wmClass": "mpv",
|
"wmClass": "Emulator",
|
||||||
"mode": "float"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"wmClass": "Spotify",
|
|
||||||
"mode": "float"
|
"mode": "float"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
31
configs/dotfiles/ghostty/config
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
|
||||||
|
# Theme
|
||||||
|
|
||||||
|
theme = tokyonight_moon
|
||||||
|
font-family = "VictorMono Nerd Font Mono"
|
||||||
|
font-family-bold = "VictorMono Nerd Font Mono, Bold"
|
||||||
|
font-family-italic = "VictorMono Nerd Font Mono, Regular Italic"
|
||||||
|
font-family-bold-italic = "VictorMono Nerd Font Mono, Bold Italic"
|
||||||
|
font-size = 15
|
||||||
|
background-opacity = 0.92
|
||||||
|
background-blur = true
|
||||||
|
|
||||||
|
# Keybindings
|
||||||
|
keybind = ctrl+shift+r=reload_config
|
||||||
|
|
||||||
|
## Tabs
|
||||||
|
keybind = ctrl+shift+h=previous_tab
|
||||||
|
keybind = ctrl+shift+l=next_tab
|
||||||
|
keybind = ctrl+shift+j=move_tab:-1
|
||||||
|
keybind = ctrl+shift+k=move_tab:1
|
||||||
|
keybind = ctrl+shift+q=close_tab
|
||||||
|
|
||||||
|
## Splits
|
||||||
|
keybind = ctrl+shift+b=new_split:right
|
||||||
|
keybind = ctrl+shift+d=new_split:down
|
||||||
|
keybind = ctrl+shift+,=goto_split:previous
|
||||||
|
keybind = ctrl+shift+.=goto_split:next
|
||||||
|
keybind = ctrl+shift+up=goto_split:up
|
||||||
|
keybind = ctrl+shift+down=goto_split:down
|
||||||
|
keybind = ctrl+shift+left=goto_split:left
|
||||||
|
keybind = ctrl+shift+right=goto_split:right
|
1
configs/dotfiles/hyprland/desktop/.config/Xresources
Normal file
@ -0,0 +1 @@
|
|||||||
|
Xcursor.theme: Bibata-Modern-Ice
|
11
configs/dotfiles/hyprland/desktop/.config/ags/app.ts
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import { App, Widget } from "astal/gtk3"
|
||||||
|
import Calendar from "./widget/Calendar"
|
||||||
|
import Sidebar from "./widget/Sidebar"
|
||||||
|
|
||||||
|
App.start({
|
||||||
|
css: "./style.css",
|
||||||
|
main() {
|
||||||
|
Sidebar();
|
||||||
|
Calendar();
|
||||||
|
}
|
||||||
|
})
|
@ -0,0 +1,4 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" version="1.1">
|
||||||
|
<path style="fill:#ffffff" d="M 3,1 C 1.89,1 1,1.892 1,3 V 6 H 3 V 3 H 13 V 13 H 3 V 10 H 1 V 13 C 1,14.108 1.89,15 3,15 H 13 C 14.11,15 15,14.108 15,13 V 3 C 15,1.892 14.11,1 13,1 Z"/>
|
||||||
|
<path style="fill:#ffffff" d="M 7.21,4 5.83,5.386 7.46,7.021 0,7 V 9 L 7.46,9.021 5.83,10.655 7.21,12.041 11.21,8 Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 392 B |
@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 7.40625 1 c -0.613281 0.007812 -1.234375 0.089844 -1.847656 0.253906 c -3.273438 0.878906 -5.558594 3.855469 -5.558594 7.246094 s 2.285156 6.367188 5.558594 7.242188 c 3.273437 0.878906 6.742187 -0.558594 8.4375 -3.492188 c 0.277344 -0.480469 0.109375 -1.089844 -0.367188 -1.367188 c -0.476562 -0.273437 -1.089844 -0.109374 -1.367187 0.367188 c -1.246094 2.160156 -3.777344 3.207031 -6.1875 2.5625 c -2.40625 -0.644531 -4.074219 -2.820312 -4.074219 -5.3125 c 0 -2.496094 1.667969 -4.667969 4.074219 -5.3125 c 2.410156 -0.644531 4.941406 0.402344 6.1875 2.5625 c 0.058593 0.085938 0.125 0.164062 0.203125 0.226562 l -0.019532 0.015626 l -0.007812 0.007812 h -1.4375 c -0.550781 0 -1 0.449219 -1 1 c 0 0 0 1 1 1 h 5 v -5 s 0.003906 -1 -1 -1 c -0.550781 0 -1 0.449219 -1 1 v 1.6875 l -0.015625 0.011719 l -0.011719 0.011719 c -1.277344 -2.179688 -3.53125 -3.519532 -5.953125 -3.691407 c -0.203125 -0.015625 -0.40625 -0.019531 -0.613281 -0.019531 z m 0 0" fill="#ffffff"/></svg>
|
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,13 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
|
||||||
|
<defs id="defs3051">
|
||||||
|
<style type="text/css" id="current-color-scheme">
|
||||||
|
.ColorScheme-Text {
|
||||||
|
color:#ffffff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<path style="fill:currentColor;fill-opacity:1;stroke:none"
|
||||||
|
d="M 2 2 L 2 13.28125 L 2 14 L 14 14 L 14 13 L 14 12 L 14 11 L 14 10 L 14 2 L 2 2 z M 3 3 L 13 3 L 13 9 L 11 7 L 7.65625 10.34375 L 6.3125 9 L 6.28125 9 L 3 12.28125 L 3 3 z M 6 4 C 4.8954305 4 4 4.8954305 4 6 C 4 7.1045695 4.8954305 8 6 8 C 7.1045695 8 8 7.1045695 8 6 C 8 4.8954305 7.1045695 4 6 4 z "
|
||||||
|
class="ColorScheme-Text"
|
||||||
|
/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 637 B |
@ -0,0 +1,6 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" version="1.1">
|
||||||
|
<path style="opacity:.35;fill:#ffffff" d="M 2,2 C 1.446,2 1,2.446 1,3 V 5 H 15 V 3 C 15,2.446 14.554,2 14,2 Z M 1,11 V 13 C 1,13.554 1.446,14 2,14 H 14 C 14.554,14 15,13.554 15,13 V 11 Z"/>
|
||||||
|
<path style="fill:#ffffff" d="M 5,8 A 2,2 0 0 1 3,10 2,2 0 0 1 1,8 2,2 0 0 1 3,6 2,2 0 0 1 5,8 Z"/>
|
||||||
|
<path style="fill:#ffffff" d="M 10,8 A 2,2 0 0 1 8,10 2,2 0 0 1 6,8 2,2 0 0 1 8,6 2,2 0 0 1 10,8 Z"/>
|
||||||
|
<path style="fill:#ffffff" d="M 15,8 A 2,2 0 0 1 13,10 2,2 0 0 1 11,8 2,2 0 0 1 13,6 2,2 0 0 1 15,8 Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 586 B |
@ -0,0 +1,13 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
|
||||||
|
<defs id="defs3051">
|
||||||
|
<style type="text/css" id="current-color-scheme">
|
||||||
|
.ColorScheme-Text {
|
||||||
|
color:#ffffff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<path style="fill:currentColor;fill-opacity:1;stroke:none"
|
||||||
|
d="M 2 2 L 2 14 L 14 14 L 14 2 L 2 2 z M 3 3 L 13 3 L 13 13 L 3 13 L 3 3 z M 5 5 L 5 11 L 7 11 L 7 5 L 5 5 z M 9 5 L 9 11 L 11 11 L 11 5 L 9 5 z "
|
||||||
|
class="ColorScheme-Text"
|
||||||
|
/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 479 B |
@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 8 1 c -2.199219 0 -4 1.800781 -4 4 v 2 c -1.109375 0 -2 0.890625 -2 2 v 5 c 0 0.554688 0.445312 1 1 1 h 10 c 0.554688 0 1 -0.445312 1 -1 v -5 c 0 -1.109375 -0.890625 -2 -2 -2 v -2 c 0 -2.199219 -1.800781 -4 -4 -4 z m 0 2 c 1.125 0 2 0.875 2 2 v 2 h -4 v -2 c 0 -1.125 0.875 -2 2 -2 z m 0 0" fill="#ffffff"/></svg>
|
After Width: | Height: | Size: 451 B |
@ -0,0 +1,5 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" version="1.1">
|
||||||
|
<path style="opacity:.35;fill:#ffffff" d="M 7,3 V 8 H 3 V 10 H 13 V 3 Z"/>
|
||||||
|
<path style="fill:#ffffff" d="M 6,3 3,7 H 6 Z"/>
|
||||||
|
<path style="fill:#ffffff" d="M 2,0 C 0,0 0,2 0,2 V 11 C 0,11 0,13 2,13 H 14 C 14,13 16,13 16,11 V 2 C 16,2 16,0 14,0 Z M 2,2 H 14 V 11 H 2 Z M 3,15 V 16 H 13 V 15 C 13,14 12,14 12,14 H 4 C 4,14 3,14 3,15 Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 422 B |
@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 8.011719 0 c -0.550781 0 -1 0.449219 -1 1 v 5 c 0 0.550781 0.449219 1 1 1 s 1 -0.449219 1 -1 v -5 c 0 -0.550781 -0.449219 -1 -1 -1 z m -3.136719 1.816406 c -0.128906 0.015625 -0.253906 0.058594 -0.367188 0.125 c -2.734374 1.582032 -4.074218 4.816406 -3.257812 7.871094 c 0.820312 3.050781 3.59375 5.183594 6.75 5.1875 c 3.160156 0 5.941406 -2.121094 6.765625 -5.167969 c 0.828125 -3.050781 -0.5 -6.289062 -3.230469 -7.878906 c -0.476562 -0.28125 -1.089844 -0.121094 -1.367187 0.359375 c -0.132813 0.226562 -0.171875 0.5 -0.105469 0.757812 c 0.070312 0.257813 0.234375 0.476563 0.464844 0.609376 c 1.957031 1.140624 2.902344 3.441406 2.3125 5.628906 c -0.59375 2.183594 -2.570313 3.695312 -4.832032 3.691406 c -2.265624 0 -4.238281 -1.519531 -4.824218 -3.707031 c -0.585938 -2.1875 0.363281 -4.488281 2.324218 -5.621094 c 0.476563 -0.277344 0.640626 -0.886719 0.363282 -1.363281 c -0.132813 -0.230469 -0.347656 -0.398438 -0.605469 -0.464844 c -0.125 -0.035156 -0.257813 -0.042969 -0.390625 -0.027344 z m 0 0" fill="#ffffff"/></svg>
|
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" version="1.1">
|
||||||
|
<path style="fill:#ffffff" d="M 2,2 C 1,2 1,3 1,3 V 13 C 1,14 2,14 2,14 H 14 C 14,14 15,14 15,13 V 3 C 15,2 14,2 14,2 Z M 5.5,6.56 8.81,10.31 10.94,8.25 13,10.31 V 12 H 3 V 9.5 Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 268 B |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 23 KiB |
21
configs/dotfiles/hyprland/desktop/.config/ags/env.d.ts
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
const SRC: string
|
||||||
|
|
||||||
|
declare module "inline:*" {
|
||||||
|
const content: string
|
||||||
|
export default content
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module "*.scss" {
|
||||||
|
const content: string
|
||||||
|
export default content
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module "*.blp" {
|
||||||
|
const content: string
|
||||||
|
export default content
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module "*.css" {
|
||||||
|
const content: string
|
||||||
|
export default content
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
$HOME/.config/waybar/themeswitcher.sh
|
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
$HOME/.config/hypr/scripts/wallpaper-effects.sh
|
211
configs/dotfiles/hyprland/desktop/.config/ags/style.css
Normal file
@ -0,0 +1,211 @@
|
|||||||
|
@import url('../../.cache/wal/colors-waybar.css');
|
||||||
|
|
||||||
|
* {
|
||||||
|
all:unset;
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: "Fira Sans", sans-serif;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar {
|
||||||
|
background: #222222;
|
||||||
|
padding: 12px;
|
||||||
|
margin:14px;
|
||||||
|
border-radius: 12px;
|
||||||
|
font-weight: bold;
|
||||||
|
border: 3px solid @color11;
|
||||||
|
box-shadow: 0px 0px 10px 1px rgba(0, 0, 0, 0.8);
|
||||||
|
padding:20px;
|
||||||
|
min-width:320px;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar:selected {
|
||||||
|
background-color:@color11;
|
||||||
|
padding:0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
background: #222222;
|
||||||
|
padding: 12px;
|
||||||
|
margin:14px;
|
||||||
|
border-radius: 12px;
|
||||||
|
font-weight: bold;
|
||||||
|
border: 3px solid @color11;
|
||||||
|
box-shadow: 0px 0px 10px 1px rgba(0, 0, 0, 0.8);
|
||||||
|
padding:20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.group {
|
||||||
|
padding:16px;
|
||||||
|
background-color: rgba(116, 116, 116, 0.1);
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ml4wwelcomeicon {
|
||||||
|
background:url("assets/ml4w-welcome.png");
|
||||||
|
background-size:50px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: top;
|
||||||
|
padding: 40px 50px 20px 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ml4wsettingsicon {
|
||||||
|
background:url("assets/ml4w-dotfiles-settings.png");
|
||||||
|
background-size:50px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: top;
|
||||||
|
padding: 40px 50px 20px 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ml4whyprlandicon {
|
||||||
|
background:url("assets/ml4w-hyprland-settings.png");
|
||||||
|
background-size:50px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: top;
|
||||||
|
padding: 40px 50px 20px 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btnbar {
|
||||||
|
border: 1px solid #222222;
|
||||||
|
padding:5px;
|
||||||
|
min-height:24px;
|
||||||
|
border-radius: 24px;
|
||||||
|
min-width: 24px;
|
||||||
|
margin:0px 2px 0px 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btnbar.statusbar {
|
||||||
|
background:url("assets/icons/image-loading-symbolic.svg");
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-position:center;
|
||||||
|
background-color: @color11;
|
||||||
|
background-size:20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btnbar.wallpaper {
|
||||||
|
background:url("assets/icons/fileview-preview-symbolic.svg");
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-position:center;
|
||||||
|
background-color: @color11;
|
||||||
|
background-size:20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btnbar.wallpapereffects {
|
||||||
|
background:url("assets/icons/xapp-prefs-preview-symbolic.svg");
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-position:center;
|
||||||
|
background-color: @color11;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btnbar.lock {
|
||||||
|
background:url("assets/icons/padlock2-symbolic.svg");
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-position:center;
|
||||||
|
background-color: @color11;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btnbar.logout {
|
||||||
|
background:url("assets/icons/application-exit-symbolic.svg");
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-position:center;
|
||||||
|
background-color: @color11;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btnbar.restart {
|
||||||
|
background:url("assets/icons/arrow-circular-top-right-symbolic.svg");
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-position:center;
|
||||||
|
background-color: @color11;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btnbar.suspend {
|
||||||
|
background:url("assets/icons/media-playback-paused-symbolic.svg");
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-position:center;
|
||||||
|
background-color: @color11;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btnbar.exit {
|
||||||
|
background:url("assets/icons/turn-off-symbolic.svg");
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-position:center;
|
||||||
|
background-color: @color11;
|
||||||
|
}
|
||||||
|
|
||||||
|
.midbtn {
|
||||||
|
background-color: @color11;
|
||||||
|
font-size: 12px;
|
||||||
|
padding:10px;
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.AudioSlider {
|
||||||
|
background-color:@color11;
|
||||||
|
border-radius:12px;
|
||||||
|
margin-bottom:10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.AudioSlider contents {
|
||||||
|
min-height: 20px;
|
||||||
|
background-color:@color15;
|
||||||
|
border-radius:12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.AudioSlider value {
|
||||||
|
min-height: 20px;
|
||||||
|
background-color: #222222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.AudioSlider slider {
|
||||||
|
min-height: 20px;
|
||||||
|
background-color:@color15;
|
||||||
|
border-radius:12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.AudioSlider highlight {
|
||||||
|
min-height:20px;
|
||||||
|
background-color:@color11;
|
||||||
|
border-radius:12px;
|
||||||
|
outline-width:3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.AudioSlider fill {
|
||||||
|
min-height:20px;
|
||||||
|
background-color:@color11;
|
||||||
|
border-radius:12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.MicrophoneSlider {
|
||||||
|
background-color:@color11;
|
||||||
|
border-radius:12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.MicrophoneSlider contents {
|
||||||
|
min-height: 20px;
|
||||||
|
background-color:@color15;
|
||||||
|
border-radius:12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.MicrophoneSlider value {
|
||||||
|
min-height: 20px;
|
||||||
|
background-color: #222222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.MicrophoneSlider slider {
|
||||||
|
min-height: 20px;
|
||||||
|
background-color:@color15;
|
||||||
|
border-radius:12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.MicrophoneSlider highlight {
|
||||||
|
min-height:20px;
|
||||||
|
background-color:@color11;
|
||||||
|
border-radius:12px;
|
||||||
|
outline-width:3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.MicrophoneSlider fill {
|
||||||
|
min-height:20px;
|
||||||
|
background-color:@color11;
|
||||||
|
border-radius:12px;
|
||||||
|
}
|
22
configs/dotfiles/hyprland/desktop/.config/ags/tsconfig.json
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
|
"compilerOptions": {
|
||||||
|
"experimentalDecorators": true,
|
||||||
|
"strict": true,
|
||||||
|
"target": "ES2022",
|
||||||
|
"module": "ES2022",
|
||||||
|
"moduleResolution": "Bundler",
|
||||||
|
// "checkJs": true,
|
||||||
|
// "allowJs": true,
|
||||||
|
"jsx": "react-jsx",
|
||||||
|
"jsxImportSource": "/usr/share/astal/gjs/gtk3",
|
||||||
|
"paths": {
|
||||||
|
"astal": [
|
||||||
|
"/usr/share/astal/gjs"
|
||||||
|
],
|
||||||
|
"astal/*": [
|
||||||
|
"/usr/share/astal/gjs/*"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
29
configs/dotfiles/hyprland/desktop/.config/ags/widget/Bar.tsx
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
import { App, Astal, Gtk, Gdk } from "astal/gtk3"
|
||||||
|
import { Variable } from "astal"
|
||||||
|
|
||||||
|
const time = Variable("").poll(1000, "date")
|
||||||
|
|
||||||
|
export default function Bar(gdkmonitor: Gdk.Monitor) {
|
||||||
|
return <window
|
||||||
|
className="Bar"
|
||||||
|
gdkmonitor={gdkmonitor}
|
||||||
|
exclusivity={Astal.Exclusivity.EXCLUSIVE}
|
||||||
|
anchor={Astal.WindowAnchor.TOP
|
||||||
|
| Astal.WindowAnchor.LEFT
|
||||||
|
| Astal.WindowAnchor.RIGHT}
|
||||||
|
application={App}>
|
||||||
|
<centerbox>
|
||||||
|
<button
|
||||||
|
onClicked="echo hello"
|
||||||
|
halign={Gtk.Align.CENTER} >
|
||||||
|
Welcome to AGS!
|
||||||
|
</button>
|
||||||
|
<box />
|
||||||
|
<button
|
||||||
|
onClick={() => print("hello")}
|
||||||
|
halign={Gtk.Align.CENTER} >
|
||||||
|
<label label={time()} />
|
||||||
|
</button>
|
||||||
|
</centerbox>
|
||||||
|
</window>
|
||||||
|
}
|
@ -0,0 +1,72 @@
|
|||||||
|
// Thanks to https://gitlab.com/filippoaceto/
|
||||||
|
import GObject, { register, property } from "astal/gobject"
|
||||||
|
import { monitorFile, readFileAsync } from "astal/file"
|
||||||
|
import { exec, execAsync } from "astal/process"
|
||||||
|
|
||||||
|
const get = (args: string) => Number(exec(`brightnessctl ${args}`))
|
||||||
|
const screen = exec(`bash -c "ls -w1 /sys/class/backlight | head -1"`)
|
||||||
|
const kbd = exec(`bash -c "ls -w1 /sys/class/leds | head -1"`)
|
||||||
|
|
||||||
|
@register({ GTypeName: "Brightness" })
|
||||||
|
export default class Brightness extends GObject.Object {
|
||||||
|
static instance: Brightness
|
||||||
|
static get_default() {
|
||||||
|
if (!this.instance)
|
||||||
|
this.instance = new Brightness()
|
||||||
|
|
||||||
|
return this.instance
|
||||||
|
}
|
||||||
|
|
||||||
|
#kbdMax = get(`--device ${kbd} max`)
|
||||||
|
#kbd = get(`--device ${kbd} get`)
|
||||||
|
#screenMax = get("max")
|
||||||
|
#screen = get("get") / (get("max") || 1)
|
||||||
|
|
||||||
|
@property(Number)
|
||||||
|
get kbd() { return this.#kbd }
|
||||||
|
|
||||||
|
set kbd(value) {
|
||||||
|
if (value < 0 || value > this.#kbdMax)
|
||||||
|
return
|
||||||
|
execAsync(`brightnessctl -d ${kbd} s ${value} -q`).then(() => {
|
||||||
|
this.#kbd = value
|
||||||
|
this.notify("kbd")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
@property(Number)
|
||||||
|
get screen() { return this.#screen }
|
||||||
|
|
||||||
|
set screen(percent) {
|
||||||
|
if (percent < 0)
|
||||||
|
percent = 0
|
||||||
|
|
||||||
|
if (percent > 1)
|
||||||
|
percent = 1
|
||||||
|
|
||||||
|
if (Math.floor(percent * 100) > 1)
|
||||||
|
execAsync(`brightnessctl set ${Math.floor(percent * 100)}% -q`).then(() => {
|
||||||
|
this.#screen = percent
|
||||||
|
this.notify("screen")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super()
|
||||||
|
|
||||||
|
const screenPath = `/sys/class/backlight/${screen}/brightness`
|
||||||
|
const kbdPath = `/sys/class/leds/${kbd}/brightness`
|
||||||
|
|
||||||
|
monitorFile(screenPath, async f => {
|
||||||
|
const v = await readFileAsync(f)
|
||||||
|
this.#screen = Number(v) / this.#screenMax
|
||||||
|
this.notify("screen")
|
||||||
|
})
|
||||||
|
|
||||||
|
monitorFile(kbdPath, async f => {
|
||||||
|
const v = await readFileAsync(f)
|
||||||
|
this.#kbd = Number(v) / this.#kbdMax
|
||||||
|
this.notify("kbd")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
import { GObject } from "astal";
|
||||||
|
import { astalify, ConstructProps, App, Astal, Gdk, Gtk } from "astal/gtk3"
|
||||||
|
|
||||||
|
class CalendarGtk extends astalify(Gtk.Calendar) {
|
||||||
|
static {
|
||||||
|
GObject.registerClass(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
props: ConstructProps<Gtk.Calendar, Gtk.Calendar.ConstructorProps>,
|
||||||
|
) {
|
||||||
|
super(props as any);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function Calendar() {
|
||||||
|
const anchor = Astal.WindowAnchor.TOP
|
||||||
|
| Astal.WindowAnchor.RIGHT
|
||||||
|
|
||||||
|
return <window
|
||||||
|
name="calendar"
|
||||||
|
visible={false}
|
||||||
|
application={App}
|
||||||
|
anchor={anchor}
|
||||||
|
keymode={Astal.Keymode.ON_DEMAND}
|
||||||
|
onKeyPressEvent={function (self, event: Gdk.Event) {
|
||||||
|
if (event.get_keyval()[1] === Gdk.KEY_Escape)
|
||||||
|
self.hide()
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<box
|
||||||
|
className="calendar"
|
||||||
|
>{new CalendarGtk({
|
||||||
|
hexpand: true,
|
||||||
|
vexpand: true,
|
||||||
|
showDayNames: true,
|
||||||
|
showDetails: false,
|
||||||
|
showHeading: true,
|
||||||
|
showWeekNumbers: true
|
||||||
|
})}</box>
|
||||||
|
</window>
|
||||||
|
}
|
167
configs/dotfiles/hyprland/desktop/.config/ags/widget/Sidebar.tsx
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
import { App } from "astal/gtk3"
|
||||||
|
import Apps from "gi://AstalApps"
|
||||||
|
import Wp from "gi://AstalWp"
|
||||||
|
import { Variable, GLib, bind } from "astal"
|
||||||
|
import { subprocess, exec, execAsync } from "astal/process"
|
||||||
|
import { Astal, Gtk, Gdk } from "astal/gtk3"
|
||||||
|
import Brightness from "./Brightness"
|
||||||
|
|
||||||
|
function BrightnessSlider() {
|
||||||
|
const brightness = Brightness.get_default()
|
||||||
|
|
||||||
|
return <box className="MicrophoneSlider" css="min-width: 140px">
|
||||||
|
<slider
|
||||||
|
hexpand
|
||||||
|
value={bind(brightness, "screen")}
|
||||||
|
onDragged={({ value }) => brightness.screen = value}
|
||||||
|
/>
|
||||||
|
</box>
|
||||||
|
}
|
||||||
|
|
||||||
|
function AudioSlider() {
|
||||||
|
const speaker = Wp.get_default()?.audio.defaultSpeaker!
|
||||||
|
|
||||||
|
return <box className="AudioSlider" css="min-width: 140px">
|
||||||
|
<slider
|
||||||
|
hexpand
|
||||||
|
onDragged={({ value }) => speaker.volume = value}
|
||||||
|
value={bind(speaker, "volume")}
|
||||||
|
/>
|
||||||
|
</box>
|
||||||
|
}
|
||||||
|
|
||||||
|
function MicrophoneSlider() {
|
||||||
|
const microphone = Wp.get_default()?.audio.defaultMicrophone!
|
||||||
|
|
||||||
|
return <box className="MicrophoneSlider" css="min-width: 140px">
|
||||||
|
<slider
|
||||||
|
hexpand
|
||||||
|
onDragged={({ value }) => microphone.volume = value}
|
||||||
|
value={bind(microphone, "volume")}
|
||||||
|
/>
|
||||||
|
</box>
|
||||||
|
}
|
||||||
|
|
||||||
|
function openwelcomeapp() {
|
||||||
|
execAsync("com.ml4w.welcome")
|
||||||
|
App.get_window("sidebar")!.hide()
|
||||||
|
}
|
||||||
|
|
||||||
|
function opensettingsapp() {
|
||||||
|
execAsync("com.ml4w.dotfilessettings")
|
||||||
|
App.get_window("sidebar")!.hide()
|
||||||
|
}
|
||||||
|
|
||||||
|
function openhyprlandapp() {
|
||||||
|
execAsync("com.ml4w.hyprland.settings")
|
||||||
|
App.get_window("sidebar")!.hide()
|
||||||
|
}
|
||||||
|
|
||||||
|
function openwallpaper() {
|
||||||
|
const proc = subprocess(["bash", "-c", "waypaper"])
|
||||||
|
App.get_window("sidebar")!.hide()
|
||||||
|
}
|
||||||
|
|
||||||
|
function openwallpapereffects() {
|
||||||
|
const proc = subprocess(["bash", "-c", "$HOME/.config/hypr/scripts/wallpaper-effects.sh"])
|
||||||
|
App.get_window("sidebar")!.hide()
|
||||||
|
}
|
||||||
|
|
||||||
|
function openwaybarthemes() {
|
||||||
|
const proc = subprocess(["bash", "-c", "$HOME/.config/waybar/themeswitcher.sh"])
|
||||||
|
App.get_window("sidebar")!.hide()
|
||||||
|
}
|
||||||
|
|
||||||
|
function powerlock() {
|
||||||
|
const proc = subprocess(["bash", "-c", "$HOME/.config/hypr/scripts/power.sh lock"])
|
||||||
|
App.get_window("sidebar")!.hide()
|
||||||
|
}
|
||||||
|
|
||||||
|
function powerlogout() {
|
||||||
|
const proc = subprocess(["bash", "-c", "$HOME/.config/hypr/scripts/power.sh exit"])
|
||||||
|
App.get_window("sidebar")!.hide()
|
||||||
|
}
|
||||||
|
|
||||||
|
function powersuspend() {
|
||||||
|
const proc = subprocess(["bash", "-c", "$HOME/.config/hypr/scripts/power.sh suspend"])
|
||||||
|
App.get_window("sidebar")!.hide()
|
||||||
|
}
|
||||||
|
|
||||||
|
function powerrestart() {
|
||||||
|
const proc = subprocess(["bash", "-c", "$HOME/.config/hypr/scripts/power.sh reboot"])
|
||||||
|
App.get_window("sidebar")!.hide()
|
||||||
|
}
|
||||||
|
|
||||||
|
function powerexit() {
|
||||||
|
const proc = subprocess(["bash", "-c", "$HOME/.config/hypr/scripts/power.sh shutdown"])
|
||||||
|
App.get_window("sidebar")!.hide()
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function Sidebar() {
|
||||||
|
|
||||||
|
const anchor = Astal.WindowAnchor.TOP
|
||||||
|
| Astal.WindowAnchor.RIGHT
|
||||||
|
|
||||||
|
return <window
|
||||||
|
name="sidebar"
|
||||||
|
application={App}
|
||||||
|
visible={false}
|
||||||
|
className="Sidebar"
|
||||||
|
anchor={anchor}
|
||||||
|
keymode={Astal.Keymode.ON_DEMAND}
|
||||||
|
onKeyPressEvent={function (self, event: Gdk.Event) {
|
||||||
|
if (event.get_keyval()[1] === Gdk.KEY_Escape)
|
||||||
|
self.hide()
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<box className="sidebar" vertical>
|
||||||
|
<box css="padding-bottom:20px;">
|
||||||
|
<box className="group" vertical>
|
||||||
|
<box homogeneous>
|
||||||
|
<button onClicked={openwelcomeapp} className="ml4wwelcomeicon"></button>
|
||||||
|
<button onClicked={opensettingsapp} className="ml4wsettingsicon"></button>
|
||||||
|
<button onClicked={openhyprlandapp} className="ml4whyprlandicon"></button>
|
||||||
|
</box>
|
||||||
|
<box homogeneous>
|
||||||
|
<button onClicked={openwelcomeapp}>Welcome App</button>
|
||||||
|
<button onClicked={opensettingsapp}>Settings App</button>
|
||||||
|
<button onClicked={openhyprlandapp}>Hyprland App</button>
|
||||||
|
</box>
|
||||||
|
</box>
|
||||||
|
</box>
|
||||||
|
<centerbox horizontal className="group">
|
||||||
|
<label vexpand label=""></label>
|
||||||
|
<box>
|
||||||
|
<button onClicked={openwallpaper} className="btnbar first wallpaper"></button>
|
||||||
|
<button onClicked={openwallpapereffects} className="btnbar wallpapereffects"></button>
|
||||||
|
<button onClicked={openwaybarthemes} className="btnbar last statusbar"></button>
|
||||||
|
</box>
|
||||||
|
<label vexpand label=""></label>
|
||||||
|
</centerbox>
|
||||||
|
<box css="padding-bottom:20px;"></box>
|
||||||
|
<box className="group" halign="left" vertical>
|
||||||
|
<label css="padding-bottom:10px" label="Speaker"></label>
|
||||||
|
<AudioSlider/>
|
||||||
|
<label css="padding-bottom:10px" label="Microphone"></label>
|
||||||
|
<MicrophoneSlider />
|
||||||
|
</box>
|
||||||
|
<box css="padding-bottom:20px;"></box>
|
||||||
|
<box className="group" halign="left" vertical>
|
||||||
|
<label css="padding-bottom:10px" label="Brightness"></label>
|
||||||
|
<BrightnessSlider />
|
||||||
|
</box>
|
||||||
|
<box css="padding-bottom:20px;"></box>
|
||||||
|
<centerbox horizontal className="group">
|
||||||
|
<label vexpand label=""></label>
|
||||||
|
<box>
|
||||||
|
<button onClicked={powerlock} className="btnbar first lock"></button>
|
||||||
|
<button onClicked={powerlogout} className="btnbar logout"></button>
|
||||||
|
<button onClicked={powersuspend} className="btnbar suspend"></button>
|
||||||
|
<button onClicked={powerrestart} className="btnbar restart"></button>
|
||||||
|
<button onClicked={powerexit} className="btnbar last exit"></button>
|
||||||
|
</box>
|
||||||
|
<label vexpand label=""></label>
|
||||||
|
</centerbox>
|
||||||
|
</box>
|
||||||
|
</window>
|
||||||
|
}
|
469
configs/dotfiles/hyprland/desktop/.config/dunst/dunstrc
Normal file
@ -0,0 +1,469 @@
|
|||||||
|
# _ _
|
||||||
|
# __| |_ _ _ __ ___| |_
|
||||||
|
# / _` | | | | '_ \/ __| __|
|
||||||
|
# | (_| | |_| | | | \__ \ |_
|
||||||
|
# \__,_|\__,_|_| |_|___/\__|
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# by Stephan Raabe (2023)
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
# See dunst(5) for all configuration options
|
||||||
|
|
||||||
|
[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 = none
|
||||||
|
|
||||||
|
### Geometry ###
|
||||||
|
|
||||||
|
# dynamic width from 0 to 300
|
||||||
|
# width = (0, 300)
|
||||||
|
# constant width of 300
|
||||||
|
width = 300
|
||||||
|
|
||||||
|
# The maximum height of a single notification, excluding the frame.
|
||||||
|
height = (0,300)
|
||||||
|
|
||||||
|
# Position the notification in the top right corner
|
||||||
|
origin = top-center
|
||||||
|
|
||||||
|
# Offset from the origin
|
||||||
|
offset = 30x30
|
||||||
|
|
||||||
|
# Scale factor. It is auto-detected if value is 0.
|
||||||
|
scale = 0
|
||||||
|
|
||||||
|
# Maximum number of notification (0 means no limit)
|
||||||
|
notification_limit = 20
|
||||||
|
|
||||||
|
### Progress bar ###
|
||||||
|
|
||||||
|
# Turn on the progess bar. It appears when a progress hint is passed with
|
||||||
|
# for example dunstify -h int:value:12
|
||||||
|
progress_bar = true
|
||||||
|
|
||||||
|
# Set the progress bar height. This includes the frame, so make sure
|
||||||
|
# it's at least twice as big as the frame width.
|
||||||
|
progress_bar_height = 10
|
||||||
|
|
||||||
|
# Set the frame width of the progress bar
|
||||||
|
progress_bar_frame_width = 1
|
||||||
|
|
||||||
|
# Set the minimum width for the progress bar
|
||||||
|
progress_bar_min_width = 150
|
||||||
|
|
||||||
|
# Set the maximum width for the progress bar
|
||||||
|
progress_bar_max_width = 300
|
||||||
|
|
||||||
|
# Corner radius for the progress bar. 0 disables rounded corners.
|
||||||
|
progress_bar_corner_radius = 10
|
||||||
|
|
||||||
|
# Corner radius for the icon image.
|
||||||
|
icon_corner_radius = 0
|
||||||
|
|
||||||
|
# Show how many messages are currently hidden (because of
|
||||||
|
# notification_limit).
|
||||||
|
indicate_hidden = yes
|
||||||
|
|
||||||
|
# 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.). (X11 only)
|
||||||
|
transparency = 30
|
||||||
|
|
||||||
|
# Draw a line of "separator_height" pixel height between two
|
||||||
|
# notifications.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
# If gap_size is greater than 0, this setting will be ignored.
|
||||||
|
separator_height = 2
|
||||||
|
|
||||||
|
# Padding between text and separator.
|
||||||
|
padding = 8
|
||||||
|
|
||||||
|
# Horizontal padding.
|
||||||
|
horizontal_padding = 8
|
||||||
|
|
||||||
|
# Padding between text and icon.
|
||||||
|
text_icon_padding = 0
|
||||||
|
|
||||||
|
# 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 = "#ffffff"
|
||||||
|
|
||||||
|
# Size of gap to display between notifications - requires a compositor.
|
||||||
|
# If value is greater than 0, separator_height will be ignored and a border
|
||||||
|
# of size frame_width will be drawn around each notification instead.
|
||||||
|
# Click events on gaps do not currently propagate to applications below.
|
||||||
|
gap_size = 0
|
||||||
|
|
||||||
|
# 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 = "Fira Sans Semibold" 9
|
||||||
|
|
||||||
|
# The spacing between lines. If the height is smaller than the
|
||||||
|
# font height, it will get raised to the font height.
|
||||||
|
line_height = 1
|
||||||
|
|
||||||
|
# Possible values are:
|
||||||
|
# full: Allow a small subset of html markup in notifications:
|
||||||
|
# <b>bold</b>
|
||||||
|
# <i>italic</i>
|
||||||
|
# <s>strikethrough</s>
|
||||||
|
# <u>underline</u>
|
||||||
|
#
|
||||||
|
# For a complete reference see
|
||||||
|
# <https://docs.gtk.org/Pango/pango_markup.html>.
|
||||||
|
#
|
||||||
|
# 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 = "<b>%s</b>\n%b"
|
||||||
|
|
||||||
|
# Alignment of message text.
|
||||||
|
# Possible values are "left", "center" and "right".
|
||||||
|
alignment = left
|
||||||
|
|
||||||
|
# Vertical alignment of message text and icon.
|
||||||
|
# Possible values are "top", "center" and "bottom".
|
||||||
|
vertical_alignment = center
|
||||||
|
|
||||||
|
# Show age of message if message is older than show_age_threshold
|
||||||
|
# seconds.
|
||||||
|
# Set to -1 to disable.
|
||||||
|
show_age_threshold = 60
|
||||||
|
|
||||||
|
# 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 ###
|
||||||
|
|
||||||
|
# Recursive icon lookup. You can set a single theme, instead of having to
|
||||||
|
# define all lookup paths.
|
||||||
|
enable_recursive_icon_lookup = true
|
||||||
|
|
||||||
|
# Set icon theme (only used for recursive icon lookup)
|
||||||
|
icon_theme = "Papirus-Dark,Adwaita"
|
||||||
|
# You can also set multiple icon themes, with the leftmost one being used first.
|
||||||
|
# icon_theme = "Adwaita, breeze"
|
||||||
|
|
||||||
|
# Align icons left/right/top/off
|
||||||
|
icon_position = left
|
||||||
|
|
||||||
|
# Scale small icons up to this size, set to 0 to disable. Helpful
|
||||||
|
# for e.g. small files or high-dpi screens. In case of conflict,
|
||||||
|
# max_icon_size takes precedence over this.
|
||||||
|
min_icon_size = 32
|
||||||
|
|
||||||
|
# Scale larger icons down to this size, set to 0 to disable
|
||||||
|
max_icon_size = 128
|
||||||
|
|
||||||
|
# Paths to default icons (only neccesary when not using recursive icon lookup)
|
||||||
|
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
|
||||||
|
|
||||||
|
### 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/xdg-open
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# 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 = 10
|
||||||
|
|
||||||
|
# Ignore the dbus closeNotification message.
|
||||||
|
# Useful to enforce the timeout set by dunst configuration. Without this
|
||||||
|
# parameter, an application may close the notification sent before the
|
||||||
|
# user defined timeout.
|
||||||
|
ignore_dbusclose = false
|
||||||
|
|
||||||
|
### Wayland ###
|
||||||
|
# These settings are Wayland-specific. They have no effect when using X11
|
||||||
|
|
||||||
|
# Uncomment this if you want to let notications appear under fullscreen
|
||||||
|
# applications (default: overlay)
|
||||||
|
# layer = top
|
||||||
|
|
||||||
|
# Set this to true to use X11 output on Wayland.
|
||||||
|
force_xwayland = false
|
||||||
|
|
||||||
|
### 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 list of actions for each mouse event
|
||||||
|
# Possible values are:
|
||||||
|
# * none: Don't do anything.
|
||||||
|
# * do_action: Invoke the action determined by the action_name rule. If there is no
|
||||||
|
# such action, open the context menu.
|
||||||
|
# * open_url: If the notification has exactly one url, open it. If there are multiple
|
||||||
|
# ones, open the context menu.
|
||||||
|
# * close_current: Close current notification.
|
||||||
|
# * close_all: Close all notifications.
|
||||||
|
# * context: Open context menu for the notification.
|
||||||
|
# * context_all: Open context menu for all notifications.
|
||||||
|
# These values can be strung together for each mouse event, and
|
||||||
|
# will be executed in sequence.
|
||||||
|
mouse_left_click = close_current
|
||||||
|
mouse_middle_click = do_action, close_current
|
||||||
|
mouse_right_click = close_all
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
|
||||||
|
[urgency_low]
|
||||||
|
# IMPORTANT: colors have to be defined in quotation marks.
|
||||||
|
# Otherwise the "#" and following would be interpreted as a comment.
|
||||||
|
background = "#000000CC"
|
||||||
|
foreground = "#888888"
|
||||||
|
timeout = 6
|
||||||
|
# Icon for notifications with low urgency, uncomment to enable
|
||||||
|
#default_icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_normal]
|
||||||
|
background = "#000000CC"
|
||||||
|
foreground = "#ffffff"
|
||||||
|
timeout = 6
|
||||||
|
# Icon for notifications with normal urgency, uncomment to enable
|
||||||
|
#default_icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_critical]
|
||||||
|
background = "#900000CC"
|
||||||
|
foreground = "#ffffff"
|
||||||
|
frame_color = "#ffffff"
|
||||||
|
timeout = 6
|
||||||
|
# Icon for notifications with critical urgency, uncomment to enable
|
||||||
|
#default_icon = /path/to/icon
|
||||||
|
|
||||||
|
# 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
|
||||||
|
# foreground
|
||||||
|
# format
|
||||||
|
# frame_color
|
||||||
|
# fullscreen
|
||||||
|
# new_icon
|
||||||
|
# set_stack_tag
|
||||||
|
# set_transient
|
||||||
|
# set_category
|
||||||
|
# timeout
|
||||||
|
# urgency
|
||||||
|
# icon_position
|
||||||
|
# skip_display
|
||||||
|
# history_ignore
|
||||||
|
# action_name
|
||||||
|
# word_wrap
|
||||||
|
# ellipsize
|
||||||
|
# alignment
|
||||||
|
# hide_text
|
||||||
|
#
|
||||||
|
# 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: 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"
|
||||||
|
# skip_display = true
|
||||||
|
|
||||||
|
#[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
|
104
configs/dotfiles/hyprland/desktop/.config/fastfetch/config.jsonc
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
// Thanks to Bina
|
||||||
|
{
|
||||||
|
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||||
|
"logo": {
|
||||||
|
"padding": {
|
||||||
|
"top": 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"separator": " ➜ "
|
||||||
|
},
|
||||||
|
"modules": [
|
||||||
|
"break",
|
||||||
|
"break",
|
||||||
|
"break",
|
||||||
|
{
|
||||||
|
"type": "os",
|
||||||
|
"key": "OS ",
|
||||||
|
"keyColor": "31", // = color1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "kernel",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "31",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"key": " └ ",
|
||||||
|
"keyColor": "31",
|
||||||
|
},
|
||||||
|
"break",
|
||||||
|
{
|
||||||
|
"type": "wm",
|
||||||
|
"key": "WM ",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "wmtheme",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "icons",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cursor",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "terminal",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "terminalfont",
|
||||||
|
"key": " └ ",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
"break",
|
||||||
|
{
|
||||||
|
"type": "host",
|
||||||
|
"format": "{5} {1} Type {2}",
|
||||||
|
"key": "PC ",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cpu",
|
||||||
|
"format": "{1} ({3}) @ {7} GHz",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "gpu",
|
||||||
|
"format": "{1} {2} @ {12} GHz",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "memory",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "swap",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "disk",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "monitor",
|
||||||
|
"key": " └ ",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
"break",
|
||||||
|
"break",
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,125 @@
|
|||||||
|
# -----------------------------------------------------
|
||||||
|
# "Dynamic" (default)
|
||||||
|
# -----------------------------------------------------
|
||||||
|
animations {
|
||||||
|
enabled = true
|
||||||
|
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
|
||||||
|
animation = windows, 1, 6, wind, slide
|
||||||
|
animation = windowsIn, 1, 6, winIn, slide
|
||||||
|
animation = windowsOut, 1, 5, winOut, slide
|
||||||
|
animation = windowsMove, 1, 5, wind, slide
|
||||||
|
animation = border, 1, 1, liner
|
||||||
|
animation = borderangle, 1, 30, liner, once
|
||||||
|
animation = fade, 1, 10, default
|
||||||
|
animation = workspaces, 1, 5, wind
|
||||||
|
}
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# "Disabled"
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#animations {
|
||||||
|
#enabled = false
|
||||||
|
#}
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# "Standard"
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#animations {
|
||||||
|
#enabled = true
|
||||||
|
#bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||||
|
#animation = windows, 1, 7, myBezier
|
||||||
|
#animation = windowsOut, 1, 7, default, popin 80%
|
||||||
|
#animation = border, 1, 10, default
|
||||||
|
#animation = borderangle, 1, 8, default
|
||||||
|
#animation = fade, 1, 7, default
|
||||||
|
#animation = workspaces, 1, 6, default
|
||||||
|
#}
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# "Dynamic"
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#animations {
|
||||||
|
#enabled = true
|
||||||
|
#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
|
||||||
|
#animation = windows, 1, 6, wind, slide
|
||||||
|
#animation = windowsIn, 1, 6, winIn, slide
|
||||||
|
#animation = windowsOut, 1, 5, winOut, slide
|
||||||
|
#animation = windowsMove, 1, 5, wind, slide
|
||||||
|
#animation = border, 1, 1, liner
|
||||||
|
#animation = borderangle, 1, 30, liner, loop
|
||||||
|
#animation = fade, 1, 10, default
|
||||||
|
#animation = workspaces, 1, 5, wind
|
||||||
|
#}
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# "Classic"
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#animations {
|
||||||
|
#enabled = true
|
||||||
|
#bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||||
|
#animation = windows, 1, 7, myBezier
|
||||||
|
#animation = windowsOut, 1, 7, default, popin 80%
|
||||||
|
#animation = border, 1, 10, default
|
||||||
|
#animation = borderangle, 1, 8, default
|
||||||
|
#animation = fade, 1, 7, default
|
||||||
|
#animation = workspaces, 1, 6, default
|
||||||
|
#}
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# "Fast"
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#animations {
|
||||||
|
#enabled = true
|
||||||
|
#bezier = linear, 0, 0, 1, 1
|
||||||
|
#bezier = md3_standard, 0.2, 0, 0, 1
|
||||||
|
#bezier = md3_decel, 0.05, 0.7, 0.1, 1
|
||||||
|
#bezier = md3_accel, 0.3, 0, 0.8, 0.15
|
||||||
|
#bezier = overshot, 0.05, 0.9, 0.1, 1.1
|
||||||
|
#bezier = crazyshot, 0.1, 1.5, 0.76, 0.92
|
||||||
|
#bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
|
||||||
|
#bezier = fluent_decel, 0.1, 1, 0, 1
|
||||||
|
#bezier = easeInOutCirc, 0.85, 0, 0.15, 1
|
||||||
|
#bezier = easeOutCirc, 0, 0.55, 0.45, 1
|
||||||
|
#bezier = easeOutExpo, 0.16, 1, 0.3, 1
|
||||||
|
#animation = windows, 1, 3, md3_decel, popin 60%
|
||||||
|
#animation = border, 1, 10, default
|
||||||
|
#animation = fade, 1, 2.5, md3_decel
|
||||||
|
#animation = workspaces, 1, 3.5, easeOutExpo, slide
|
||||||
|
#animation = specialWorkspace, 1, 3, md3_decel, slidevert
|
||||||
|
#}
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# "High"
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#animations {
|
||||||
|
#enabled = true
|
||||||
|
#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
|
||||||
|
#animation = windows, 1, 6, wind, slide
|
||||||
|
#animation = windowsIn, 1, 6, winIn, slide
|
||||||
|
#animation = windowsOut, 1, 5, winOut, slide
|
||||||
|
#animation = windowsMove, 1, 5, wind, slide
|
||||||
|
#animation = border, 1, 1, liner
|
||||||
|
#animation = borderangle, 1, 30, liner, loop
|
||||||
|
#animation = fade, 1, 10, default
|
||||||
|
#animation = workspaces, 1, 5, wind
|
||||||
|
#}
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# "Moving"
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#animations {
|
||||||
|
#enabled = true
|
||||||
|
#bezier = overshot, 0.05, 0.9, 0.1, 1.05
|
||||||
|
#bezier = smoothOut, 0.5, 0, 0.99, 0.99
|
||||||
|
#bezier = smoothIn, 0.5, -0.5, 0.68, 1.5
|
||||||
|
#animation = windows, 1, 5, overshot, slide
|
||||||
|
#animation = windowsOut, 1, 3, smoothOut
|
||||||
|
#animation = windowsIn, 1, 3, smoothOut
|
||||||
|
#animation = windowsMove, 1, 4, smoothIn, slide
|
||||||
|
#animation = border, 1, 5, default
|
||||||
|
#animation = fade, 1, 5, smoothIn
|
||||||
|
#animation = fadeDim, 1, 5, smoothIn
|
||||||
|
#animation = workspaces, 1, 6, default
|
||||||
|
#}
|
@ -0,0 +1,48 @@
|
|||||||
|
# ___ __ __ __
|
||||||
|
# / _ |__ __/ /____ ___ / /____ _____/ /_
|
||||||
|
# / __ / // / __/ _ \(_-</ __/ _ `/ __/ __/
|
||||||
|
# /_/ |_\_,_/\__/\___/___/\__/\_,_/_/ \__/
|
||||||
|
#
|
||||||
|
|
||||||
|
# Setup XDG for screen sharing and start waypaper and waybar
|
||||||
|
exec-once = ~/.config/hypr/scripts/xdg.sh
|
||||||
|
|
||||||
|
# Load Wallpaper
|
||||||
|
exec-once = ~/.config/hypr/scripts/wallpaper-restore.sh
|
||||||
|
|
||||||
|
# Start Polkit
|
||||||
|
exec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||||
|
|
||||||
|
# Load Notification Daemon
|
||||||
|
exec-once = ~/.config/ml4w/settings/notification.sh
|
||||||
|
|
||||||
|
# Load GTK settings
|
||||||
|
exec-once = ~/.config/hypr/scripts/gtk.sh
|
||||||
|
|
||||||
|
# Using hypridle to start hyprlock
|
||||||
|
exec-once = hypridle
|
||||||
|
|
||||||
|
# Load cliphist history
|
||||||
|
exec-once = wl-paste --watch cliphist store
|
||||||
|
|
||||||
|
# Autostart ML4W App
|
||||||
|
exec-once = ~/.config/ml4w/scripts/ml4w-autostart.sh
|
||||||
|
|
||||||
|
# Start ags
|
||||||
|
exec-once = ~/.config/ml4w/scripts/ags.sh
|
||||||
|
|
||||||
|
# Start autostart cleanup
|
||||||
|
exec-once = ~/.config/hypr/scripts/cleanup.sh
|
||||||
|
|
||||||
|
# Load configuration from ML4W Hyprland Settings App
|
||||||
|
exec = ~/.config/ml4w-hyprland-settings/hyprctl.sh
|
||||||
|
|
||||||
|
# Dock
|
||||||
|
exec-once = ~/.config/nwg-dock-hyprland/launch.sh
|
||||||
|
|
||||||
|
# Apps
|
||||||
|
exec-once = nextcloud --background
|
||||||
|
exec-once = bitwarden
|
||||||
|
exec-once = startsunshine
|
||||||
|
exec-once = /home/gib/.local/share/JetBrains/Toolbox/bin/jetbrains-toolbox --minimize
|
||||||
|
exec-once = flatpak run app.bluebubbles.BlueBubbles minimized
|
@ -0,0 +1,24 @@
|
|||||||
|
# Add your additional Hyprland configurations here
|
||||||
|
#
|
||||||
|
# This is an additional key binding
|
||||||
|
# bind = $mainMod CTRL, up, workspace, empty
|
||||||
|
#
|
||||||
|
# Example for xwayland
|
||||||
|
# xwayland {
|
||||||
|
# force_zero_scaling = true
|
||||||
|
# }
|
||||||
|
|
||||||
|
# qt5ct environment variable
|
||||||
|
# env = QT_QPA_PLATFORMTHEME,qt5ct
|
||||||
|
|
||||||
|
# SDL version
|
||||||
|
env = SDL_VIDEODRIVER,wayland
|
||||||
|
# env = SDL_VIDEODRIVER,x11
|
||||||
|
|
||||||
|
# No Hardware Cursor
|
||||||
|
# cursor {
|
||||||
|
# no_hardware_cursors = false
|
||||||
|
# }
|
||||||
|
|
||||||
|
# Blur for waybar
|
||||||
|
#layerrule = blur, waybar
|
@ -0,0 +1,168 @@
|
|||||||
|
# -----------------------------------------------------
|
||||||
|
# Default
|
||||||
|
# -----------------------------------------------------
|
||||||
|
decoration {
|
||||||
|
rounding = 10
|
||||||
|
active_opacity = 1.0
|
||||||
|
inactive_opacity = 0.8
|
||||||
|
fullscreen_opacity = 1.0
|
||||||
|
blur {
|
||||||
|
enabled = true
|
||||||
|
size = 6
|
||||||
|
passes = 2
|
||||||
|
new_optimizations = on
|
||||||
|
ignore_opacity = true
|
||||||
|
xray = true
|
||||||
|
# blurls = waybar
|
||||||
|
}
|
||||||
|
shadow {
|
||||||
|
enabled = true
|
||||||
|
range = 30
|
||||||
|
render_power = 3
|
||||||
|
color = 0x66000000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Rounding
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#decoration {
|
||||||
|
#rounding = 10
|
||||||
|
#active_opacity = 1.0
|
||||||
|
#inactive_opacity = 0.8
|
||||||
|
#fullscreen_opacity = 1.0
|
||||||
|
#blur {
|
||||||
|
#enabled = true
|
||||||
|
#size = 6
|
||||||
|
#passes = 2
|
||||||
|
#new_optimizations = on
|
||||||
|
#ignore_opacity = true
|
||||||
|
#xray = true
|
||||||
|
## blurls = waybar
|
||||||
|
#}
|
||||||
|
#shadow {
|
||||||
|
#enabled = true
|
||||||
|
#range = 30
|
||||||
|
#render_power = 3
|
||||||
|
#color = 0x66000000
|
||||||
|
#}
|
||||||
|
#}
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Rounding All Blur
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#decoration {
|
||||||
|
#rounding = 10
|
||||||
|
#active_opacity = 0.9
|
||||||
|
#inactive_opacity = 0.6
|
||||||
|
#fullscreen_opacity = 0.9
|
||||||
|
#blur {
|
||||||
|
#enabled = true
|
||||||
|
#size = 12
|
||||||
|
#passes = 4
|
||||||
|
#new_optimizations = on
|
||||||
|
#ignore_opacity = true
|
||||||
|
#xray = true
|
||||||
|
#blurls = waybar
|
||||||
|
#}
|
||||||
|
#shadow {
|
||||||
|
#enabled = true
|
||||||
|
#range = 30
|
||||||
|
#render_power = 3
|
||||||
|
#color = 0x66000000
|
||||||
|
#}
|
||||||
|
#}
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Rounding, All Blur No Shadows
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#decoration {
|
||||||
|
#rounding = 10
|
||||||
|
#active_opacity = 0.9
|
||||||
|
#inactive_opacity = 0.6
|
||||||
|
#fullscreen_opacity = 0.9
|
||||||
|
#blur {
|
||||||
|
#enabled = true
|
||||||
|
#size = 12
|
||||||
|
#passes = 4
|
||||||
|
#new_optimizations = on
|
||||||
|
#ignore_opacity = true
|
||||||
|
#xray = true
|
||||||
|
#blurls = waybar
|
||||||
|
#}
|
||||||
|
#shadow {
|
||||||
|
#enabled = false
|
||||||
|
#range = 30
|
||||||
|
#render_power = 3
|
||||||
|
#color = 0x66000000
|
||||||
|
#}
|
||||||
|
#}
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Rounding, More Blur
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#decoration {
|
||||||
|
#rounding = 10
|
||||||
|
#active_opacity = 1.0
|
||||||
|
#inactive_opacity = 0.6
|
||||||
|
#fullscreen_opacity = 1.0
|
||||||
|
#blur {
|
||||||
|
#enabled = true
|
||||||
|
#size = 12
|
||||||
|
#passes = 6
|
||||||
|
#new_optimizations = on
|
||||||
|
#ignore_opacity = true
|
||||||
|
#xray = true
|
||||||
|
## blurls = waybar
|
||||||
|
#}
|
||||||
|
#shadow {
|
||||||
|
#enabled = true
|
||||||
|
#range = 30
|
||||||
|
#render_power = 3
|
||||||
|
#color = 0x66000000
|
||||||
|
#}
|
||||||
|
#}
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# No Rounding
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#decoration {
|
||||||
|
#rounding = 0
|
||||||
|
#active_opacity = 1.0
|
||||||
|
#inactive_opacity = 0.8
|
||||||
|
#fullscreen_opacity = 1.0
|
||||||
|
#blur {
|
||||||
|
#enabled = true
|
||||||
|
#size = 6
|
||||||
|
#passes = 2
|
||||||
|
#new_optimizations = on
|
||||||
|
#ignore_opacity = true
|
||||||
|
#xray = true
|
||||||
|
## blurls = waybar
|
||||||
|
#}
|
||||||
|
#shadow {
|
||||||
|
#enabled = true
|
||||||
|
#range = 30
|
||||||
|
#render_power = 3
|
||||||
|
#color = 0x66000000
|
||||||
|
#}
|
||||||
|
#}
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# No Rounding, More Blur
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#decoration {
|
||||||
|
#rounding = 0
|
||||||
|
#active_opacity = 1.0
|
||||||
|
#inactive_opacity = 0.6
|
||||||
|
#fullscreen_opacity = 1.0
|
||||||
|
#blur {
|
||||||
|
#enabled = true
|
||||||
|
#size = 12
|
||||||
|
#passes = 6
|
||||||
|
#new_optimizations = on
|
||||||
|
#ignore_opacity = true
|
||||||
|
#xray = true
|
||||||
|
## blurls = waybar
|
||||||
|
#}
|
||||||
|
#shadow {
|
||||||
|
#enabled = true
|
||||||
|
#range = 30
|
||||||
|
#render_power = 3
|
||||||
|
#color = 0x66000000
|
||||||
|
#}
|
||||||
|
#}
|
@ -0,0 +1,122 @@
|
|||||||
|
# -----------------------------------------------------
|
||||||
|
# Keybingings
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# SUPER KEY
|
||||||
|
# -----------------------------------------------------
|
||||||
|
$mainMod = SUPER
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# VARIABLES
|
||||||
|
# -----------------------------------------------------
|
||||||
|
$HYPRSCRIPTS = ~/.config/hypr/scripts
|
||||||
|
$SCRIPTS = ~/.config/ml4w/scripts
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# DEFAULT APPLICATIONS
|
||||||
|
# -----------------------------------------------------
|
||||||
|
$terminal = kitty
|
||||||
|
$fileManager = nautilus
|
||||||
|
$browser = firefox
|
||||||
|
$menu = pkill rofi || rofi -show drun -replace
|
||||||
|
$calculator = gnome-calculator
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# DEFAULT COMMANDS
|
||||||
|
# -----------------------------------------------------
|
||||||
|
$quitwindow = killactive
|
||||||
|
$forcequit = hyprctl activewindow | grep pid | tr -d 'pid:' | xargs kill
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# DEFAULT APPLICATION BINDINGS
|
||||||
|
# -----------------------------------------------------
|
||||||
|
bind = $mainMod, T, exec, $terminal
|
||||||
|
bind = $mainMod, W, exec, $browser
|
||||||
|
bind = $mainMod, F, exec, $fileManager
|
||||||
|
bind = $mainMod, C, exec, $calculator
|
||||||
|
bind = $mainMod, D, exec, $menu
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# DEFAULT WINDOW BINDINGS
|
||||||
|
# -----------------------------------------------------
|
||||||
|
bind = $mainMod, Q, $quitwindow
|
||||||
|
bind = $mainMod SHIFT, Q, exec, $forcequit
|
||||||
|
bind = $mainMod, M, fullscreen, 1
|
||||||
|
bind = $mainMod SHIFT, M, fullscreen, 0
|
||||||
|
bind = $mainMod, E, togglefloating
|
||||||
|
bind = $mainMod SHIFT, E, exec, $HYPRSCRIPTS/toggleallfloat.sh
|
||||||
|
bind = $mainMod, X, togglesplit
|
||||||
|
bind = $mainMod, Z, swapsplit
|
||||||
|
bind = $mainMod, H, movefocus, l
|
||||||
|
bind = $mainMod, L, movefocus, r
|
||||||
|
bind = $mainMod, K, movefocus, u
|
||||||
|
bind = $mainMod, J, movefocus, d
|
||||||
|
bindm = $mainMod, mouse:272, movewindow
|
||||||
|
bindm = $mainMod, mouse:273, resizewindow
|
||||||
|
bind = $mainMod CTRL, L, resizeactive, 100 0
|
||||||
|
bind = $mainMod CTRL, H, resizeactive, -100 0
|
||||||
|
bind = $mainMod CTRL, J, resizeactive, 0 100
|
||||||
|
bind = $mainMod CTRL, K, resizeactive, 0 -100
|
||||||
|
bind = $mainMod, G, togglegroup
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# ACTIONS
|
||||||
|
# -----------------------------------------------------
|
||||||
|
bind = $mainMod SHIFT, A, exec, $HYPRSCRIPTS/toggle-animations.sh
|
||||||
|
bind = $mainMod, PRINT, exec, $HYPRSCRIPTS/screenshot.sh
|
||||||
|
bind = $mainMod SHIFT, S, exec, $HYPRSCRIPTS/screenshot.sh
|
||||||
|
bind = $mainMod CTRL, Q, exec, ~/.config/ml4w/scripts/wlogout.sh
|
||||||
|
bind = $mainMod SHIFT, W, exec, waypaper --random
|
||||||
|
bind = $mainMod CTRL, W, exec, waypaper
|
||||||
|
bind = $mainMod ALT, W, exec, $HYPERSCRIPTS/wallpaper-automation.sh
|
||||||
|
bind = $mainMod SHIFT, R, exec, $HYPRSCRIPTS/loadconfig.sh
|
||||||
|
bind = $mainMod, V, exec, $SCRIPTS/cliphist.sh
|
||||||
|
bind = $mainMod SHIFT, B, exec, ~/.config/waybar/launch.sh
|
||||||
|
bind = $mainMod CTRL, B, exec, ~/.config/waybar/toggle.sh
|
||||||
|
bind = $mainMod CTRL, T, exec, ~/.config/waybar/themeswitcher.sh
|
||||||
|
bind = $mainMod CTRL, S, exec, ~/.config/ml4w/apps/ML4W_Dotfiles_Settings-x86_64.AppImage
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# WORKSPACES
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Move to workspace from left to right
|
||||||
|
bind = $mainMod, mouse_down, workspace, e+1
|
||||||
|
bind = $mainMod, mouse_up, workspace,
|
||||||
|
bind = $mainMod CTRL, down, workspace, empty
|
||||||
|
# Open workspace by number
|
||||||
|
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
|
||||||
|
# Move active window to workspace from left to right
|
||||||
|
bind = $mainMod SHIFT, H, movetoworkspace, -1
|
||||||
|
bind = $mainMod SHIFT, L, movetoworkspace, +1
|
||||||
|
# Move active window to workspace by number
|
||||||
|
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||||
|
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||||
|
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||||
|
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||||
|
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||||
|
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Fn Keys
|
||||||
|
# -----------------------------------------------------
|
||||||
|
bind = , XF86MonBrightnessUp, exec, brightnessctl -q s +10%
|
||||||
|
bind = , XF86MonBrightnessDown, exec, brightnessctl -q s 10%-
|
||||||
|
bind = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%
|
||||||
|
bind = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%
|
||||||
|
bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||||
|
bind = , XF86AudioPlay, exec, playerctl play-pause
|
||||||
|
bind = , XF86AudioPause, exec, playerctl pause
|
||||||
|
bind = , XF86AudioNext, exec, playerctl next
|
||||||
|
bind = , XF86AudioPrev, exec, playerctl previous
|
||||||
|
bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||||
|
bind = , XF86Calculator, exec, $calculator
|
||||||
|
bind = , XF86Lock, exec, hyprlock
|
||||||
|
|
||||||
|
bind = , code:238, exec, brightnessctl -d smc::kbd_backlight s +10
|
||||||
|
bind = , code:237, exec, brightnessctl -d smc::kbd_backlight s 10-
|
@ -0,0 +1,35 @@
|
|||||||
|
# -----------------------------------------------------
|
||||||
|
# Keyboard Layout
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||||
|
# -----------------------------------------------------
|
||||||
|
input {
|
||||||
|
kb_layout = us
|
||||||
|
kb_variant =
|
||||||
|
kb_model =
|
||||||
|
kb_options =
|
||||||
|
numlock_by_default = true
|
||||||
|
mouse_refocus = false
|
||||||
|
|
||||||
|
# For United States
|
||||||
|
# kb_layout = us
|
||||||
|
# kb_variant = intl
|
||||||
|
# kb_model = pc105
|
||||||
|
# kb_options =
|
||||||
|
|
||||||
|
follow_mouse = 1
|
||||||
|
touchpad {
|
||||||
|
# for desktop
|
||||||
|
natural_scroll = false
|
||||||
|
|
||||||
|
# for laptop
|
||||||
|
# natural_scroll = yes
|
||||||
|
# middle_button_emulation = true
|
||||||
|
# clickfinger_behavior = false
|
||||||
|
scroll_factor = 1.0 # Touchpad scroll factor
|
||||||
|
}
|
||||||
|
sensitivity = 0 # Pointer speed: -1.0 - 1.0, 0 means no modification.
|
||||||
|
}
|
||||||
|
|
||||||
|
gestures {
|
||||||
|
workspace_swipe = true
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
# -----------------------------------------------------
|
||||||
|
# Default
|
||||||
|
# -----------------------------------------------------
|
||||||
|
dwindle {
|
||||||
|
pseudotile = true
|
||||||
|
preserve_split = true
|
||||||
|
}
|
||||||
|
master {
|
||||||
|
# Commented out due to compatibility reasons
|
||||||
|
# new_status = master
|
||||||
|
}
|
||||||
|
gestures {
|
||||||
|
workspace_swipe = false
|
||||||
|
}
|
||||||
|
binds {
|
||||||
|
workspace_back_and_forth = true
|
||||||
|
allow_workspace_cycles = true
|
||||||
|
pass_mouse_when_bound = false
|
||||||
|
}
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Laptop
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#dwindle {
|
||||||
|
#pseudotile = true
|
||||||
|
#preserve_split = true
|
||||||
|
#}
|
||||||
|
#master {
|
||||||
|
## Commented out due to compatibility reasons
|
||||||
|
## new_status = master
|
||||||
|
#}
|
||||||
|
#gestures {
|
||||||
|
#workspace_swipe = true
|
||||||
|
#workspace_swipe_fingers = 3
|
||||||
|
#workspace_swipe_distance = 500
|
||||||
|
#workspace_swipe_invert = true
|
||||||
|
#workspace_swipe_min_speed_to_force = 30
|
||||||
|
#workspace_swipe_cancel_ratio = 0.5
|
||||||
|
#workspace_swipe_create_new = true
|
||||||
|
#workspace_swipe_forever = true
|
||||||
|
#}
|
||||||
|
#binds {
|
||||||
|
#workspace_back_and_forth = true
|
||||||
|
#allow_workspace_cycles = true
|
||||||
|
#pass_mouse_when_bound = false
|
||||||
|
#}
|
@ -0,0 +1,8 @@
|
|||||||
|
# -----------------------------------------------------
|
||||||
|
# Misc settings
|
||||||
|
# -----------------------------------------------------
|
||||||
|
misc {
|
||||||
|
disable_hyprland_logo = true
|
||||||
|
disable_splash_rendering = true
|
||||||
|
initial_workspace_tracking = 1
|
||||||
|
}
|
124
configs/dotfiles/hyprland/desktop/.config/hypr/conf/ml4w.conf
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
# __ _____ _____ __ _____ ___
|
||||||
|
# / |/ / / / / / | /| / / / ___/__ ___ / _/
|
||||||
|
# / /|_/ / /_/_ _/ |/ |/ / / /__/ _ \/ _ \/ _/
|
||||||
|
# /_/ /_/____//_/ |__/|__/ \___/\___/_//_/_/
|
||||||
|
#
|
||||||
|
|
||||||
|
# Pavucontrol floating
|
||||||
|
windowrulev2 = float,class:(.*org.pulseaudio.pavucontrol.*)
|
||||||
|
windowrulev2 = size 700 600,class:(.*org.pulseaudio.pavucontrol.*)
|
||||||
|
windowrulev2 = center,class:(.*org.pulseaudio.pavucontrol.*)
|
||||||
|
windowrulev2 = pin,class:(.*org.pulseaudio.pavucontrol.*)
|
||||||
|
|
||||||
|
# OpenAI ChatGPT floating
|
||||||
|
windowrulev2 = float,title:(ChatGPT.*)
|
||||||
|
windowrulev2 = float,title:(.*chat.gibbyb.com.*)
|
||||||
|
windowrulev2 = size 500 50%,title:(.*chat.gibbyb.com.*)
|
||||||
|
windowrulev2 = move 20 70,title:(.*chat.gibbyb.com.*)
|
||||||
|
|
||||||
|
# ML4W Welcome App floating
|
||||||
|
windowrulev2 = float,class:(.*waypaper.*)
|
||||||
|
windowrulev2 = size 900 700,class:(.*waypaper.*)
|
||||||
|
windowrulev2 = center,class:(.*waypaper.*)
|
||||||
|
windowrulev2 = pin,class:(.*waypaper.*)
|
||||||
|
|
||||||
|
# ML4W Welcome App floating
|
||||||
|
windowrulev2 = float,class:(com.ml4w.welcome)
|
||||||
|
windowrulev2 = size 700 600,class:(com.ml4w.welcome)
|
||||||
|
windowrulev2 = center,class:(com.ml4w.welcome)
|
||||||
|
windowrulev2 = pin,class:(com.ml4w.welcome)
|
||||||
|
|
||||||
|
windowrulev2 = float,class:(ml4w-welcome.py)
|
||||||
|
windowrulev2 = size 400 500,class:(ml4w-welcome.py)
|
||||||
|
windowrulev2 = center,class:(ml4w-welcome.py)
|
||||||
|
windowrulev2 = pin,class:(ml4w-welcome.py)
|
||||||
|
|
||||||
|
# ML4W Settings App floating
|
||||||
|
windowrulev2 = float,class:(com.ml4w.dotfilessettings)
|
||||||
|
windowrulev2 = size 700 600,class:(com.ml4w.dotfilessettings)
|
||||||
|
windowrulev2 = move 10% 20%,class:(com.ml4w.dotfilessettings)
|
||||||
|
windowrulev2 = pin,class:(com.ml4w.dotfilessettings)
|
||||||
|
|
||||||
|
windowrulev2 = float,class:(ml4w-dotfiles-settings.py)
|
||||||
|
windowrulev2 = size 400 500,class:(ml4w-dotfiles-settings.py)
|
||||||
|
windowrulev2 = move 10% 20%,class:(ml4w-dotfiles-settings.py)
|
||||||
|
windowrulev2 = pin,class:(ml4w-dotfiles-settings.py)
|
||||||
|
|
||||||
|
# ML4W Hyprland App floating
|
||||||
|
windowrulev2 = float,class:(com.ml4w.hyprland.settings)
|
||||||
|
windowrulev2 = size 700 600,class:(com.ml4w.hyprland.settings)
|
||||||
|
windowrulev2 = center,class:(com.ml4w.hyprland.settings)
|
||||||
|
windowrulev2 = pin,class:(com.ml4w.hyprland.settings)
|
||||||
|
|
||||||
|
windowrulev2 = float,class:(ml4w-hyprland-settings.py)
|
||||||
|
windowrulev2 = size 700 600,class:(ml4w-hyprland-settings.py)
|
||||||
|
windowrulev2 = center,class:(ml4w-hyprland-settings.py)
|
||||||
|
windowrulev2 = pin,class:(ml4w-hyprland-settings.py)
|
||||||
|
|
||||||
|
# System Mission Center
|
||||||
|
windowrulev2 = float, class:(io.missioncenter.MissionCenter)
|
||||||
|
windowrulev2 = pin, class:(io.missioncenter.MissionCenter)
|
||||||
|
windowrulev2 = center, class:(io.missioncenter.MissionCenter)
|
||||||
|
windowrulev2 = size 900 600, class:(io.missioncenter.MissionCenter)
|
||||||
|
|
||||||
|
# System Mission Center Preference Window
|
||||||
|
windowrulev2 = float, class:(missioncenter), title:^(Preferences)$
|
||||||
|
windowrulev2 = pin, class:(missioncenter), title:^(Preferences)$
|
||||||
|
windowrulev2 = center, class:(missioncenter), title:^(Preferences)$
|
||||||
|
|
||||||
|
# Gnome Calculator
|
||||||
|
windowrulev2 = float,class:(org.gnome.Calculator)
|
||||||
|
windowrulev2 = size 700 600,class:(org.gnome.Calculator)
|
||||||
|
windowrulev2 = center,class:(org.gnome.Calculator)
|
||||||
|
|
||||||
|
# Emoji Picker Smile
|
||||||
|
windowrulev2 = float,class:(it.mijorus.smile)
|
||||||
|
windowrulev2 = pin, class:(it.mijorus.smile)
|
||||||
|
windowrulev2 = move 100%-w-40 90,class:(it.mijorus.smile)
|
||||||
|
|
||||||
|
# Hyprland Share Picker
|
||||||
|
windowrulev2 = float, class:(hyprland-share-picker)
|
||||||
|
windowrulev2 = pin, class:(hyprland-share-picker)
|
||||||
|
windowrulev2 = center, title:class:(hyprland-share-picker)
|
||||||
|
windowrulev2 = size 600 400,class:(hyprland-share-picker)
|
||||||
|
|
||||||
|
# General floating
|
||||||
|
windowrulev2 = float,class:(dotfiles-floating)
|
||||||
|
windowrulev2 = size 1000 700,class:(dotfiles-floating)
|
||||||
|
windowrulev2 = center,class:(dotfiles-floating)
|
||||||
|
windowrulev2 = pin, class:(dotfiles-floating)
|
||||||
|
|
||||||
|
# XDG Desktop Portal
|
||||||
|
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||||
|
env = XDG_SESSION_TYPE,wayland
|
||||||
|
env = XDG_SESSION_DESKTOP,Hyprland
|
||||||
|
|
||||||
|
# QT
|
||||||
|
env = QT_QPA_PLATFORM,wayland;xcb
|
||||||
|
env = QT_QPA_PLATFORMTHEME,qt6ct
|
||||||
|
env = QT_QPA_PLATFORMTHEME,qt5ct
|
||||||
|
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
|
||||||
|
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
|
||||||
|
|
||||||
|
# GDK
|
||||||
|
env = GDK_SCALE,1
|
||||||
|
|
||||||
|
# Toolkit Backend
|
||||||
|
env = GDK_BACKEND,wayland,x11,*
|
||||||
|
env = CLUTTER_BACKEND,wayland
|
||||||
|
|
||||||
|
# Mozilla
|
||||||
|
env = MOZ_ENABLE_WAYLAND,1
|
||||||
|
|
||||||
|
# Set the cursor size for xcursor
|
||||||
|
env = XCURSOR_SIZE,24
|
||||||
|
|
||||||
|
# Disable appimage launcher by default
|
||||||
|
env = APPIMAGELAUNCHER_DISABLE,1
|
||||||
|
|
||||||
|
# Ozone
|
||||||
|
env = OZONE_PLATFORM,wayland
|
||||||
|
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
|
||||||
|
|
||||||
|
# Python
|
||||||
|
# env = PYTHONPATH,/usr/lib/python3.12/site-packages:/usr/lib/python3.13/site-packages:$PYTHONPATH
|
@ -0,0 +1,20 @@
|
|||||||
|
# -----------------------------------------------------
|
||||||
|
# NVIDIA Environment Variables
|
||||||
|
# https://wiki.hyprland.org/Nvidia/
|
||||||
|
# -----------------------------------------------------
|
||||||
|
env = GBM_BACKEND,nvidia-drm
|
||||||
|
env = LIBVA_DRIVER_NAME,nvidia
|
||||||
|
env = SDL_VIDEODRIVER,wayland
|
||||||
|
env = WLR_DRM_NO_ATOMIC,1
|
||||||
|
env = __GL_VRR_ALLOWED,1
|
||||||
|
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||||
|
env = __NV_PRIME_RENDER_OFFLOAD,1
|
||||||
|
env = __VK_LAYER_NV_optimus,NVIDIA_only
|
||||||
|
# FOR VM and POSSIBLY NVIDIA
|
||||||
|
env = WLR_NO_HARDWARE_CURSORS,1 # On hyprland >v0.41, now configured on variable cursor section
|
||||||
|
env = WLR_RENDERER_ALLOW_SOFTWARE,1
|
||||||
|
# nvidia firefox (for hardware acceleration on FF)?
|
||||||
|
# check this post https://github.com/elFarto/nvidia-vaapi-driver#configuration
|
||||||
|
env = MOZ_DISABLE_RDD_SANDBOX,1
|
||||||
|
env = EGL_PLATFORM,wayland
|
||||||
|
env = ELECTRON_OZONE_PLATFORM_HINT,auto
|
@ -0,0 +1,49 @@
|
|||||||
|
# -----------------------------------------------------
|
||||||
|
# Default
|
||||||
|
# -----------------------------------------------------
|
||||||
|
general {
|
||||||
|
gaps_in = 10
|
||||||
|
gaps_out = 14
|
||||||
|
border_size = 3
|
||||||
|
col.active_border = $color11
|
||||||
|
col.inactive_border = rgba(ffffffff)
|
||||||
|
layout = dwindle
|
||||||
|
resize_on_border = true
|
||||||
|
}
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# No Border
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#general {
|
||||||
|
#gaps_in = 10
|
||||||
|
#gaps_out = 14
|
||||||
|
#border_size = 0
|
||||||
|
#col.active_border = $color11
|
||||||
|
#col.inactive_border = rgba(ffffffff)
|
||||||
|
#layout = dwindle
|
||||||
|
#resize_on_border = true
|
||||||
|
#}
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Border 1
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#general {
|
||||||
|
#gaps_in = 10
|
||||||
|
#gaps_out = 14
|
||||||
|
#border_size = 1
|
||||||
|
#col.active_border = $color11
|
||||||
|
#col.inactive_border = rgba(ffffffff)
|
||||||
|
#layout = dwindle
|
||||||
|
#resize_on_border = true
|
||||||
|
#}
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Border 1 Reverse
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#general {
|
||||||
|
#gaps_in = 10
|
||||||
|
#gaps_out = 14
|
||||||
|
#border_size = 1
|
||||||
|
#col.active_border = rgba(ffffffff)
|
||||||
|
#col.inactive_border = $color11
|
||||||
|
#layout = dwindle
|
||||||
|
#resize_on_border = true
|
||||||
|
#}
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
|
@ -0,0 +1,2 @@
|
|||||||
|
magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
|
||||||
|
magick $used_wallpaper -blur "50x30" $used_wallpaper
|
@ -0,0 +1,2 @@
|
|||||||
|
magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
|
||||||
|
magick $used_wallpaper -brightness-contrast -60% $used_wallpaper
|
@ -0,0 +1,2 @@
|
|||||||
|
magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
|
||||||
|
magick $used_wallpaper -brightness-contrast -40% $used_wallpaper
|
@ -0,0 +1,2 @@
|
|||||||
|
magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
|
||||||
|
magick $used_wallpaper -brightness-contrast -20% $used_wallpaper
|
@ -0,0 +1 @@
|
|||||||
|
magick $wallpaper -blur "50x30" $used_wallpaper
|
@ -0,0 +1,2 @@
|
|||||||
|
magick $wallpaper -blur "50x30" $used_wallpaper
|
||||||
|
magick $used_wallpaper -brightness-contrast -60% $used_wallpaper
|
@ -0,0 +1,2 @@
|
|||||||
|
magick $wallpaper -blur "50x30" $used_wallpaper
|
||||||
|
magick $used_wallpaper -brightness-contrast -40% $used_wallpaper
|
@ -0,0 +1,2 @@
|
|||||||
|
magick $wallpaper -blur "50x30" $used_wallpaper
|
||||||
|
magick $used_wallpaper -brightness-contrast -20% $used_wallpaper
|
@ -0,0 +1 @@
|
|||||||
|
magick $wallpaper -blur "10x30" $used_wallpaper
|
@ -0,0 +1 @@
|
|||||||
|
magick $wallpaper -negate $used_wallpaper
|
@ -0,0 +1,2 @@
|
|||||||
|
magick $wallpaper -negate $used_wallpaper
|
||||||
|
magick $used_wallpaper -brightness-contrast -60% $used_wallpaper
|
@ -0,0 +1,2 @@
|
|||||||
|
magick $wallpaper -negate $used_wallpaper
|
||||||
|
magick $used_wallpaper -brightness-contrast -40% $used_wallpaper
|
@ -0,0 +1,2 @@
|
|||||||
|
magick $wallpaper -negate $used_wallpaper
|
||||||
|
magick $used_wallpaper -brightness-contrast -20% $used_wallpaper
|
47
configs/dotfiles/hyprland/desktop/.config/hypr/hypridle.conf
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# _ _ _ _
|
||||||
|
# | |__ _ _ _ __ _ __(_) __| | | ___
|
||||||
|
# | '_ \| | | | '_ \| '__| |/ _` | |/ _ \
|
||||||
|
# | | | | |_| | |_) | | | | (_| | | __/
|
||||||
|
# |_| |_|\__, | .__/|_| |_|\__,_|_|\___|
|
||||||
|
# |___/|_|
|
||||||
|
#
|
||||||
|
# Version 2.8.3
|
||||||
|
# DO NOT REMOVE THE REPLACEMENT COMMENTS
|
||||||
|
# REQUIRED BY THE ML4W SETTINGS APP
|
||||||
|
# https://wiki.hyprland.org/Hypr-Ecosystem/hypridle/
|
||||||
|
|
||||||
|
# general {
|
||||||
|
# ignore_dbus_inhibit = false
|
||||||
|
# }
|
||||||
|
|
||||||
|
general {
|
||||||
|
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
|
||||||
|
before_sleep_cmd = loginctl lock-session # lock before suspend.
|
||||||
|
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
|
||||||
|
}
|
||||||
|
|
||||||
|
# Screenlock
|
||||||
|
listener {
|
||||||
|
# HYPRLOCK TIMEOUT
|
||||||
|
timeout = 600
|
||||||
|
# HYPRLOCK ONTIMEOUT
|
||||||
|
on-timeout = loginctl lock-session
|
||||||
|
}
|
||||||
|
|
||||||
|
# dpms
|
||||||
|
listener {
|
||||||
|
# DPMS TIMEOUT
|
||||||
|
timeout = 660
|
||||||
|
# DPMS ONTIMEOUT
|
||||||
|
on-timeout = hyprctl dispatch dpms off
|
||||||
|
# DPMS ONRESUME
|
||||||
|
on-resume = hyprctl dispatch dpms on
|
||||||
|
}
|
||||||
|
|
||||||
|
# Suspend
|
||||||
|
listener {
|
||||||
|
# SUSPEND TIMEOUT
|
||||||
|
timeout = 1800
|
||||||
|
#SUSPEND ONTIMEOUT
|
||||||
|
on-timeout = systemctl suspend
|
||||||
|
}
|
125
configs/dotfiles/hyprland/desktop/.config/hypr/hyprland.conf
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
# -----------------------------------------------------
|
||||||
|
# | | | |Gib's _ __ _ __| | __ _ _ __ __| |
|
||||||
|
# | |_| | | | | '_ \| '__| |/ _` | '_ \ / _` |
|
||||||
|
# | _ | |_| | |_) | | | | (_| | | | | (_| |
|
||||||
|
# |_| |_|\__, | .__/|_| |_|\__,_|_| |_|\__,_|
|
||||||
|
# |___/|_| Config
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# MONITORS
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||||
|
# -----------------------------------------------------
|
||||||
|
monitor=DP-2,2560x1440@144,0x0,1
|
||||||
|
monitor=HDMI-1,3840x2160@75,2560x0,1.5
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# WORKSPACE RULES
|
||||||
|
# https://wiki.hyprland.org/Configuring/Workspace-Rules/
|
||||||
|
# -----------------------------------------------------
|
||||||
|
workspace = 1, monitor:DP-2, default:true
|
||||||
|
workspace = 2, monitor:HDMI-A-1, default:true
|
||||||
|
workspace = 3, monitor:DP-2
|
||||||
|
workspace = 4, monitor:HDMI-A-1
|
||||||
|
workspace = 5, monitor:DP-2
|
||||||
|
workspace = 6, monitor:HDMI-A-1
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# WINDOW RULES
|
||||||
|
# https://wiki.hyprland.org/Configuring/Window-Rules/
|
||||||
|
# -----------------------------------------------------
|
||||||
|
windowrule = tile,^(gnome-connections)$
|
||||||
|
windowrule = tile,^(jumpclient.exe)$
|
||||||
|
windowrule = tile,^(Microsoft-edge)$
|
||||||
|
windowrule = tile,^(kitty)$
|
||||||
|
windowrule = tile,^(firefox)$
|
||||||
|
windowrule = tile,^(Chromium)$
|
||||||
|
windowrule = float,^(Bitwarden)$
|
||||||
|
windowrule = float,^(Cider)$
|
||||||
|
windowrule = float,^(pavucontrol)$
|
||||||
|
windowrule = float,^(blueman-manager)$
|
||||||
|
windowrule = float,^(nm-connection-editor)$
|
||||||
|
windowrule = float,^(qalculate-gtk)$
|
||||||
|
# Browser Picture in Picture
|
||||||
|
windowrulev2 = float, title:^(Picture-in-Picture)$
|
||||||
|
windowrulev2 = pin, title:^(Picture-in-Picture)$
|
||||||
|
windowrulev2 = move 69.5% 4%, title:^(Picture-in-Picture)$
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# CURSOR
|
||||||
|
# -----------------------------------------------------
|
||||||
|
exec-once = hyprctl setcursor Bibata-Modern-Ice 24
|
||||||
|
|
||||||
|
cursor {
|
||||||
|
no_hardware_cursors = true
|
||||||
|
}
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# NVIDIA
|
||||||
|
# https://wiki.hyprland.org/Nvidia/
|
||||||
|
# -----------------------------------------------------
|
||||||
|
#source = ~/.config/hypr/conf/nvidia.conf
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# KEYBOARD
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||||
|
# -----------------------------------------------------
|
||||||
|
input {
|
||||||
|
kb_layout = us
|
||||||
|
kb_variant =
|
||||||
|
kb_model =
|
||||||
|
kb_options =
|
||||||
|
numlock_by_default = true
|
||||||
|
mouse_refocus = false
|
||||||
|
follow_mouse = 1
|
||||||
|
touchpad {
|
||||||
|
# FOR DESKTOP/MOUSE
|
||||||
|
natural_scroll = false
|
||||||
|
# FOR LAPTOP/TOUCHPAD
|
||||||
|
# natural_scroll = yes
|
||||||
|
# middle_button_emulation = true
|
||||||
|
# clickfinger_behavior = false
|
||||||
|
scroll_factor = 1.0 # Touchpad scroll factor
|
||||||
|
}
|
||||||
|
sensitivity = 0 # Pointer speed: -1.0 - 1.0, 0 means no modification.
|
||||||
|
}
|
||||||
|
gestures {
|
||||||
|
workspace_swipe = true
|
||||||
|
}
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Load pywal color file
|
||||||
|
# -----------------------------------------------------
|
||||||
|
source = ~/.cache/wal/colors-hyprland.conf
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Autostart
|
||||||
|
# -----------------------------------------------------
|
||||||
|
source = ~/.config/hypr/conf/autostart.conf
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Load configuration files
|
||||||
|
# -----------------------------------------------------
|
||||||
|
source = ~/.config/hypr/conf/window.conf
|
||||||
|
source = ~/.config/hypr/conf/decoration.conf
|
||||||
|
source = ~/.config/hypr/conf/layout.conf
|
||||||
|
source = ~/.config/hypr/conf/misc.conf
|
||||||
|
source = ~/.config/hypr/conf/keybinding.conf
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Animation
|
||||||
|
# -----------------------------------------------------
|
||||||
|
source = ~/.config/hypr/conf/animation.conf
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Custom
|
||||||
|
# -----------------------------------------------------
|
||||||
|
source = ~/.config/hypr/conf/custom.conf
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# ML4W Configuration
|
||||||
|
# -----------------------------------------------------
|
||||||
|
source = ~/.config/hypr/conf/ml4w.conf
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Environment for xdg-desktop-portal-hyprland
|
||||||
|
# -----------------------------------------------------
|
||||||
|
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
88
configs/dotfiles/hyprland/desktop/.config/hypr/hyprlock.conf
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
# _ _ _
|
||||||
|
# | |__ _ _ _ __ _ __| | ___ ___| | __
|
||||||
|
# | '_ \| | | | '_ \| '__| |/ _ \ / __| |/ /
|
||||||
|
# | | | | |_| | |_) | | | | (_) | (__| <
|
||||||
|
# |_| |_|\__, | .__/|_| |_|\___/ \___|_|\_\
|
||||||
|
# |___/|_|
|
||||||
|
#
|
||||||
|
|
||||||
|
general {
|
||||||
|
ignore_empty_input = true
|
||||||
|
}
|
||||||
|
|
||||||
|
background {
|
||||||
|
monitor =
|
||||||
|
path = $HOME/.config/ml4w/cache/blurred_wallpaper.png # only png supported for now
|
||||||
|
}
|
||||||
|
|
||||||
|
input-field {
|
||||||
|
monitor =
|
||||||
|
size = 200, 50
|
||||||
|
outline_thickness = 3
|
||||||
|
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
|
||||||
|
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
|
||||||
|
dots_center = true
|
||||||
|
dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
|
||||||
|
outer_color = rgb(151515)
|
||||||
|
inner_color = rgb(FFFFFF)
|
||||||
|
font_color = rgb(10, 10, 10)
|
||||||
|
fade_on_empty = true
|
||||||
|
fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
|
||||||
|
placeholder_text = <i>Input Password...</i> # Text rendered in the input box when it's empty.
|
||||||
|
hide_input = false
|
||||||
|
rounding = -1 # -1 means complete rounding (circle/oval)
|
||||||
|
check_color = rgb(204, 136, 34)
|
||||||
|
fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color
|
||||||
|
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> # can be set to empty
|
||||||
|
fail_transition = 300 # transition time in ms between normal outer_color and fail_color
|
||||||
|
capslock_color = -1
|
||||||
|
numlock_color = -1
|
||||||
|
bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
|
||||||
|
invert_numlock = false # change color if numlock is off
|
||||||
|
swap_font_color = false # see below
|
||||||
|
position = 0, -20
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
#clock
|
||||||
|
text = cmd[update:1000] echo "$TIME"
|
||||||
|
color = rgba(200, 200, 200, 1.0)
|
||||||
|
font_size = 55
|
||||||
|
font_family = Fira Semibold
|
||||||
|
position = -100, 70
|
||||||
|
halign = right
|
||||||
|
valign = bottom
|
||||||
|
shadow_passes = 5
|
||||||
|
shadow_size = 10
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = $USER
|
||||||
|
color = rgba(200, 200, 200, 1.0)
|
||||||
|
font_size = 20
|
||||||
|
font_family = Fira Semibold
|
||||||
|
position = -100, 160
|
||||||
|
halign = right
|
||||||
|
valign = bottom
|
||||||
|
shadow_passes = 5
|
||||||
|
shadow_size = 10
|
||||||
|
}
|
||||||
|
|
||||||
|
image {
|
||||||
|
monitor =
|
||||||
|
path = $HOME/.config/ml4w/cache/square_wallpaper.png
|
||||||
|
size = 280 # lesser side if not 1:1 ratio
|
||||||
|
rounding = -1 # negative values mean circle
|
||||||
|
border_size = 4
|
||||||
|
border_color = rgb(221, 221, 221)
|
||||||
|
rotate = 0 # degrees, counter-clockwise
|
||||||
|
reload_time = -1 # seconds between reloading, 0 to reload with SIGUSR2
|
||||||
|
# reload_cmd = # command to get new path. if empty, old path will be used. don't run "follow" commands like tail -F
|
||||||
|
position = 0, 200
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
preload = /home/gib/Pictures/Wallpapers/faroe_islands.jpg
|
||||||
|
preload = /home/gib/Pictures/Wallpapers/mt_rainier.jpg
|
||||||
|
|
||||||
|
wallpaper = DP-2,/home/gib/Pictures/Wallpapers/faroe_islands.jpg
|
||||||
|
wallpaper = HDMI-A-1,/home/gib/Pictures/Wallpapers/mt_rainier.jpg
|
||||||
|
splash = false
|
@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# ____ _
|
||||||
|
# / ___| | ___ __ _ _ __ _ _ _ __
|
||||||
|
# | | | |/ _ \/ _` | '_ \| | | | '_ \
|
||||||
|
# | |___| | __/ (_| | | | | |_| | |_) |
|
||||||
|
# \____|_|\___|\__,_|_| |_|\__,_| .__/
|
||||||
|
# |_|
|
||||||
|
#
|
||||||
|
|
||||||
|
# Remove gamemode flag
|
||||||
|
if [ -f ~/.cache/gamemode ] ;then
|
||||||
|
rm ~/.cache/gamemode
|
||||||
|
echo ":: ~/.cache/gamemode removed"
|
||||||
|
fi
|
@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
clear
|
||||||
|
figlet -f smslant "Disable DM"
|
||||||
|
echo "Hyprland recommends the start with the tty login."
|
||||||
|
echo "You can deactivate the current display manager (if exists)."
|
||||||
|
echo ""
|
||||||
|
echo "-> Do you really want to deactivate the display manager?"
|
||||||
|
while true; do
|
||||||
|
read -p "Do you want to enable the sddm display manager and setup theme? (Yy/Nn): " yn
|
||||||
|
case $yn in
|
||||||
|
[Yy]* )
|
||||||
|
if [ -f /etc/systemd/system/display-manager.service ]; then
|
||||||
|
sudo rm /etc/systemd/system/display-manager.service
|
||||||
|
echo "Current display manager removed."
|
||||||
|
else
|
||||||
|
echo "No active display manager found."
|
||||||
|
fi
|
||||||
|
break;;
|
||||||
|
[Nn]* )
|
||||||
|
exit
|
||||||
|
break;;
|
||||||
|
* ) echo "Please answer yes or no.";;
|
||||||
|
esac
|
||||||
|
done
|
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# ____ _
|
||||||
|
# / ___| __ _ _ __ ___ ___ _ __ ___ ___ __| | ___
|
||||||
|
# | | _ / _` | '_ ` _ \ / _ \ '_ ` _ \ / _ \ / _` |/ _ \
|
||||||
|
# | |_| | (_| | | | | | | __/ | | | | | (_) | (_| | __/
|
||||||
|
# \____|\__,_|_| |_| |_|\___|_| |_| |_|\___/ \__,_|\___|
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ -f ~/.cache/gamemode ] ;then
|
||||||
|
hyprctl reload
|
||||||
|
rm ~/.cache/gamemode
|
||||||
|
notify-send "Gamemode deactivated" "Animations and blur enabled"
|
||||||
|
else
|
||||||
|
hyprctl --batch "\
|
||||||
|
keyword animations:enabled 0;\
|
||||||
|
keyword decoration:drop_shadow 0;\
|
||||||
|
keyword decoration:blur:enabled 0;\
|
||||||
|
keyword general:gaps_in 0;\
|
||||||
|
keyword general:gaps_out 0;\
|
||||||
|
keyword general:border_size 1;\
|
||||||
|
keyword decoration:rounding 0"
|
||||||
|
touch ~/.cache/gamemode
|
||||||
|
notify-send "Gamemode activated" "Animations and blur disabled"
|
||||||
|
fi
|
@ -0,0 +1,41 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# ____ _____ _ __
|
||||||
|
# / ___|_ _| |/ /
|
||||||
|
# | | _ | | | ' /
|
||||||
|
# | |_| | | | | . \
|
||||||
|
# \____| |_| |_|\_\
|
||||||
|
#
|
||||||
|
# Source: https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland
|
||||||
|
|
||||||
|
config="$HOME/.config/gtk-3.0/settings.ini"
|
||||||
|
if [ ! -f "$config" ]; then exit 1; fi
|
||||||
|
|
||||||
|
gnome_schema="org.gnome.desktop.interface"
|
||||||
|
gtk_theme="$(grep 'gtk-theme-name' "$config" | sed 's/.*\s*=\s*//')"
|
||||||
|
icon_theme="$(grep 'gtk-icon-theme-name' "$config" | sed 's/.*\s*=\s*//')"
|
||||||
|
cursor_theme="$(grep 'gtk-cursor-theme-name' "$config" | sed 's/.*\s*=\s*//')"
|
||||||
|
cursor_size="$(grep 'gtk-cursor-theme-size' "$config" | sed 's/.*\s*=\s*//')"
|
||||||
|
font_name="$(grep 'gtk-font-name' "$config" | sed 's/.*\s*=\s*//')"
|
||||||
|
terminal=$(cat $HOME/.config/ml4w/settings/terminal.sh)
|
||||||
|
|
||||||
|
echo $gtk_theme
|
||||||
|
echo $icon_theme
|
||||||
|
echo $cursor_theme
|
||||||
|
echo $cursor_size
|
||||||
|
echo $font_name
|
||||||
|
echo $terminal
|
||||||
|
|
||||||
|
gsettings set "$gnome_schema" gtk-theme "$gtk_theme"
|
||||||
|
gsettings set "$gnome_schema" icon-theme "$icon_theme"
|
||||||
|
gsettings set "$gnome_schema" cursor-theme "$cursor_theme"
|
||||||
|
gsettings set "$gnome_schema" font-name "$font_name"
|
||||||
|
gsettings set "$gnome_schema" color-scheme "prefer-dark"
|
||||||
|
|
||||||
|
gsettings set com.github.stunkymonkey.nautilus-open-any-terminal terminal "$terminal"
|
||||||
|
gsettings set com.github.stunkymonkey.nautilus-open-any-terminal use-generic-terminal-name "true"
|
||||||
|
gsettings set com.github.stunkymonkey.nautilus-open-any-terminal keybindings "<Ctrl><Alt>t"
|
||||||
|
|
||||||
|
if [ -f ~/.config/hypr/conf/cursor.conf ] ;then
|
||||||
|
echo "exec-once = hyprctl setcursor $cursor_theme $cursor_size" > ~/.config/hypr/conf/cursor.conf
|
||||||
|
hyprctl setcursor $cursor_theme $cursor_size
|
||||||
|
fi
|
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# _ _ _ _ _
|
||||||
|
# | | | |_ _ _ __ _ __(_) __| | | ___
|
||||||
|
# | |_| | | | | '_ \| '__| |/ _` | |/ _ \
|
||||||
|
# | _ | |_| | |_) | | | | (_| | | __/
|
||||||
|
# |_| |_|\__, | .__/|_| |_|\__,_|_|\___|
|
||||||
|
# |___/|_|
|
||||||
|
#
|
||||||
|
|
||||||
|
SERVICE="hypridle"
|
||||||
|
if [[ "$1" == "status" ]]; then
|
||||||
|
sleep 1
|
||||||
|
if pgrep -x "$SERVICE" >/dev/null ;then
|
||||||
|
echo '{"text": "RUNNING", "class": "active", "tooltip": "Screen locking active\nLeft: Deactivate\nRight: Lock Screen"}'
|
||||||
|
else
|
||||||
|
echo '{"text": "NOT RUNNING", "class": "notactive", "tooltip": "Screen locking deactivated\nLeft: Activate\nRight: Lock Screen"}'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ "$1" == "toggle" ]]; then
|
||||||
|
if pgrep -x "$SERVICE" >/dev/null ;then
|
||||||
|
killall hypridle
|
||||||
|
else
|
||||||
|
hypridle
|
||||||
|
fi
|
||||||
|
fi
|
@ -0,0 +1,56 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# _ _ _ _
|
||||||
|
# | | | |_ _ _ __ _ __ ___| |__ __ _ __| | ___
|
||||||
|
# | |_| | | | | '_ \| '__/ __| '_ \ / _` |/ _` |/ _ \
|
||||||
|
# | _ | |_| | |_) | | \__ \ | | | (_| | (_| | __/
|
||||||
|
# |_| |_|\__, | .__/|_| |___/_| |_|\__,_|\__,_|\___|
|
||||||
|
# |___/|_|
|
||||||
|
#
|
||||||
|
|
||||||
|
if [[ "$1" == "rofi" ]]; then
|
||||||
|
|
||||||
|
# Open rofi to select the Hyprshade filter for toggle
|
||||||
|
options="$(hyprshade ls)\noff"
|
||||||
|
|
||||||
|
# Open rofi
|
||||||
|
choice=$(echo -e "$options" | rofi -dmenu -replace -config ~/.config/rofi/config-hyprshade.rasi -i -no-show-icons -l 4 -width 30 -p "Hyprshade")
|
||||||
|
if [ ! -z $choice ] ;then
|
||||||
|
echo "hyprshade_filter=\"$choice\"" > ~/.config/ml4w/settings/hyprshade.sh
|
||||||
|
if [ "$choice" == "off" ] ;then
|
||||||
|
hyprshade off
|
||||||
|
notify-send "Hyprshade deactivated"
|
||||||
|
echo ":: hyprshade turned off"
|
||||||
|
else
|
||||||
|
notify-send "Changing Hyprshade to $choice" "Toggle shader with SUPER+SHIFT+S"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
# Toggle Hyprshade based on the selected filter
|
||||||
|
hyprshade_filter="blue-light-filter-50"
|
||||||
|
|
||||||
|
# Check if hyprshade.sh settings file exists and load
|
||||||
|
if [ -f ~/.config/ml4w/settings/hyprshade.sh ] ;then
|
||||||
|
source ~/.config/ml4w/settings/hyprshade.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Toggle Hyprshade
|
||||||
|
if [ "$hyprshade_filter" != "off" ] ;then
|
||||||
|
if [ -z $(hyprshade current) ] ;then
|
||||||
|
echo ":: hyprshade is not running"
|
||||||
|
hyprshade on $hyprshade_filter
|
||||||
|
notify-send "Hyprshade activated" "with $(hyprshade current)"
|
||||||
|
echo ":: hyprshade started with $(hyprshade current)"
|
||||||
|
else
|
||||||
|
notify-send "Hyprshade deactivated"
|
||||||
|
echo ":: Current hyprshade $(hyprshade current)"
|
||||||
|
echo ":: Switching hyprshade off"
|
||||||
|
hyprshade off
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
hyprshade off
|
||||||
|
echo ":: hyprshade turned off"
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# __ ______ _____ _
|
||||||
|
# \ \ / / _ \ | ____|_ __ __ _(_)_ __ ___
|
||||||
|
# \ \ /\ / /| |_) | | _| | '_ \ / _` | | '_ \ / _ \
|
||||||
|
# \ V V / | __/ | |___| | | | (_| | | | | | __/
|
||||||
|
# \_/\_/ |_| |_____|_| |_|\__, |_|_| |_|\___|
|
||||||
|
# |___/
|
||||||
|
#
|
||||||
|
|
||||||
|
wallpaper_engine=$(cat $HOME/.config/ml4w/settings/wallpaper-engine.sh)
|
||||||
|
if [ "$wallpaper_engine" == "swww" ] ;then
|
||||||
|
# swww
|
||||||
|
echo ":: Using swww"
|
||||||
|
swww init
|
||||||
|
swww-daemon --format xrgb
|
||||||
|
sleep 0.5
|
||||||
|
~/.config/hypr/scripts/wallpaper.sh init
|
||||||
|
elif [ "$wallpaper_engine" == "hyprpaper" ] ;then
|
||||||
|
# hyprpaper
|
||||||
|
echo ":: Using hyprpaper"
|
||||||
|
sleep 0.5
|
||||||
|
~/.config/hypr/scripts/wallpaper.sh init
|
||||||
|
else
|
||||||
|
echo ":: Wallpaper Engine disabled"
|
||||||
|
~/.config/hypr/scripts/wallpaper.sh init
|
||||||
|
fi
|
||||||
|
|
@ -0,0 +1,47 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# _ _ _ _ _
|
||||||
|
# | | _____ _ _| |__ (_)_ __ __| (_)_ __ __ _ ___
|
||||||
|
# | |/ / _ \ | | | '_ \| | '_ \ / _` | | '_ \ / _` / __|
|
||||||
|
# | < __/ |_| | |_) | | | | | (_| | | | | | (_| \__ \
|
||||||
|
# |_|\_\___|\__, |_.__/|_|_| |_|\__,_|_|_| |_|\__, |___/
|
||||||
|
# |___/ |___/
|
||||||
|
#
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Get keybindings location based on variation
|
||||||
|
# -----------------------------------------------------
|
||||||
|
config_file=$(cat ~/.config/hypr/conf/keybinding.conf)
|
||||||
|
config_file=${config_file/source = ~/}
|
||||||
|
config_file=${config_file/source=~/}
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Path to keybindings config file
|
||||||
|
# -----------------------------------------------------
|
||||||
|
config_file="/home/$USER$config_file"
|
||||||
|
echo "Reading from: $config_file"
|
||||||
|
|
||||||
|
keybinds=""
|
||||||
|
|
||||||
|
# Detect Start String
|
||||||
|
while read -r line
|
||||||
|
do
|
||||||
|
if [[ "$line" == "bind"* ]]; then
|
||||||
|
|
||||||
|
line="$(echo "$line" | sed 's/$mainMod/SUPER/g')"
|
||||||
|
line="$(echo "$line" | sed 's/bind = //g')"
|
||||||
|
line="$(echo "$line" | sed 's/bindm = //g')"
|
||||||
|
|
||||||
|
IFS='#'
|
||||||
|
read -a strarr <<<"$line"
|
||||||
|
kb_str=${strarr[0]}
|
||||||
|
cm_str=${strarr[1]}
|
||||||
|
|
||||||
|
IFS=','
|
||||||
|
read -a kbarr <<<"$kb_str"
|
||||||
|
|
||||||
|
item="${kbarr[0]} + ${kbarr[1]}"$'\r'"${cm_str:1}"
|
||||||
|
keybinds=$keybinds$item$'\n'
|
||||||
|
fi
|
||||||
|
done < "$config_file"
|
||||||
|
|
||||||
|
sleep 0.2
|
||||||
|
rofi -dmenu -i -markup -eh 2 -replace -p "Keybinds" -config ~/.config/rofi/config-compact.rasi <<< "$keybinds"
|
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
hyprctl reload
|
@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# __ __ _
|
||||||
|
# | \/ | _____ _____ | |_ ___
|
||||||
|
# | |\/| |/ _ \ \ / / _ \ | __/ _ \
|
||||||
|
# | | | | (_) \ V / __/ | || (_) |
|
||||||
|
# |_| |_|\___/ \_/ \___| \__\___/
|
||||||
|
#
|
||||||
|
|
||||||
|
# Function to log messages (useful for debugging)
|
||||||
|
log_message() {
|
||||||
|
# echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> ~/moveto_log.txt
|
||||||
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get the target workspace from the argument
|
||||||
|
target_workspace=$1
|
||||||
|
|
||||||
|
# Check if a target workspace was provided
|
||||||
|
if [ -z "$target_workspace" ]; then
|
||||||
|
log_message "Error: No target workspace provided"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get the current active workspace
|
||||||
|
current_workspace=$(hyprctl activewindow -j | jq '.workspace.id')
|
||||||
|
|
||||||
|
if [ -z "$current_workspace" ]; then
|
||||||
|
log_message "Error: Couldn't determine current workspace"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
log_message "Moving from workspace $current_workspace to $target_workspace"
|
||||||
|
|
||||||
|
# Get all window addresses in the current workspace
|
||||||
|
window_addresses=$(hyprctl clients -j | jq -r ".[] | select(.workspace.id == $current_workspace) | .address")
|
||||||
|
|
||||||
|
# Move each window to the target workspace
|
||||||
|
for address in $window_addresses; do
|
||||||
|
log_message "Moving window $address to workspace $target_workspace"
|
||||||
|
hyprctl dispatch movetoworkspacesilent "$target_workspace,address:$address"
|
||||||
|
done
|
||||||
|
|
||||||
|
log_message "Finished moving windows"
|
||||||
|
|
||||||
|
# Switch to the target workspace
|
||||||
|
hyprctl dispatch workspace "$target_workspace"
|
||||||
|
|
||||||
|
log_message "Switched to workspace $target_workspace"
|
@ -0,0 +1,56 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# ____
|
||||||
|
# | _ \ _____ _____ _ __
|
||||||
|
# | |_) / _ \ \ /\ / / _ \ '__|
|
||||||
|
# | __/ (_) \ V V / __/ |
|
||||||
|
# |_| \___/ \_/\_/ \___|_|
|
||||||
|
#
|
||||||
|
|
||||||
|
# Check if eww is open
|
||||||
|
FILE="$HOME/.cache/ml4w_sidebar"
|
||||||
|
|
||||||
|
if [[ "$1" == "exit" ]]; then
|
||||||
|
echo ":: Exit"
|
||||||
|
if [[ -f "$FILE" ]]; then
|
||||||
|
rm $FILE
|
||||||
|
fi
|
||||||
|
sleep 0.5
|
||||||
|
killall -9 Hyprland
|
||||||
|
sleep 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$1" == "lock" ]]; then
|
||||||
|
echo ":: Lock"
|
||||||
|
sleep 0.5
|
||||||
|
hyprlock
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$1" == "reboot" ]]; then
|
||||||
|
echo ":: Reboot"
|
||||||
|
if [[ -f "$FILE" ]]; then
|
||||||
|
rm $FILE
|
||||||
|
fi
|
||||||
|
sleep 0.5
|
||||||
|
systemctl reboot
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$1" == "shutdown" ]]; then
|
||||||
|
echo ":: Shutdown"
|
||||||
|
if [[ -f "$FILE" ]]; then
|
||||||
|
rm $FILE
|
||||||
|
fi
|
||||||
|
sleep 0.5
|
||||||
|
systemctl poweroff
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$1" == "suspend" ]]; then
|
||||||
|
echo ":: Suspend"
|
||||||
|
sleep 0.5
|
||||||
|
systemctl suspend
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$1" == "hibernate" ]]; then
|
||||||
|
echo ":: Hibernate"
|
||||||
|
sleep 1;
|
||||||
|
systemctl hibernate
|
||||||
|
fi
|
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
killall hypridle
|
||||||
|
sleep 1
|
||||||
|
hypridle &
|
||||||
|
notify-send "hypridle has been restarted."
|
@ -0,0 +1,224 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# ____ _ _
|
||||||
|
# / ___| ___ _ __ ___ ___ _ __ ___| |__ ___ | |_
|
||||||
|
# \___ \ / __| '__/ _ \/ _ \ '_ \/ __| '_ \ / _ \| __|
|
||||||
|
# ___) | (__| | | __/ __/ | | \__ \ | | | (_) | |_
|
||||||
|
# |____/ \___|_| \___|\___|_| |_|___/_| |_|\___/ \__|
|
||||||
|
#
|
||||||
|
# Based on https://github.com/hyprwm/contrib/blob/main/grimblast/screenshot.sh
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
# Screenshots will be stored in $HOME by default.
|
||||||
|
# The screenshot will be moved into the screenshot directory
|
||||||
|
|
||||||
|
# Add this to ~/.config/user-dirs.dirs to save screenshots in a custom folder:
|
||||||
|
# XDG_SCREENSHOTS_DIR="$HOME/Screenshots"
|
||||||
|
|
||||||
|
prompt='Screenshot'
|
||||||
|
mesg="DIR: ~/Screenshots"
|
||||||
|
|
||||||
|
# Screenshot Filename
|
||||||
|
source ~/.config/ml4w/settings/screenshot-filename.sh
|
||||||
|
|
||||||
|
# Screenshot Folder
|
||||||
|
source ~/.config/ml4w/settings/screenshot-folder.sh
|
||||||
|
|
||||||
|
# Screenshot Editor
|
||||||
|
export GRIMBLAST_EDITOR="$(cat ~/.config/ml4w/settings/screenshot-editor.sh)"
|
||||||
|
|
||||||
|
# Example for keybindings
|
||||||
|
# bind = SUPER, p, exec, grimblast save active
|
||||||
|
# bind = SUPER SHIFT, p, exec, grimblast save area
|
||||||
|
# bind = SUPER ALT, p, exec, grimblast save output
|
||||||
|
# bind = SUPER CTRL, p, exec, grimblast save screen
|
||||||
|
|
||||||
|
# Options
|
||||||
|
option_1="Immediate"
|
||||||
|
option_2="Delayed"
|
||||||
|
|
||||||
|
option_capture_1="Capture Everything"
|
||||||
|
option_capture_2="Capture Active Display"
|
||||||
|
option_capture_3="Capture Selection"
|
||||||
|
|
||||||
|
option_time_1="5s"
|
||||||
|
option_time_2="10s"
|
||||||
|
option_time_3="20s"
|
||||||
|
option_time_4="30s"
|
||||||
|
option_time_5="60s"
|
||||||
|
#option_time_4="Custom (in seconds)" # Roadmap or someone contribute :)
|
||||||
|
|
||||||
|
list_col='1'
|
||||||
|
list_row='2'
|
||||||
|
|
||||||
|
copy='Copy'
|
||||||
|
save='Save'
|
||||||
|
copy_save='Copy & Save'
|
||||||
|
edit='Edit'
|
||||||
|
|
||||||
|
# Rofi CMD
|
||||||
|
rofi_cmd() {
|
||||||
|
rofi -dmenu -replace -config ~/.config/rofi/config-screenshot.rasi -i -no-show-icons -l 2 -width 30 -p "Take screenshot"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Pass variables to rofi dmenu
|
||||||
|
run_rofi() {
|
||||||
|
echo -e "$option_1\n$option_2" | rofi_cmd
|
||||||
|
}
|
||||||
|
|
||||||
|
####
|
||||||
|
# Choose Timer
|
||||||
|
# CMD
|
||||||
|
timer_cmd() {
|
||||||
|
rofi -dmenu -replace -config ~/.config/rofi/config-screenshot.rasi -i -no-show-icons -l 5 -width 30 -p "Choose timer"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Ask for confirmation
|
||||||
|
timer_exit() {
|
||||||
|
echo -e "$option_time_1\n$option_time_2\n$option_time_3\n$option_time_4\n$option_time_5" | timer_cmd
|
||||||
|
}
|
||||||
|
|
||||||
|
# Confirm and execute
|
||||||
|
timer_run() {
|
||||||
|
selected_timer="$(timer_exit)"
|
||||||
|
if [[ "$selected_timer" == "$option_time_1" ]]; then
|
||||||
|
countdown=5
|
||||||
|
${1}
|
||||||
|
elif [[ "$selected_timer" == "$option_time_2" ]]; then
|
||||||
|
countdown=10
|
||||||
|
${1}
|
||||||
|
elif [[ "$selected_timer" == "$option_time_3" ]]; then
|
||||||
|
countdown=20
|
||||||
|
${1}
|
||||||
|
elif [[ "$selected_timer" == "$option_time_4" ]]; then
|
||||||
|
countdown=30
|
||||||
|
${1}
|
||||||
|
elif [[ "$selected_timer" == "$option_time_5" ]]; then
|
||||||
|
countdown=60
|
||||||
|
${1}
|
||||||
|
else
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
###
|
||||||
|
|
||||||
|
####
|
||||||
|
# Chose Screenshot Type
|
||||||
|
# CMD
|
||||||
|
type_screenshot_cmd() {
|
||||||
|
rofi -dmenu -replace -config ~/.config/rofi/config-screenshot.rasi -i -no-show-icons -l 3 -width 30 -p "Type of screenshot"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Ask for confirmation
|
||||||
|
type_screenshot_exit() {
|
||||||
|
echo -e "$option_capture_1\n$option_capture_2\n$option_capture_3" | type_screenshot_cmd
|
||||||
|
}
|
||||||
|
|
||||||
|
# Confirm and execute
|
||||||
|
type_screenshot_run() {
|
||||||
|
selected_type_screenshot="$(type_screenshot_exit)"
|
||||||
|
if [[ "$selected_type_screenshot" == "$option_capture_1" ]]; then
|
||||||
|
option_type_screenshot=screen
|
||||||
|
${1}
|
||||||
|
elif [[ "$selected_type_screenshot" == "$option_capture_2" ]]; then
|
||||||
|
option_type_screenshot=output
|
||||||
|
${1}
|
||||||
|
elif [[ "$selected_type_screenshot" == "$option_capture_3" ]]; then
|
||||||
|
option_type_screenshot=area
|
||||||
|
${1}
|
||||||
|
else
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
###
|
||||||
|
|
||||||
|
####
|
||||||
|
# Choose to save or copy photo
|
||||||
|
# CMD
|
||||||
|
copy_save_editor_cmd() {
|
||||||
|
rofi -dmenu -replace -config ~/.config/rofi/config-screenshot.rasi -i -no-show-icons -l 4 -width 30 -p "How to save"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Ask for confirmation
|
||||||
|
copy_save_editor_exit() {
|
||||||
|
echo -e "$copy\n$save\n$copy_save\n$edit" | copy_save_editor_cmd
|
||||||
|
}
|
||||||
|
|
||||||
|
# Confirm and execute
|
||||||
|
copy_save_editor_run() {
|
||||||
|
selected_chosen="$(copy_save_editor_exit)"
|
||||||
|
if [[ "$selected_chosen" == "$copy" ]]; then
|
||||||
|
option_chosen=copy
|
||||||
|
${1}
|
||||||
|
elif [[ "$selected_chosen" == "$save" ]]; then
|
||||||
|
option_chosen=save
|
||||||
|
${1}
|
||||||
|
elif [[ "$selected_chosen" == "$copy_save" ]]; then
|
||||||
|
option_chosen=copysave
|
||||||
|
${1}
|
||||||
|
elif [[ "$selected_chosen" == "$edit" ]]; then
|
||||||
|
option_chosen=edit
|
||||||
|
${1}
|
||||||
|
else
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
###
|
||||||
|
|
||||||
|
timer() {
|
||||||
|
if [[ $countdown -gt 10 ]]; then
|
||||||
|
notify-send -t 1000 "Taking screenshot in ${countdown} seconds"
|
||||||
|
countdown_less_10=$((countdown - 10))
|
||||||
|
sleep $countdown_less_10
|
||||||
|
countdown=10
|
||||||
|
fi
|
||||||
|
while [[ $countdown -ne 0 ]]; do
|
||||||
|
notify-send -t 1000 "Taking screenshot in ${countdown} seconds"
|
||||||
|
countdown=$((countdown - 1))
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# take shots
|
||||||
|
takescreenshot() {
|
||||||
|
sleep 1
|
||||||
|
grimblast --notify "$option_chosen" "$option_type_screenshot" $NAME
|
||||||
|
if [ -f $HOME/$NAME ] ;then
|
||||||
|
if [ -d $screenshot_folder ] ;then
|
||||||
|
mv $HOME/$NAME $screenshot_folder/
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
takescreenshot_timer() {
|
||||||
|
sleep 1
|
||||||
|
timer
|
||||||
|
grimblast --notify "$option_chosen" "$option_type_screenshot" $NAME
|
||||||
|
if [ -f $HOME/$NAME ] ;then
|
||||||
|
if [ -d $screenshot_folder ] ;then
|
||||||
|
mv $HOME/$NAME $screenshot_folder/
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Execute Command
|
||||||
|
run_cmd() {
|
||||||
|
if [[ "$1" == '--opt1' ]]; then
|
||||||
|
type_screenshot_run
|
||||||
|
copy_save_editor_run "takescreenshot"
|
||||||
|
elif [[ "$1" == '--opt2' ]]; then
|
||||||
|
timer_run
|
||||||
|
type_screenshot_run
|
||||||
|
copy_save_editor_run "takescreenshot_timer"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Actions
|
||||||
|
chosen="$(run_rofi)"
|
||||||
|
case ${chosen} in
|
||||||
|
$option_1)
|
||||||
|
run_cmd --opt1
|
||||||
|
;;
|
||||||
|
$option_2)
|
||||||
|
run_cmd --opt2
|
||||||
|
;;
|
||||||
|
esac
|
@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
cache_file="$HOME/.cache/toggle_animation"
|
||||||
|
if [[ $(cat $HOME/.config/hypr/conf/animation.conf) == *"disabled"* ]]; then
|
||||||
|
echo ":: Toggle blocked by disabled.conf variation."
|
||||||
|
else
|
||||||
|
if [ -f $cache_file ] ;then
|
||||||
|
hyprctl keyword animations:enabled true
|
||||||
|
rm $cache_file
|
||||||
|
else
|
||||||
|
hyprctl keyword animations:enabled false
|
||||||
|
touch $cache_file
|
||||||
|
fi
|
||||||
|
fi
|
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# _ _ _ __ _ _
|
||||||
|
# / \ | | |/ _| | ___ __ _| |_
|
||||||
|
# / _ \ | | | |_| |/ _ \ / _` | __|
|
||||||
|
# / ___ \| | | _| | (_) | (_| | |_
|
||||||
|
# /_/ \_\_|_|_| |_|\___/ \__,_|\__|
|
||||||
|
#
|
||||||
|
|
||||||
|
hyprctl dispatch workspaceopt allfloat
|
||||||
|
notify-send "Windows on this workspace toggled to floating/tiling"
|
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# _ _ __ ______
|
||||||
|
# / \ _ _| |_ ___ \ \ / / _ \
|
||||||
|
# / _ \| | | | __/ _ \ \ \ /\ / /| |_) |
|
||||||
|
# / ___ \ |_| | || (_) | \ V V / | __/
|
||||||
|
# /_/ \_\__,_|\__\___/ \_/\_/ |_|
|
||||||
|
#
|
||||||
|
|
||||||
|
sec=$(cat ~/.config/ml4w/settings/wallpaper-automation.sh)
|
||||||
|
_setWallpaperRandomly() {
|
||||||
|
waypaper --random
|
||||||
|
echo ":: Next wallpaper in 60 seconds..."
|
||||||
|
sleep $sec
|
||||||
|
_setWallpaperRandomly
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ ! -f ~/.config/ml4w/cache/wallpaper-automation ] ;then
|
||||||
|
touch ~/.config/ml4w/cache/wallpaper-automation
|
||||||
|
echo ":: Start wallpaper automation script"
|
||||||
|
notify-send "Wallpaper automation process started" "Wallpaper will be changed every $sec seconds."
|
||||||
|
_setWallpaperRandomly
|
||||||
|
else
|
||||||
|
rm ~/.config/ml4w/cache/wallpaper-automation
|
||||||
|
notify-send "Wallpaper automation process stopped."
|
||||||
|
echo ":: Wallpaper automation script process $wp stopped"
|
||||||
|
wp=$(pgrep -f wallpaper-automation.sh)
|
||||||
|
kill -KILL $wp
|
||||||
|
fi
|
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
generated_versions="$HOME/.config/ml4w/cache/wallpaper-generated"
|
||||||
|
rm $generated_versions/*
|
||||||
|
echo ":: Wallpaper cache cleared"
|
||||||
|
notify-send "Wallpaper cache cleared"
|
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# __ ______ _____ __ __ _
|
||||||
|
# \ \ / / _ \ | ____|/ _|/ _| ___ ___| |_ ___
|
||||||
|
# \ \ /\ / /| |_) | | _| | |_| |_ / _ \/ __| __/ __|
|
||||||
|
# \ V V / | __/ | |___| _| _| __/ (__| |_\__ \
|
||||||
|
# \_/\_/ |_| |_____|_| |_| \___|\___|\__|___/
|
||||||
|
#
|
||||||
|
|
||||||
|
# Get current wallpaper
|
||||||
|
cache_file="$HOME/.config/ml4w/cache/current_wallpaper"
|
||||||
|
|
||||||
|
# Open rofi to select the Hyprshade filter for toggle
|
||||||
|
options="$(ls ~/.config/hypr/effects/wallpaper/)\noff"
|
||||||
|
|
||||||
|
# Open rofi
|
||||||
|
choice=$(echo -e "$options" | rofi -dmenu -replace -config ~/.config/rofi/config-themes.rasi -i -no-show-icons -l 5 -width 30 -p "Hyprshade")
|
||||||
|
if [ ! -z $choice ] ;then
|
||||||
|
echo "$choice" > ~/.config/ml4w/settings/wallpaper-effect.sh
|
||||||
|
notify-send "Changing Wallpaper Effect to " "$choice"
|
||||||
|
waypaper --wallpaper $(cat $cache_file)
|
||||||
|
fi
|
@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# _ _
|
||||||
|
# __ ____ _| | |_ __ __ _ _ __ ___ _ __
|
||||||
|
# \ \ /\ / / _` | | | '_ \ / _` | '_ \ / _ \ '__|
|
||||||
|
# \ V V / (_| | | | |_) | (_| | |_) | __/ |
|
||||||
|
# \_/\_/ \__,_|_|_| .__/ \__,_| .__/ \___|_|
|
||||||
|
# |_| |_|
|
||||||
|
#
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Restore last wallpaper
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Set defaults
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
defaultwallpaper="$HOME/Pictures/Wallpapers/faroe_islands.jpg"
|
||||||
|
cachefile="$HOME/.config/ml4w/cache/current_wallpaper"
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Get current wallpaper
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
if [ -f "$cachefile" ]; then
|
||||||
|
sed -i "s|~|$HOME|g" "$cachefile"
|
||||||
|
wallpaper=$(cat $cachefile)
|
||||||
|
if [ -f $wallpaper ]; then
|
||||||
|
echo ":: Wallpaper $wallpaper exists"
|
||||||
|
else
|
||||||
|
echo ":: Wallpaper $wallpaper does not exist. Using default."
|
||||||
|
wallpaper=$defaultwallpaper
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo ":: $cachefile does not exist. Using default wallpaper."
|
||||||
|
wallpaper=$defaultwallpaper
|
||||||
|
fi
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Set wallpaper
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
echo ":: Setting wallpaper with source image $wallpaper"
|
||||||
|
waypaper --wallpaper "$wallpaper"
|
@ -0,0 +1,172 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# _ _
|
||||||
|
# __ ____ _| | |_ __ __ _ _ __ ___ _ __
|
||||||
|
# \ \ /\ / / _` | | | '_ \ / _` | '_ \ / _ \ '__|
|
||||||
|
# \ V V / (_| | | | |_) | (_| | |_) | __/ |
|
||||||
|
# \_/\_/ \__,_|_|_| .__/ \__,_| .__/ \___|_|
|
||||||
|
# |_| |_|
|
||||||
|
#
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Check to use wallpaper cache
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
if [ -f ~/.config/ml4w/settings/wallpaper_cache ]; then
|
||||||
|
use_cache=1
|
||||||
|
echo ":: Using Wallpaper Cache"
|
||||||
|
else
|
||||||
|
use_cache=0
|
||||||
|
echo ":: Wallpaper Cache disabled"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Set defaults
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
force_generate=0
|
||||||
|
generatedversions="$HOME/.config/ml4w/cache/wallpaper-generated"
|
||||||
|
waypaperrunning=$HOME/.config/ml4w/cache/waypaper-running
|
||||||
|
cachefile="$HOME/.config/ml4w/cache/current_wallpaper"
|
||||||
|
blurredwallpaper="$HOME/.config/ml4w/cache/blurred_wallpaper.png"
|
||||||
|
squarewallpaper="$HOME/.config/ml4w/cache/square_wallpaper.png"
|
||||||
|
rasifile="$HOME/.config/ml4w/cache/current_wallpaper.rasi"
|
||||||
|
blurfile="$HOME/.config/ml4w/settings/blur.sh"
|
||||||
|
defaultwallpaper="$HOME/Pictures/Wallpapers/faroe_islands.jpg"
|
||||||
|
wallpapereffect="$HOME/.config/ml4w/settings/wallpaper-effect.sh"
|
||||||
|
blur="50x30"
|
||||||
|
blur=$(cat $blurfile)
|
||||||
|
|
||||||
|
# Ensures that the script only run once if wallpaper effect enabled
|
||||||
|
if [ -f $waypaperrunning ]; then
|
||||||
|
rm $waypaperrunning
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create folder with generated versions of wallpaper if not exists
|
||||||
|
if [ ! -d $generatedversions ]; then
|
||||||
|
mkdir $generatedversions
|
||||||
|
fi
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Get selected wallpaper
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
if [ -z $1 ]; then
|
||||||
|
if [ -f $cachefile ]; then
|
||||||
|
wallpaper=$(cat $cachefile)
|
||||||
|
else
|
||||||
|
wallpaper=$defaultwallpaper
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
wallpaper=$1
|
||||||
|
fi
|
||||||
|
used_wallpaper=$wallpaper
|
||||||
|
echo ":: Setting wallpaper with source image $wallpaper"
|
||||||
|
tmpwallpaper=$wallpaper
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Copy path of current wallpaper to cache file
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
if [ ! -f $cachefile ]; then
|
||||||
|
touch $cachefile
|
||||||
|
fi
|
||||||
|
echo "$wallpaper" > $cachefile
|
||||||
|
echo ":: Path of current wallpaper copied to $cachefile"
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Get wallpaper filename
|
||||||
|
# -----------------------------------------------------
|
||||||
|
wallpaperfilename=$(basename $wallpaper)
|
||||||
|
echo ":: Wallpaper Filename: $wallpaperfilename"
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Wallpaper Effects
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
if [ -f $wallpapereffect ]; then
|
||||||
|
effect=$(cat $wallpapereffect)
|
||||||
|
if [ ! "$effect" == "off" ]; then
|
||||||
|
used_wallpaper=$generatedversions/$effect-$wallpaperfilename
|
||||||
|
if [ -f $generatedversions/$effect-$wallpaperfilename ] && [ "$force_generate" == "0" ] && [ "$use_cache" == "1" ]; then
|
||||||
|
echo ":: Use cached wallpaper $effect-$wallpaperfilename"
|
||||||
|
else
|
||||||
|
echo ":: Generate new cached wallpaper $effect-$wallpaperfilename with effect $effect"
|
||||||
|
notify-send --replace-id=1 "Using wallpaper effect $effect..." "with image $wallpaperfilename" -h int:value:33
|
||||||
|
source $HOME/.config/hypr/effects/wallpaper/$effect
|
||||||
|
fi
|
||||||
|
echo ":: Loading wallpaper $generatedversions/$effect-$wallpaperfilename with effect $effect"
|
||||||
|
echo ":: Setting wallpaper with $used_wallpaper"
|
||||||
|
touch $waypaperrunning
|
||||||
|
waypaper --wallpaper $used_wallpaper
|
||||||
|
else
|
||||||
|
echo ":: Wallpaper effect is set to off"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
effect="off"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Execute pywal
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
echo ":: Execute pywal with $used_wallpaper"
|
||||||
|
wal -q -i "$used_wallpaper"
|
||||||
|
source "$HOME/.cache/wal/colors.sh"
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Reload Waybar
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
killall -SIGUSR2 waybar
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Pywalfox
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
if type pywalfox > /dev/null 2>&1; then
|
||||||
|
pywalfox update
|
||||||
|
fi
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Created blurred wallpaper
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
if [ -f $generatedversions/blur-$blur-$effect-$wallpaperfilename.png ] && [ "$force_generate" == "0" ] && [ "$use_cache" == "1" ]; then
|
||||||
|
echo ":: Use cached wallpaper blur-$blur-$effect-$wallpaperfilename"
|
||||||
|
else
|
||||||
|
echo ":: Generate new cached wallpaper blur-$blur-$effect-$wallpaperfilename with blur $blur"
|
||||||
|
# notify-send --replace-id=1 "Generate new blurred version" "with blur $blur" -h int:value:66
|
||||||
|
magick $used_wallpaper -resize 75% $blurredwallpaper
|
||||||
|
echo ":: Resized to 75%"
|
||||||
|
if [ ! "$blur" == "0x0" ]; then
|
||||||
|
magick $blurredwallpaper -blur $blur $blurredwallpaper
|
||||||
|
cp $blurredwallpaper $generatedversions/blur-$blur-$effect-$wallpaperfilename.png
|
||||||
|
echo ":: Blurred"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
cp $generatedversions/blur-$blur-$effect-$wallpaperfilename.png $blurredwallpaper
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Create rasi file
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
if [ ! -f $rasifile ]; then
|
||||||
|
touch $rasifile
|
||||||
|
fi
|
||||||
|
echo "* { current-image: url(\"$blurredwallpaper\", height); }" > "$rasifile"
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Created square wallpaper
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
echo ":: Generate new cached wallpaper square-$wallpaperfilename"
|
||||||
|
magick $tmpwallpaper -gravity Center -extent 1:1 $squarewallpaper
|
||||||
|
cp $squarewallpaper $generatedversions/square-$wallpaperfilename.png
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Reload AGS
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
ags quit &
|
||||||
|
sleep 0.2
|
||||||
|
ags run &
|
@ -0,0 +1,58 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# __ ______ ____
|
||||||
|
# \ \/ / _ \ / ___|
|
||||||
|
# \ /| | | | | _
|
||||||
|
# / \| |_| | |_| |
|
||||||
|
# /_/\_\____/ \____|
|
||||||
|
#
|
||||||
|
|
||||||
|
# Setup Timers
|
||||||
|
_sleep1="0.1"
|
||||||
|
_sleep2="0.5"
|
||||||
|
_sleep3="2"
|
||||||
|
|
||||||
|
# Kill all possible running xdg-desktop-portals
|
||||||
|
killall -e xdg-desktop-portal-hyprland
|
||||||
|
killall -e xdg-desktop-portal-gnome
|
||||||
|
killall -e xdg-desktop-portal-kde
|
||||||
|
killall -e xdg-desktop-portal-lxqt
|
||||||
|
killall -e xdg-desktop-portal-wlr
|
||||||
|
killall -e xdg-desktop-portal-gtk
|
||||||
|
killall -e xdg-desktop-portal
|
||||||
|
|
||||||
|
# Set required environment variables
|
||||||
|
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=hyprland
|
||||||
|
|
||||||
|
# Stop all services
|
||||||
|
systemctl --user stop pipewire
|
||||||
|
systemctl --user stop wireplumber
|
||||||
|
systemctl --user stop xdg-desktop-portal
|
||||||
|
systemctl --user stop xdg-desktop-portal-gnome
|
||||||
|
systemctl --user stop xdg-desktop-portal-kde
|
||||||
|
systemctl --user stop xdg-desktop-portal-wlr
|
||||||
|
systemctl --user stop xdg-desktop-portal-hyprland
|
||||||
|
sleep $_sleep1
|
||||||
|
|
||||||
|
# Start xdg-desktop-portal-hyprland
|
||||||
|
/usr/lib/xdg-desktop-portal-hyprland &
|
||||||
|
sleep $_sleep1
|
||||||
|
|
||||||
|
# Start xdg-desktop-portal-gtk
|
||||||
|
if [ -f /usr/lib/xdg-desktop-portal-gtk ] ;then
|
||||||
|
/usr/lib/xdg-desktop-portal-gtk &
|
||||||
|
sleep $_sleep1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Start xdg-desktop-portal
|
||||||
|
/usr/lib/xdg-desktop-portal &
|
||||||
|
sleep $_sleep2
|
||||||
|
|
||||||
|
# Start required services
|
||||||
|
systemctl --user start pipewire
|
||||||
|
systemctl --user start wireplumber
|
||||||
|
systemctl --user start xdg-desktop-portal
|
||||||
|
systemctl --user start xdg-desktop-portal-hyprland
|
||||||
|
|
||||||
|
# Run waybar
|
||||||
|
sleep $_sleep3
|
||||||
|
~/.config/waybar/launch.sh
|
@ -0,0 +1,43 @@
|
|||||||
|
// from https://github.com/hyprwm/Hyprland/issues/1140#issuecomment-1335128437
|
||||||
|
|
||||||
|
precision highp float;
|
||||||
|
varying vec2 v_texcoord;
|
||||||
|
uniform sampler2D tex;
|
||||||
|
|
||||||
|
const float temperature = 3000.0;
|
||||||
|
const float temperatureStrength = 0.25;
|
||||||
|
|
||||||
|
#define WithQuickAndDirtyLuminancePreservation
|
||||||
|
const float LuminancePreservationFactor = 1.0;
|
||||||
|
|
||||||
|
// function from https://www.shadertoy.com/view/4sc3D7
|
||||||
|
// valid from 1000 to 40000 K (and additionally 0 for pure full white)
|
||||||
|
vec3 colorTemperatureToRGB(const in float temperature) {
|
||||||
|
// values from: http://blenderartists.org/forum/showthread.php?270332-OSL-Goodness&p=2268693&viewfull=1#post2268693
|
||||||
|
mat3 m = (temperature <= 6500.0) ? mat3(vec3(0.0, -2902.1955373783176, -8257.7997278925690),
|
||||||
|
vec3(0.0, 1669.5803561666639, 2575.2827530017594),
|
||||||
|
vec3(1.0, 1.3302673723350029, 1.8993753891711275))
|
||||||
|
: mat3(vec3(1745.0425298314172, 1216.6168361476490, -8257.7997278925690),
|
||||||
|
vec3(-2666.3474220535695, -2173.1012343082230, 2575.2827530017594),
|
||||||
|
vec3(0.55995389139931482, 0.70381203140554553, 1.8993753891711275));
|
||||||
|
return mix(clamp(vec3(m[0] / (vec3(clamp(temperature, 1000.0, 40000.0)) + m[1]) + m[2]), vec3(0.0), vec3(1.0)),
|
||||||
|
vec3(1.0), smoothstep(1000.0, 0.0, temperature));
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec4 pixColor = texture2D(tex, v_texcoord);
|
||||||
|
|
||||||
|
// RGB
|
||||||
|
vec3 color = vec3(pixColor[0], pixColor[1], pixColor[2]);
|
||||||
|
|
||||||
|
#ifdef WithQuickAndDirtyLuminancePreservation
|
||||||
|
color *= mix(1.0, dot(color, vec3(0.2126, 0.7152, 0.0722)) / max(dot(color, vec3(0.2126, 0.7152, 0.0722)), 1e-5),
|
||||||
|
LuminancePreservationFactor);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
color = mix(color, color * colorTemperatureToRGB(temperature), temperatureStrength);
|
||||||
|
|
||||||
|
vec4 outCol = vec4(color, pixColor[3]);
|
||||||
|
|
||||||
|
gl_FragColor = outCol;
|
||||||
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
// from https://github.com/hyprwm/Hyprland/issues/1140#issuecomment-1335128437
|
||||||
|
|
||||||
|
precision highp float;
|
||||||
|
varying vec2 v_texcoord;
|
||||||
|
uniform sampler2D tex;
|
||||||
|
|
||||||
|
const float temperature = 3000.0;
|
||||||
|
const float temperatureStrength = 0.5;
|
||||||
|
|
||||||
|
#define WithQuickAndDirtyLuminancePreservation
|
||||||
|
const float LuminancePreservationFactor = 1.0;
|
||||||
|
|
||||||
|
// function from https://www.shadertoy.com/view/4sc3D7
|
||||||
|
// valid from 1000 to 40000 K (and additionally 0 for pure full white)
|
||||||
|
vec3 colorTemperatureToRGB(const in float temperature) {
|
||||||
|
// values from: http://blenderartists.org/forum/showthread.php?270332-OSL-Goodness&p=2268693&viewfull=1#post2268693
|
||||||
|
mat3 m = (temperature <= 6500.0) ? mat3(vec3(0.0, -2902.1955373783176, -8257.7997278925690),
|
||||||
|
vec3(0.0, 1669.5803561666639, 2575.2827530017594),
|
||||||
|
vec3(1.0, 1.3302673723350029, 1.8993753891711275))
|
||||||
|
: mat3(vec3(1745.0425298314172, 1216.6168361476490, -8257.7997278925690),
|
||||||
|
vec3(-2666.3474220535695, -2173.1012343082230, 2575.2827530017594),
|
||||||
|
vec3(0.55995389139931482, 0.70381203140554553, 1.8993753891711275));
|
||||||
|
return mix(clamp(vec3(m[0] / (vec3(clamp(temperature, 1000.0, 40000.0)) + m[1]) + m[2]), vec3(0.0), vec3(1.0)),
|
||||||
|
vec3(1.0), smoothstep(1000.0, 0.0, temperature));
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec4 pixColor = texture2D(tex, v_texcoord);
|
||||||
|
|
||||||
|
// RGB
|
||||||
|
vec3 color = vec3(pixColor[0], pixColor[1], pixColor[2]);
|
||||||
|
|
||||||
|
#ifdef WithQuickAndDirtyLuminancePreservation
|
||||||
|
color *= mix(1.0, dot(color, vec3(0.2126, 0.7152, 0.0722)) / max(dot(color, vec3(0.2126, 0.7152, 0.0722)), 1e-5),
|
||||||
|
LuminancePreservationFactor);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
color = mix(color, color * colorTemperatureToRGB(temperature), temperatureStrength);
|
||||||
|
|
||||||
|
vec4 outCol = vec4(color, pixColor[3]);
|
||||||
|
|
||||||
|
gl_FragColor = outCol;
|
||||||
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
// from https://github.com/hyprwm/Hyprland/issues/1140#issuecomment-1335128437
|
||||||
|
|
||||||
|
precision highp float;
|
||||||
|
varying vec2 v_texcoord;
|
||||||
|
uniform sampler2D tex;
|
||||||
|
|
||||||
|
const float temperature = 3000.0;
|
||||||
|
const float temperatureStrength = 0.75;
|
||||||
|
|
||||||
|
#define WithQuickAndDirtyLuminancePreservation
|
||||||
|
const float LuminancePreservationFactor = 1.0;
|
||||||
|
|
||||||
|
// function from https://www.shadertoy.com/view/4sc3D7
|
||||||
|
// valid from 1000 to 40000 K (and additionally 0 for pure full white)
|
||||||
|
vec3 colorTemperatureToRGB(const in float temperature) {
|
||||||
|
// values from: http://blenderartists.org/forum/showthread.php?270332-OSL-Goodness&p=2268693&viewfull=1#post2268693
|
||||||
|
mat3 m = (temperature <= 6500.0) ? mat3(vec3(0.0, -2902.1955373783176, -8257.7997278925690),
|
||||||
|
vec3(0.0, 1669.5803561666639, 2575.2827530017594),
|
||||||
|
vec3(1.0, 1.3302673723350029, 1.8993753891711275))
|
||||||
|
: mat3(vec3(1745.0425298314172, 1216.6168361476490, -8257.7997278925690),
|
||||||
|
vec3(-2666.3474220535695, -2173.1012343082230, 2575.2827530017594),
|
||||||
|
vec3(0.55995389139931482, 0.70381203140554553, 1.8993753891711275));
|
||||||
|
return mix(clamp(vec3(m[0] / (vec3(clamp(temperature, 1000.0, 40000.0)) + m[1]) + m[2]), vec3(0.0), vec3(1.0)),
|
||||||
|
vec3(1.0), smoothstep(1000.0, 0.0, temperature));
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec4 pixColor = texture2D(tex, v_texcoord);
|
||||||
|
|
||||||
|
// RGB
|
||||||
|
vec3 color = vec3(pixColor[0], pixColor[1], pixColor[2]);
|
||||||
|
|
||||||
|
#ifdef WithQuickAndDirtyLuminancePreservation
|
||||||
|
color *= mix(1.0, dot(color, vec3(0.2126, 0.7152, 0.0722)) / max(dot(color, vec3(0.2126, 0.7152, 0.0722)), 1e-5),
|
||||||
|
LuminancePreservationFactor);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
color = mix(color, color * colorTemperatureToRGB(temperature), temperatureStrength);
|
||||||
|
|
||||||
|
vec4 outCol = vec4(color, pixColor[3]);
|
||||||
|
|
||||||
|
gl_FragColor = outCol;
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
precision highp float;
|
||||||
|
varying vec2 v_texcoord;
|
||||||
|
uniform sampler2D tex;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec4 pixColor = texture2D(tex, v_texcoord);
|
||||||
|
gl_FragColor = vec4(1.0 - pixColor.r, 1.0 - pixColor.g, 1.0 - pixColor.b, pixColor.a);
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"key": "general:col.active_border",
|
||||||
|
"value": "rgb(82aaff)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "general:border_size",
|
||||||
|
"value": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "general:gaps_out",
|
||||||
|
"value": 12
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# _ _ _
|
||||||
|
# | |__ _ _ _ __ _ __ ___| |_| |
|
||||||
|
# | '_ \| | | | '_ \| '__/ __| __| |
|
||||||
|
# | | | | |_| | |_) | | | (__| |_| |
|
||||||
|
# |_| |_|\__, | .__/|_| \___|\__|_|
|
||||||
|
# |___/|_|
|
||||||
|
#
|
||||||
|
# Execute this file in the hyprland.conf with exec-always
|
||||||
|
sleep 3
|
||||||
|
script=$(readlink -f $0)
|
||||||
|
path=$(dirname $script)
|
||||||
|
if [ ! -f $path/hyprctl.json ] ;then
|
||||||
|
echo ":: ERROR: hyprctl.json not found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
jq -c '.[]' $path/hyprctl.json | while read i; do
|
||||||
|
_val() {
|
||||||
|
echo $1 | jq -r '.value'
|
||||||
|
}
|
||||||
|
_key() {
|
||||||
|
echo $1 | jq -r '.key'
|
||||||
|
}
|
||||||
|
key=$(_key $i)
|
||||||
|
val=$(_val $i)
|
||||||
|
echo ":: Execute: hyprctl keyword $key $val"
|
||||||
|
hyprctl keyword $key $val
|
||||||
|
done
|
BIN
configs/dotfiles/hyprland/desktop/.config/ml4w/assets/blank.png
Normal file
After Width: | Height: | Size: 569 B |
BIN
configs/dotfiles/hyprland/desktop/.config/ml4w/cache/blurred_wallpaper.png
vendored
Normal file
After Width: | Height: | Size: 832 KiB |
1
configs/dotfiles/hyprland/desktop/.config/ml4w/cache/current_wallpaper
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/home/gib/Pictures/Wallpapers/faroe_islands.jpg
|
1
configs/dotfiles/hyprland/desktop/.config/ml4w/cache/current_wallpaper.rasi
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
* { current-image: url("/home/gib/.config/ml4w/cache/blurred_wallpaper.png", height); }
|
BIN
configs/dotfiles/hyprland/desktop/.config/ml4w/cache/square_wallpaper.png
vendored
Normal file
After Width: | Height: | Size: 3.7 MiB |
BIN
configs/dotfiles/hyprland/desktop/.config/ml4w/cache/wallpaper-generated/blur-50x30-off-.png
vendored
Normal file
After Width: | Height: | Size: 165 KiB |
After Width: | Height: | Size: 178 KiB |
After Width: | Height: | Size: 2.2 MiB |
After Width: | Height: | Size: 832 KiB |
After Width: | Height: | Size: 141 KiB |