Update all dotfiles
@ -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/gulfport_default/.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/gulfport_default/.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;
|
||||
}
|
@ -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/*"
|
||||
]
|
||||
},
|
||||
}
|
||||
}
|
@ -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>
|
||||
}
|
@ -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>
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
# -----------------------------------------------------
|
||||
# INIT
|
||||
# -----------------------------------------------------
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Exports
|
||||
# -----------------------------------------------------
|
||||
export EDITOR=nvim
|
||||
export PATH="/usr/lib/ccache/bin/:$PATH"
|
@ -0,0 +1,71 @@
|
||||
# -----------------------------------------------------
|
||||
# ALIASES
|
||||
# -----------------------------------------------------
|
||||
|
||||
# -----------------------------------------------------
|
||||
# General
|
||||
# -----------------------------------------------------
|
||||
alias c='clear'
|
||||
alias nf='fastfetch'
|
||||
alias pf='fastfetch'
|
||||
alias ff='fastfetch'
|
||||
alias ls='eza -a --icons=always'
|
||||
alias ll='eza -al --icons=always'
|
||||
alias lt='eza -a --tree --level=1 --icons=always'
|
||||
alias shutdown='systemctl poweroff'
|
||||
alias v='$EDITOR'
|
||||
alias vim='$EDITOR'
|
||||
alias ts='~/.config/ml4w/scripts/snapshot.sh'
|
||||
alias wifi='nmtui'
|
||||
alias cleanup='~/.config/ml4w/scripts/cleanup.sh'
|
||||
|
||||
# -----------------------------------------------------
|
||||
# ML4W Apps
|
||||
# -----------------------------------------------------
|
||||
alias ml4w='com.ml4w.welcome'
|
||||
alias ml4w-settings='com.ml4w.dotfilessettings'
|
||||
alias ml4w-hyprland='com.ml4w.hyprland.settings'
|
||||
alias ml4w-options='ml4w-hyprland-setup -m options'
|
||||
alias ml4w-sidebar='ags toggle sidebar'
|
||||
alias ml4w-diagnosis='~/.config/hypr/scripts/diagnosis.sh'
|
||||
alias ml4w-hyprland-diagnosis='~/.config/hypr/scripts/diagnosis.sh'
|
||||
alias ml4w-qtile-diagnosis='~/.config/ml4w/qtile/scripts/diagnosis.sh'
|
||||
alias ml4w-update='~/.config/ml4w/update.sh'
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Window Managers
|
||||
# -----------------------------------------------------
|
||||
|
||||
alias Qtile='startx'
|
||||
# Hyprland with Hyprland
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Git
|
||||
# -----------------------------------------------------
|
||||
alias gs="git status"
|
||||
alias ga="git add"
|
||||
alias gc="git commit -m"
|
||||
alias gp="git push"
|
||||
alias gpl="git pull"
|
||||
alias gst="git stash"
|
||||
alias gsp="git stash; git pull"
|
||||
alias gfo="git fetch origin"
|
||||
alias gcheck="git checkout"
|
||||
alias gcredential="git config credential.helper store"
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Scripts
|
||||
# -----------------------------------------------------
|
||||
alias ascii='~/.config/ml4w/scripts/figlet.sh'
|
||||
|
||||
# -----------------------------------------------------
|
||||
# System
|
||||
# -----------------------------------------------------
|
||||
alias update-grub='sudo grub-mkconfig -o /boot/grub/grub.cfg'
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Qtile
|
||||
# -----------------------------------------------------
|
||||
alias res1='xrandr --output DisplayPort-0 --mode 2560x1440 --rate 120'
|
||||
alias res2='xrandr --output DisplayPort-0 --mode 1920x1080 --rate 120'
|
||||
alias setkb='setxkbmap de;echo "Keyboard set back to de."'
|
@ -0,0 +1,15 @@
|
||||
# -----------------------------------------------------
|
||||
# CUSTOMIZATION
|
||||
# -----------------------------------------------------
|
||||
POSH=agnoster
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Prompt
|
||||
# -----------------------------------------------------
|
||||
# eval "$(oh-my-posh init bash --config $HOME/.config/ohmyposh/zen.toml)"
|
||||
eval "$(oh-my-posh init bash --config $HOME/.config/ohmyposh/EDM115-newline.omp.json)"
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Pywal
|
||||
# -----------------------------------------------------
|
||||
cat ~/.cache/wal/sequences
|
@ -0,0 +1,18 @@
|
||||
# -----------------------------------------------------
|
||||
# AUTOSTART
|
||||
# -----------------------------------------------------
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Fastfetch
|
||||
# -----------------------------------------------------
|
||||
if [[ $(tty) == *"pts"* ]]; then
|
||||
fastfetch --config examples/13
|
||||
else
|
||||
echo
|
||||
if [ -f /bin/qtile ]; then
|
||||
echo "Start Qtile X11 with command Qtile"
|
||||
fi
|
||||
if [ -f /bin/hyprctl ]; then
|
||||
echo "Start Hyprland with command Hyprland"
|
||||
fi
|
||||
fi
|
469
configs/dotfiles/hyprland/gulfport_default/.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
|
@ -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,5 @@
|
||||
file:///home/gib/Documents
|
||||
file:///home/gib/Music
|
||||
file:///home/gib/Pictures
|
||||
file:///home/gib/Videos
|
||||
file:///home/gib/Downloads
|
@ -0,0 +1,17 @@
|
||||
[Settings]
|
||||
gtk-theme-name=Adwaita
|
||||
gtk-icon-theme-name=Papirus
|
||||
gtk-font-name=Cantarell 11
|
||||
gtk-cursor-theme-name=Bibata-Modern-Ice
|
||||
gtk-cursor-theme-size=24
|
||||
gtk-toolbar-style=GTK_TOOLBAR_ICONS
|
||||
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||
gtk-button-images=0
|
||||
gtk-menu-images=0
|
||||
gtk-enable-event-sounds=1
|
||||
gtk-enable-input-feedback-sounds=0
|
||||
gtk-xft-antialias=1
|
||||
gtk-xft-hinting=1
|
||||
gtk-xft-hintstyle=hintslight
|
||||
gtk-xft-rgba=rgb
|
||||
gtk-application-prefer-dark-theme=0
|
@ -0,0 +1,2 @@
|
||||
[Settings]
|
||||
gtk-application-prefer-dark-theme=0
|
@ -0,0 +1 @@
|
||||
source = ~/.config/hypr/conf/animations/default.conf
|
@ -0,0 +1,14 @@
|
||||
# -----------------------------------------------------
|
||||
# Animations
|
||||
# name "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
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
# -----------------------------------------------------
|
||||
# Animations
|
||||
# name "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
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
# -----------------------------------------------------
|
||||
# Animations
|
||||
# name "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
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
# -----------------------------------------------------
|
||||
# Animations
|
||||
# name: "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
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
# -----------------------------------------------------
|
||||
# Animations
|
||||
# name "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,19 @@
|
||||
# -----------------------------------------------------
|
||||
# Animations
|
||||
# name "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, once
|
||||
animation = fade, 1, 10, default
|
||||
animation = workspaces, 1, 5, wind
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
# -----------------------------------------------------
|
||||
# Animations
|
||||
# name "Default"
|
||||
# -----------------------------------------------------
|
||||
animations {
|
||||
enabled = false
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
# -----------------------------------------------------
|
||||
# Animations
|
||||
# name "Default"
|
||||
# -----------------------------------------------------
|
||||
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
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
# ___ __ __ __
|
||||
# / _ |__ __/ /____ ___ / /____ _____/ /_
|
||||
# / __ / // / __/ _ \(_-</ __/ _ `/ __/ __/
|
||||
# /_/ |_\_,_/\__/\___/___/\__/\_,_/_/ \__/
|
||||
#
|
||||
|
||||
# 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
|
@ -0,0 +1 @@
|
||||
exec-once = hyprctl setcursor Bibata-Modern-Ice 24
|
@ -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 @@
|
||||
source = ~/.config/hypr/conf/decorations/default.conf
|
@ -0,0 +1,28 @@
|
||||
# -----------------------------------------------------
|
||||
# General window decoration
|
||||
# name: "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
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
# -----------------------------------------------------
|
||||
# General window decoration
|
||||
# name: "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,28 @@
|
||||
# -----------------------------------------------------
|
||||
# General window decoration
|
||||
# name: "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
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
# -----------------------------------------------------
|
||||
# General window decoration
|
||||
# name: "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
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
# -----------------------------------------------------
|
||||
# General window decoration
|
||||
# name: "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
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
# -----------------------------------------------------
|
||||
# General window decoration
|
||||
# name: "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
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
# -----------------------------------------------------
|
||||
# General window decoration
|
||||
# name: "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
|
||||
}
|
||||
}
|
@ -0,0 +1 @@
|
||||
source = ~/.config/hypr/conf/environments/default.conf
|
@ -0,0 +1,6 @@
|
||||
# -----------------------------------------------------
|
||||
# Environment Variables
|
||||
# name: "Default"
|
||||
# -----------------------------------------------------
|
||||
|
||||
# Default Settings in ml4w.conf
|
@ -0,0 +1,10 @@
|
||||
# -----------------------------------------------------
|
||||
# Environment Variables
|
||||
# name: "KVM"
|
||||
# -----------------------------------------------------
|
||||
|
||||
# Default Settings in ml4w.conf
|
||||
|
||||
# KVM Environment
|
||||
env = WLR_RENDERER_ALLOW_SOFTWARE, 1
|
||||
# env = LIBGL_ALWAYS_SOFTWARE,1
|
@ -0,0 +1,29 @@
|
||||
# -----------------------------------------------------
|
||||
# Environment Variables
|
||||
# name: "Nvidia"
|
||||
# -----------------------------------------------------
|
||||
|
||||
# Default Settings in ml4w.conf
|
||||
|
||||
# NVIDIA 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
|
||||
|
||||
cursor {
|
||||
no_hardware_cursors = true
|
||||
}
|
@ -0,0 +1 @@
|
||||
source = ~/.config/hypr/conf/keybindings/default.conf
|
@ -0,0 +1,122 @@
|
||||
# -----------------------------------------------------
|
||||
# Key bindings
|
||||
# name: "Default"
|
||||
# -----------------------------------------------------
|
||||
|
||||
# SUPER KEY
|
||||
$mainMod = SUPER
|
||||
$HYPRSCRIPTS = ~/.config/hypr/scripts
|
||||
$SCRIPTS = ~/.config/ml4w/scripts
|
||||
|
||||
# Applications
|
||||
bind = $mainMod, RETURN, exec, ~/.config/ml4w/settings/terminal.sh # Open the terminal
|
||||
bind = $mainMod, B, exec, ~/.config/ml4w/settings/browser.sh # Open the browser
|
||||
bind = $mainMod, E, exec, ~/.config/ml4w/settings/filemanager.sh # Open the filemanager
|
||||
bind = $mainMod CTRL, E, exec, ~/.config/ml4w/settings/emojipicker.sh # Open the emoji picker
|
||||
bind = $mainMod CTRL, C, exec, ~/.config/ml4w/settings/calculator.sh # Open the calculator
|
||||
|
||||
# Windows
|
||||
bind = $mainMod, Q, killactive # Kill active window
|
||||
bind = $mainMod SHIFT, Q, exec, hyprctl activewindow | grep pid | tr -d 'pid:'| xargs kill
|
||||
bind = $mainMod, F, fullscreen, 0 # Set active window to fullscreen
|
||||
bind = $mainMod, M, fullscreen, 1
|
||||
bind = $mainMod, T, togglefloating # Toggle active windows into floating mode
|
||||
bind = $mainMod SHIFT, T, exec, $HYPRSCRIPTS/toggleallfloat.sh # Toggle all windows into floating mode
|
||||
bind = $mainMod, J, togglesplit # Toggle split
|
||||
bind = $mainMod, left, movefocus, l # Move focus left
|
||||
bind = $mainMod, right, movefocus, r # Move focus right
|
||||
bind = $mainMod, up, movefocus, u # Move focus up
|
||||
bind = $mainMod, down, movefocus, d # Move focus down
|
||||
bindm = $mainMod, mouse:272, movewindow # Move window with the mouse
|
||||
bindm = $mainMod, mouse:273, resizewindow # Resize window with the mouse
|
||||
bind = $mainMod SHIFT, right, resizeactive, 100 0 # Increase window width with keyboard
|
||||
bind = $mainMod SHIFT, left, resizeactive, -100 0 # Reduce window width with keyboard
|
||||
bind = $mainMod SHIFT, down, resizeactive, 0 100 # Increase window height with keyboard
|
||||
bind = $mainMod SHIFT, up, resizeactive, 0 -100 # Reduce window height with keyboard
|
||||
bind = $mainMod, G, togglegroup # Toggle window group
|
||||
bind = $mainMod, K, swapsplit # Swapsplit
|
||||
|
||||
# Actions
|
||||
bind = $mainMod SHIFT, A, exec, $HYPRSCRIPTS/toggle-animations.sh # Toggle animations
|
||||
bind = $mainMod, PRINT, exec, $HYPRSCRIPTS/screenshot.sh # Take a screenshot
|
||||
bind = $mainMod SHIFT, S, exec, $HYPRSCRIPTS/screenshot.sh # Take a screenshot
|
||||
bind = $mainMod CTRL, Q, exec, ~/.config/ml4w/scripts/wlogout.sh # Start wlogout
|
||||
bind = $mainMod SHIFT, W, exec, waypaper --random # Change the wallpaper
|
||||
bind = $mainMod CTRL, W, exec, waypaper # Open wallpaper selector
|
||||
bind = $mainMod ALT, W, exec, $HYPRSCRIPTS/wallpaper-automation.sh # Start random wallpaper script
|
||||
bind = $mainMod CTRL, RETURN, exec, pkill rofi || rofi -show drun -replace -i # Open application launcher
|
||||
bind = $mainMod CTRL, K, exec, $HYPRSCRIPTS/keybindings.sh # Show keybindings
|
||||
bind = $mainMod SHIFT, B, exec, ~/.config/waybar/launch.sh # Reload waybar
|
||||
bind = $mainMod CTRL, B, exec, ~/.config/waybar/toggle.sh # Toggle waybar
|
||||
bind = $mainMod SHIFT, R, exec, $HYPRSCRIPTS/loadconfig.sh # Reload hyprland config
|
||||
bind = $mainMod, V, exec, $SCRIPTS/cliphist.sh # Open clipboard manager
|
||||
bind = $mainMod CTRL, T, exec, ~/.config/waybar/themeswitcher.sh # Open waybar theme switcher
|
||||
bind = $mainMod CTRL, S, exec, ~/.config/ml4w/apps/ML4W_Dotfiles_Settings-x86_64.AppImage # Open ML4W Dotfiles Settings app
|
||||
bind = $mainMod SHIFT, H, exec, $HYPRSCRIPTS/hyprshade.sh # Toggle screenshader
|
||||
bind = $mainMod ALT, G, exec, $HYPRSCRIPTS/gamemode.sh # Toggle game mode
|
||||
bind = $mainMod, Z, exec, missioncenter # Open Mission Center
|
||||
|
||||
# Workspaces
|
||||
bind = $mainMod, 1, workspace, 1 # Open workspace 1
|
||||
bind = $mainMod, 2, workspace, 2 # Open workspace 2
|
||||
bind = $mainMod, 3, workspace, 3 # Open workspace 3
|
||||
bind = $mainMod, 4, workspace, 4 # Open workspace 4
|
||||
bind = $mainMod, 5, workspace, 5 # Open workspace 5
|
||||
bind = $mainMod, 6, workspace, 6 # Open workspace 6
|
||||
bind = $mainMod, 7, workspace, 7 # Open workspace 7
|
||||
bind = $mainMod, 8, workspace, 8 # Open workspace 8
|
||||
bind = $mainMod, 9, workspace, 9 # Open workspace 9
|
||||
bind = $mainMod, 0, workspace, 10 # Open workspace 10
|
||||
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1 # Move active window to workspace 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2 # Move active window to workspace 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3 # Move active window to workspace 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4 # Move active window to workspace 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5 # Move active window to workspace 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6 # Move active window to workspace 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7 # Move active window to workspace 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8 # Move active window to workspace 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9 # Move active window to workspace 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10 # Move active window to workspace 10
|
||||
|
||||
bind = $mainMod, Tab, workspace, m+1 # Open next workspace
|
||||
bind = $mainMod SHIFT, Tab, workspace, m-1 # Open previous workspace
|
||||
|
||||
bind = $mainMod CTRL, 1, exec, $HYPRSCRIPTS/moveTo.sh 1 # Move all windows to workspace 1
|
||||
bind = $mainMod CTRL, 2, exec, $HYPRSCRIPTS/moveTo.sh 2 # Move all windows to workspace 2
|
||||
bind = $mainMod CTRL, 3, exec, $HYPRSCRIPTS/moveTo.sh 3 # Move all windows to workspace 3
|
||||
bind = $mainMod CTRL, 4, exec, $HYPRSCRIPTS/moveTo.sh 4 # Move all windows to workspace 4
|
||||
bind = $mainMod CTRL, 5, exec, $HYPRSCRIPTS/moveTo.sh 5 # Move all windows to workspace 5
|
||||
bind = $mainMod CTRL, 6, exec, $HYPRSCRIPTS/moveTo.sh 6 # Move all windows to workspace 6
|
||||
bind = $mainMod CTRL, 7, exec, $HYPRSCRIPTS/moveTo.sh 7 # Move all windows to workspace 7
|
||||
bind = $mainMod CTRL, 8, exec, $HYPRSCRIPTS/moveTo.sh 8 # Move all windows to workspace 8
|
||||
bind = $mainMod CTRL, 9, exec, $HYPRSCRIPTS/moveTo.sh 9 # Move all windows to workspace 9
|
||||
bind = $mainMod CTRL, 0, exec, $HYPRSCRIPTS/moveTo.sh 10 # Move all windows to workspace 10
|
||||
|
||||
bind = $mainMod, mouse_down, workspace, e+1 # Open next workspace
|
||||
bind = $mainMod, mouse_up, workspace, e-1 # Open previous workspace
|
||||
bind = $mainMod CTRL, down, workspace, empty # Open the next empty workspace
|
||||
|
||||
# Passthrough SUPER KEY to Virtual Machine
|
||||
# bind = $mainMod, P, submap, passthru # Passthrough SUPER key to virtual machine
|
||||
# submap = passthru
|
||||
# bind = SUPER, Escape, submap, reset # Get SUPER key back from virtual machine
|
||||
# submap = reset
|
||||
|
||||
# Fn keys
|
||||
bind = , XF86MonBrightnessUp, exec, brightnessctl -q s +10% # Increase brightness by 10%
|
||||
bind = , XF86MonBrightnessDown, exec, brightnessctl -q s 10%- # Reduce brightness by 10%
|
||||
bind = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5% # Increase volume by 5%
|
||||
bind = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% # Reduce volume by 5%
|
||||
bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle # Toggle mute
|
||||
bind = , XF86AudioPlay, exec, playerctl play-pause # Audio play pause
|
||||
bind = , XF86AudioPause, exec, playerctl pause # Audio pause
|
||||
bind = , XF86AudioNext, exec, playerctl next # Audio next
|
||||
bind = , XF86AudioPrev, exec, playerctl previous # Audio previous
|
||||
bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle # Toggle microphone
|
||||
bind = , XF86Calculator, exec, ~/.config/ml4w/settings/calculator.sh # Open calculator
|
||||
bind = , XF86Lock, exec, hyprlock # Open screenlock
|
||||
bind = , XF86Tools, exec, $(cat ~/.config/ml4w/settings/terminal.sh) --class dotfiles-floating -e ~/.config/ml4w/apps/ML4W_Dotfiles_Settings-x86_64.AppImage # Open ML4W Dotfiles Settings app
|
||||
|
||||
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,120 @@
|
||||
# -----------------------------------------------------
|
||||
# Key bindings
|
||||
# name: "Default"
|
||||
# -----------------------------------------------------
|
||||
|
||||
# SUPER KEY
|
||||
$mainMod = SUPER
|
||||
$HYPRSCRIPTS = ~/.config/hypr/scripts
|
||||
$SCRIPTS = ~/.config/ml4w/scripts
|
||||
|
||||
# Applications
|
||||
bind = $mainMod, RETURN, exec, ~/.config/ml4w/settings/terminal.sh # Open the terminal
|
||||
bind = $mainMod, B, exec, ~/.config/ml4w/settings/browser.sh # Open the browser
|
||||
bind = $mainMod, E, exec, ~/.config/ml4w/settings/filemanager.sh # Open the filemanager
|
||||
bind = $mainMod CTRL, E, exec, ~/.config/ml4w/settings/emojipicker.sh # Open the emoji picker
|
||||
bind = $mainMod CTRL, C, exec, ~/.config/ml4w/settings/calculator.sh # Open the calculator
|
||||
|
||||
# Windows
|
||||
bind = $mainMod, Q, killactive # Kill active window
|
||||
bind = $mainMod, F, fullscreen # Set active window to fullscreen
|
||||
bind = $mainMod, T, togglefloating # Toggle active windows into floating mode
|
||||
bind = $mainMod SHIFT, T, exec, $HYPRSCRIPTS/toggleallfloat.sh # Toggle all windows into floating mode
|
||||
bind = $mainMod, J, togglesplit # Toggle split
|
||||
bind = $mainMod, left, movefocus, l # Move focus left
|
||||
bind = $mainMod, right, movefocus, r # Move focus right
|
||||
bind = $mainMod, up, movefocus, u # Move focus up
|
||||
bind = $mainMod, down, movefocus, d # Move focus down
|
||||
bindm = $mainMod, mouse:272, movewindow # Move window with the mouse
|
||||
bindm = $mainMod, mouse:273, resizewindow # Resize window with the mouse
|
||||
bind = $mainMod SHIFT, right, resizeactive, 100 0 # Increase window width with keyboard
|
||||
bind = $mainMod SHIFT, left, resizeactive, -100 0 # Reduce window width with keyboard
|
||||
bind = $mainMod SHIFT, down, resizeactive, 0 100 # Increase window height with keyboard
|
||||
bind = $mainMod SHIFT, up, resizeactive, 0 -100 # Reduce window height with keyboard
|
||||
bind = $mainMod, G, togglegroup # Toggle window group
|
||||
bind = $mainMod, K, swapsplit # Swapsplit
|
||||
|
||||
# Actions
|
||||
bind = $mainMod SHIFT, A, exec, $HYPRSCRIPTS/toggle-animations.sh # Toggle animations
|
||||
bind = $mainMod, PRINT, exec, $HYPRSCRIPTS/screenshot.sh # Take a screenshot
|
||||
bind = $mainMod SHIFT, S, exec, $HYPRSCRIPTS/screenshot.sh # Take a screenshot
|
||||
bind = $mainMod CTRL, Q, exec, ~/.config/ml4w/scripts/wlogout.sh # Start wlogout
|
||||
bind = $mainMod SHIFT, W, exec, waypaper --random # Change the wallpaper
|
||||
bind = $mainMod CTRL, W, exec, waypaper # Open wallpaper selector
|
||||
bind = $mainMod ALT, W, exec, $HYPRSCRIPTS/wallpaper-automation.sh # Start random wallpaper script
|
||||
bind = $mainMod CTRL, RETURN, exec, pkill rofi || rofi -show drun -replace -i # Open application launcher
|
||||
bind = $mainMod CTRL, K, exec, $HYPRSCRIPTS/keybindings.sh # Show keybindings
|
||||
bind = $mainMod SHIFT, B, exec, ~/.config/waybar/launch.sh # Reload waybar
|
||||
bind = $mainMod CTRL, B, exec, ~/.config/waybar/toggle.sh # Toggle waybar
|
||||
bind = $mainMod SHIFT, R, exec, $HYPRSCRIPTS/loadconfig.sh # Reload hyprland config
|
||||
bind = $mainMod, V, exec, $SCRIPTS/cliphist.sh # Open clipboard manager
|
||||
bind = $mainMod CTRL, T, exec, ~/.config/waybar/themeswitcher.sh # Open waybar theme switcher
|
||||
bind = $mainMod CTRL, S, exec, ~/.config/ml4w/apps/ML4W_Dotfiles_Settings-x86_64.AppImage # Open ML4W Dotfiles Settings app
|
||||
bind = $mainMod SHIFT, H, exec, $HYPRSCRIPTS/hyprshade.sh # Toggle screenshader
|
||||
bind = $mainMod ALT, G, exec, $HYPRSCRIPTS/gamemode.sh # Toggle game mode
|
||||
bind = $mainMod, Z, exec, missioncenter # Open Mission Center
|
||||
|
||||
# Workspaces
|
||||
bind = $mainMod, ampersand, workspace, 1 # Open workspace 1
|
||||
bind = $mainMod, eacute, workspace, 2 # Open workspace 2
|
||||
bind = $mainMod, quotedbl, workspace, 3 # Open workspace 3
|
||||
bind = $mainMod, apostrophe, workspace, 4 # Open workspace 4
|
||||
bind = $mainMod, parenleft, workspace, 5 # Open workspace 5
|
||||
bind = $mainMod, minus, workspace, 6 # Open workspace 6
|
||||
bind = $mainMod, egrave, workspace, 7 # Open workspace 7
|
||||
bind = $mainMod, underscore, workspace, 8 # Open workspace 8
|
||||
bind = $mainMod, ccedilla, workspace, 9 # Open workspace 9
|
||||
bind = $mainMod, agrave, workspace, 10 # Open workspace 10
|
||||
|
||||
bind = $mainMod SHIFT, ampersand, movetoworkspace, 1 # Move active window to workspace 1
|
||||
bind = $mainMod SHIFT, eacute, movetoworkspace, 2 # Move active window to workspace 2
|
||||
bind = $mainMod SHIFT, quotedbl, movetoworkspace, 3 # Move active window to workspace 3
|
||||
bind = $mainMod SHIFT, apostrophe, movetoworkspace, 4 # Move active window to workspace 4
|
||||
bind = $mainMod SHIFT, parenleft, movetoworkspace, 5 # Move active window to workspace 5
|
||||
bind = $mainMod SHIFT, minus, movetoworkspace, 6 # Move active window to workspace 6
|
||||
bind = $mainMod SHIFT, egrave, movetoworkspace, 7 # Move active window to workspace 7
|
||||
bind = $mainMod SHIFT, underscore, movetoworkspace, 8 # Move active window to workspace 8
|
||||
bind = $mainMod SHIFT, ccedilla, movetoworkspace, 9 # Move active window to workspace 9
|
||||
bind = $mainMod SHIFT, agrave, movetoworkspace, 10 # Move active window to workspace 10
|
||||
|
||||
bind = $mainMod, Tab, workspace, m+1 # Open next workspace
|
||||
bind = $mainMod SHIFT, Tab, workspace, m-1 # Open previous workspace
|
||||
|
||||
bind = $mainMod CTRL, ampersand, exec, $HYPRSCRIPTS/moveTo.sh 1 # Move all windows to workspace 1
|
||||
bind = $mainMod CTRL, eacute, exec, $HYPRSCRIPTS/moveTo.sh 2 # Move all windows to workspace 2
|
||||
bind = $mainMod CTRL, quotedbl, exec, $HYPRSCRIPTS/moveTo.sh 3 # Move all windows to workspace 3
|
||||
bind = $mainMod CTRL, apostrophe, exec, $HYPRSCRIPTS/moveTo.sh 4 # Move all windows to workspace 4
|
||||
bind = $mainMod CTRL, parenleft, exec, $HYPRSCRIPTS/moveTo.sh 5 # Move all windows to workspace 5
|
||||
bind = $mainMod CTRL, minus, exec, $HYPRSCRIPTS/moveTo.sh 6 # Move all windows to workspace 6
|
||||
bind = $mainMod CTRL, egrave, exec, $HYPRSCRIPTS/moveTo.sh 7 # Move all windows to workspace 7
|
||||
bind = $mainMod CTRL, underscore, exec, $HYPRSCRIPTS/moveTo.sh 8 # Move all windows to workspace 8
|
||||
bind = $mainMod CTRL, ccedilla, exec, $HYPRSCRIPTS/moveTo.sh 9 # Move all windows to workspace 9
|
||||
bind = $mainMod CTRL, agrave, exec, $HYPRSCRIPTS/moveTo.sh 10 # Move all windows to workspace 10
|
||||
|
||||
bind = $mainMod, mouse_down, workspace, e+1 # Open next workspace
|
||||
bind = $mainMod, mouse_up, workspace, e-1 # Open previous workspace
|
||||
bind = $mainMod CTRL, down, workspace, empty # Open the next empty workspace
|
||||
|
||||
# Passthrough SUPER KEY to Virtual Machine
|
||||
# bind = $mainMod, P, submap, passthru # Passthrough SUPER key to virtual machine
|
||||
# submap = passthru
|
||||
# bind = SUPER, Escape, submap, reset # Get SUPER key back from virtual machine
|
||||
# submap = reset
|
||||
|
||||
# Fn keys
|
||||
bind = , XF86MonBrightnessUp, exec, brightnessctl -q s +10% # Increase brightness by 10%
|
||||
bind = , XF86MonBrightnessDown, exec, brightnessctl -q s 10%- # Reduce brightness by 10%
|
||||
bind = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5% # Increase volume by 5%
|
||||
bind = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% # Reduce volume by 5%
|
||||
bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle # Toggle mute
|
||||
bind = , XF86AudioPlay, exec, playerctl play-pause # Audio play pause
|
||||
bind = , XF86AudioPause, exec, playerctl pause # Audio pause
|
||||
bind = , XF86AudioNext, exec, playerctl next # Audio next
|
||||
bind = , XF86AudioPrev, exec, playerctl previous # Audio previous
|
||||
bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle # Toggle microphone
|
||||
bind = , XF86Calculator, exec, ~/.config/ml4w/settings/calculator.sh # Open calculator
|
||||
bind = , XF86Lock, exec, hyprlock # Open screenlock
|
||||
bind = , XF86Tools, exec, alacritty --class dotfiles-floating -e ~/.config/ml4w/apps/ML4W_Dotfiles_Settings-x86_64.AppImage # Open ML4W Dotfiles Settings app
|
||||
|
||||
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 @@
|
||||
source = ~/.config/hypr/conf/layouts/default.conf
|
@ -0,0 +1,23 @@
|
||||
# -----------------------------------------------------
|
||||
# Layouts
|
||||
# -----------------------------------------------------
|
||||
|
||||
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
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
# -----------------------------------------------------
|
||||
# Layouts
|
||||
# -----------------------------------------------------
|
||||
|
||||
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,9 @@
|
||||
# -----------------------------------------------------
|
||||
# Misc settings
|
||||
# -----------------------------------------------------
|
||||
|
||||
misc {
|
||||
disable_hyprland_logo = true
|
||||
disable_splash_rendering = true
|
||||
initial_workspace_tracking = 1
|
||||
}
|
@ -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.openai.com.*)
|
||||
windowrulev2 = size 500 50%,title:(.*chat.openai.com.*)
|
||||
windowrulev2 = move 20 70,title:(.*chat.openai.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 @@
|
||||
source = ~/.config/hypr/conf/monitors/default.conf
|
@ -0,0 +1,6 @@
|
||||
# -----------------------------------------------------
|
||||
# Monitor Setup
|
||||
# name: "1366x768"
|
||||
# -----------------------------------------------------
|
||||
|
||||
monitor=,1366x768,auto,1
|
@ -0,0 +1,6 @@
|
||||
# -----------------------------------------------------
|
||||
# Monitor Setup
|
||||
# name: "1440x1080"
|
||||
# -----------------------------------------------------
|
||||
|
||||
monitor=,1440x1080,auto,1
|
@ -0,0 +1,6 @@
|
||||
# -----------------------------------------------------
|
||||
# Monitor Setup
|
||||
# name: "1600x900"
|
||||
# -----------------------------------------------------
|
||||
|
||||
monitor=,1600x900,auto,1
|
@ -0,0 +1,6 @@
|
||||
# -----------------------------------------------------
|
||||
# Monitor Setup
|
||||
# name: "1920x1080"
|
||||
# -----------------------------------------------------
|
||||
|
||||
monitor=,1920x1080,auto,1
|
@ -0,0 +1,6 @@
|
||||
# -----------------------------------------------------
|
||||
# Monitor Setup
|
||||
# name: "1920x1200"
|
||||
# -----------------------------------------------------
|
||||
|
||||
monitor=,1920x1200,auto,1
|
@ -0,0 +1,6 @@
|
||||
# -----------------------------------------------------
|
||||
# Monitor Setup
|
||||
# name: "2560x1440"
|
||||
# -----------------------------------------------------
|
||||
|
||||
monitor=,2560x1440,auto,1
|
@ -0,0 +1,6 @@
|
||||
# -----------------------------------------------------
|
||||
# Monitor Setup
|
||||
# name: "2560x1440@120"
|
||||
# -----------------------------------------------------
|
||||
|
||||
monitor=,2560x1440@120,auto,1
|
@ -0,0 +1,6 @@
|
||||
# -----------------------------------------------------
|
||||
# Monitor Setup
|
||||
# name: "2560x1440@120x125"
|
||||
# -----------------------------------------------------
|
||||
|
||||
monitor=,2560x1440@120,auto,1.25
|
@ -0,0 +1,6 @@
|
||||
# -----------------------------------------------------
|
||||
# Monitor Setup
|
||||
# name: "3440x1440"
|
||||
# -----------------------------------------------------
|
||||
|
||||
monitor=,3440x1440,auto,1
|
@ -0,0 +1,6 @@
|
||||
# -----------------------------------------------------
|
||||
# Monitor Setup
|
||||
# name: "Default"
|
||||
# -----------------------------------------------------
|
||||
|
||||
monitor=,preferred,auto,1
|
@ -0,0 +1,6 @@
|
||||
# -----------------------------------------------------
|
||||
# Monitor Setup
|
||||
# name: "Highres"
|
||||
# -----------------------------------------------------
|
||||
|
||||
monitor=,highres,auto,1
|
@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
clear
|
||||
cat <<"EOF"
|
||||
___ __
|
||||
/ _ \___ ___ / /____ _______
|
||||
/ , _/ -_|_-</ __/ _ \/ __/ -_)
|
||||
/_/|_|\__/___/\__/\___/_/ \__/
|
||||
|
||||
EOF
|
||||
echo "You can restore to the default ML4W variations."
|
||||
echo "PLEASE NOTE: You can reactivate to a customized variation or selection in the settings script."
|
||||
echo "Your customized variation will not be overwritten or deleted."
|
||||
|
||||
if gum confirm "Do you want to restore all variations to the default values?" ;then
|
||||
echo
|
||||
|
||||
echo "source = ~/.config/hypr/conf/keybindings/default.conf" > ~/.config/hypr/conf/keybinding.conf
|
||||
echo "Hyprland keybinding.conf restored!"
|
||||
|
||||
echo "source = ~/.config/hypr/conf/environments/default.conf" > ~/.config/hypr/conf/environment.conf
|
||||
echo "Hyprland environment.conf restored!"
|
||||
|
||||
echo "source = ~.config/hypr/conf/windowrules/default.conf" > ~/.config/hypr/conf/windowrule.conf
|
||||
echo "Hyprland windowrule.conf restored!"
|
||||
|
||||
echo "source = ~/.config/hypr/conf/animations/default.conf" > ~/.config/hypr/conf/animation.conf
|
||||
echo "Hyprland animation.conf restored!"
|
||||
|
||||
echo "source = ~/.config/hypr/conf/decorations/default.conf" > ~/.config/hypr/conf/decoration.conf
|
||||
echo "Hyprland decoration.conf restored!"
|
||||
|
||||
echo "source = ~/.config/hypr/conf/windows/default.conf" > ~/.config/hypr/conf/window.conf
|
||||
echo "Hyprland window.conf restored!"
|
||||
|
||||
echo "source = ~/.config/hypr/conf/monitors/default.conf" > ~/.config/hypr/conf/monitor.conf
|
||||
echo "Hyprland monitor.conf restored!"
|
||||
|
||||
echo
|
||||
echo ":: Restore done!"
|
||||
else
|
||||
echo ":: Restore canceled!"
|
||||
exit
|
||||
fi
|
@ -0,0 +1 @@
|
||||
source = ~/.config/hypr/conf/windows/default.conf
|
@ -0,0 +1 @@
|
||||
source = ~/.config/hypr/conf/windowrules/default.conf
|
@ -0,0 +1,16 @@
|
||||
# -----------------------------------------------------
|
||||
# Window rules
|
||||
# -----------------------------------------------------
|
||||
|
||||
windowrule = tile,^(Microsoft-edge)$
|
||||
windowrule = tile,^(Brave-browser)$
|
||||
windowrule = tile,^(Chromium)$
|
||||
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)$
|
@ -0,0 +1,14 @@
|
||||
# -----------------------------------------------------
|
||||
# General window layout and colors
|
||||
# name: "Default"
|
||||
# -----------------------------------------------------
|
||||
|
||||
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,14 @@
|
||||
# -----------------------------------------------------
|
||||
# General window layout and colors
|
||||
# name: "Default"
|
||||
# -----------------------------------------------------
|
||||
|
||||
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
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
# -----------------------------------------------------
|
||||
# General window layout and colors
|
||||
# name: "Default"
|
||||
# -----------------------------------------------------
|
||||
|
||||
general {
|
||||
gaps_in = 10
|
||||
gaps_out = 14
|
||||
border_size = 2
|
||||
col.active_border = rgba(ffffffff)
|
||||
col.inactive_border = $color11
|
||||
layout = dwindle
|
||||
resize_on_border = true
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
# -----------------------------------------------------
|
||||
# General window layout and colors
|
||||
# name: "Default"
|
||||
# -----------------------------------------------------
|
||||
|
||||
general {
|
||||
gaps_in = 10
|
||||
gaps_out = 14
|
||||
border_size = 2
|
||||
col.active_border = $color11
|
||||
col.inactive_border = rgba(ffffffff)
|
||||
layout = dwindle
|
||||
resize_on_border = true
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
# -----------------------------------------------------
|
||||
# General window layout and colors
|
||||
# name: "Default"
|
||||
# -----------------------------------------------------
|
||||
|
||||
general {
|
||||
gaps_in = 10
|
||||
gaps_out = 14
|
||||
border_size = 3
|
||||
col.active_border = rgba(ffffffff)
|
||||
col.inactive_border = $color11
|
||||
layout = dwindle
|
||||
resize_on_border = true
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
# -----------------------------------------------------
|
||||
# General window layout and colors
|
||||
# name: "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
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
# -----------------------------------------------------
|
||||
# General window layout and colors
|
||||
# name: "Default"
|
||||
# -----------------------------------------------------
|
||||
|
||||
general {
|
||||
gaps_in = 10
|
||||
gaps_out = 14
|
||||
border_size = 4
|
||||
col.active_border = rgba(ffffffff)
|
||||
col.inactive_border = $color11
|
||||
layout = dwindle
|
||||
resize_on_border = true
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
# -----------------------------------------------------
|
||||
# General window layout and colors
|
||||
# name: "Default"
|
||||
# -----------------------------------------------------
|
||||
|
||||
general {
|
||||
gaps_in = 10
|
||||
gaps_out = 14
|
||||
border_size = 4
|
||||
col.active_border = $color11
|
||||
col.inactive_border = rgba(ffffffff)
|
||||
layout = dwindle
|
||||
resize_on_border = true
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
# -----------------------------------------------------
|
||||
# General window layout and colors
|
||||
# name: "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
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
# -----------------------------------------------------
|
||||
# General window layout and colors
|
||||
# name: "No Border More Gaps"
|
||||
# -----------------------------------------------------
|
||||
|
||||
general {
|
||||
gaps_in = 20
|
||||
gaps_out = 40
|
||||
border_size = 0
|
||||
col.active_border = $color11
|
||||
col.inactive_border = rgba(ffffffff)
|
||||
layout = dwindle
|
||||
resize_on_border = true
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
# -----------------------------------------------------
|
||||
# General window layout and colors
|
||||
# name: "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
|
||||
}
|
@ -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
|