Update all dotfiles

This commit is contained in:
2025-05-22 17:56:05 -05:00
parent 0280a88a7b
commit 4bb042584b
1651 changed files with 60533 additions and 2672 deletions

View File

@ -0,0 +1 @@
Xcursor.theme: Bibata-Modern-Ice

View File

@ -0,0 +1,37 @@
# _ _
# | |__ __ _ ___| |__ _ __ ___
# | '_ \ / _` / __| '_ \| '__/ __|
# _| |_) | (_| \__ \ | | | | | (__
# (_)_.__/ \__,_|___/_| |_|_| \___|
#
# -----------------------------------------------------
# ML4W bashrc loader
# -----------------------------------------------------
# DON'T CHANGE THIS FILE
# You can define your custom configuration by adding
# files in ~/.config/bashrc
# or by creating a folder ~/.config/bashrc/custom
# with copies of files from ~/.config/bashrc
# You can also create a .bashrc_custom file in your home directory
# -----------------------------------------------------
# -----------------------------------------------------
# Load modular configarion
# -----------------------------------------------------
for f in ~/.config/bashrc/*; do
if [ ! -d $f ] ;then
c=`echo $f | sed -e "s=.config/bashrc=.config/bashrc/custom="`
[[ -f $c ]] && source $c || source $f
fi
done
# -----------------------------------------------------
# Load single customization file (if exists)
# -----------------------------------------------------
if [ -f ~/.bashrc_custom ] ;then
source ~/.bashrc_custom
fi

View File

@ -0,0 +1,11 @@
import { App, Widget } from "astal/gtk3"
import Calendar from "./widget/Calendar"
import Sidebar from "./widget/Sidebar"
App.start({
css: "./style.css",
main() {
Sidebar();
Calendar();
}
})

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View 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
}

View File

@ -0,0 +1,2 @@
#!/bin/bash
$HOME/.config/waybar/themeswitcher.sh

View File

@ -0,0 +1,2 @@
#!/bin/bash
$HOME/.config/hypr/scripts/wallpaper-effects.sh

View 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;
}

View File

@ -0,0 +1,22 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"compilerOptions": {
"experimentalDecorators": true,
"strict": true,
"target": "ES2022",
"module": "ES2022",
"moduleResolution": "Bundler",
// "checkJs": true,
// "allowJs": true,
"jsx": "react-jsx",
"jsxImportSource": "/usr/share/astal/gjs/gtk3",
"paths": {
"astal": [
"/usr/share/astal/gjs"
],
"astal/*": [
"/usr/share/astal/gjs/*"
]
},
}
}

View File

@ -0,0 +1,29 @@
import { App, Astal, Gtk, Gdk } from "astal/gtk3"
import { Variable } from "astal"
const time = Variable("").poll(1000, "date")
export default function Bar(gdkmonitor: Gdk.Monitor) {
return <window
className="Bar"
gdkmonitor={gdkmonitor}
exclusivity={Astal.Exclusivity.EXCLUSIVE}
anchor={Astal.WindowAnchor.TOP
| Astal.WindowAnchor.LEFT
| Astal.WindowAnchor.RIGHT}
application={App}>
<centerbox>
<button
onClicked="echo hello"
halign={Gtk.Align.CENTER} >
Welcome to AGS!
</button>
<box />
<button
onClick={() => print("hello")}
halign={Gtk.Align.CENTER} >
<label label={time()} />
</button>
</centerbox>
</window>
}

View File

@ -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")
})
}
}

View File

@ -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>
}

View File

@ -0,0 +1,167 @@
import { App } from "astal/gtk3"
import Apps from "gi://AstalApps"
import Wp from "gi://AstalWp"
import { Variable, GLib, bind } from "astal"
import { subprocess, exec, execAsync } from "astal/process"
import { Astal, Gtk, Gdk } from "astal/gtk3"
import Brightness from "./Brightness"
function BrightnessSlider() {
const brightness = Brightness.get_default()
return <box className="MicrophoneSlider" css="min-width: 140px">
<slider
hexpand
value={bind(brightness, "screen")}
onDragged={({ value }) => brightness.screen = value}
/>
</box>
}
function AudioSlider() {
const speaker = Wp.get_default()?.audio.defaultSpeaker!
return <box className="AudioSlider" css="min-width: 140px">
<slider
hexpand
onDragged={({ value }) => speaker.volume = value}
value={bind(speaker, "volume")}
/>
</box>
}
function MicrophoneSlider() {
const microphone = Wp.get_default()?.audio.defaultMicrophone!
return <box className="MicrophoneSlider" css="min-width: 140px">
<slider
hexpand
onDragged={({ value }) => microphone.volume = value}
value={bind(microphone, "volume")}
/>
</box>
}
function openwelcomeapp() {
execAsync("com.ml4w.welcome")
App.get_window("sidebar")!.hide()
}
function opensettingsapp() {
execAsync("com.ml4w.dotfilessettings")
App.get_window("sidebar")!.hide()
}
function openhyprlandapp() {
execAsync("com.ml4w.hyprland.settings")
App.get_window("sidebar")!.hide()
}
function openwallpaper() {
const proc = subprocess(["bash", "-c", "waypaper"])
App.get_window("sidebar")!.hide()
}
function openwallpapereffects() {
const proc = subprocess(["bash", "-c", "$HOME/.config/hypr/scripts/wallpaper-effects.sh"])
App.get_window("sidebar")!.hide()
}
function openwaybarthemes() {
const proc = subprocess(["bash", "-c", "$HOME/.config/waybar/themeswitcher.sh"])
App.get_window("sidebar")!.hide()
}
function powerlock() {
const proc = subprocess(["bash", "-c", "$HOME/.config/hypr/scripts/power.sh lock"])
App.get_window("sidebar")!.hide()
}
function powerlogout() {
const proc = subprocess(["bash", "-c", "$HOME/.config/hypr/scripts/power.sh exit"])
App.get_window("sidebar")!.hide()
}
function powersuspend() {
const proc = subprocess(["bash", "-c", "$HOME/.config/hypr/scripts/power.sh suspend"])
App.get_window("sidebar")!.hide()
}
function powerrestart() {
const proc = subprocess(["bash", "-c", "$HOME/.config/hypr/scripts/power.sh reboot"])
App.get_window("sidebar")!.hide()
}
function powerexit() {
const proc = subprocess(["bash", "-c", "$HOME/.config/hypr/scripts/power.sh shutdown"])
App.get_window("sidebar")!.hide()
}
export default function Sidebar() {
const anchor = Astal.WindowAnchor.TOP
| Astal.WindowAnchor.RIGHT
return <window
name="sidebar"
application={App}
visible={false}
className="Sidebar"
anchor={anchor}
keymode={Astal.Keymode.ON_DEMAND}
onKeyPressEvent={function (self, event: Gdk.Event) {
if (event.get_keyval()[1] === Gdk.KEY_Escape)
self.hide()
}}
>
<box className="sidebar" vertical>
<box css="padding-bottom:20px;">
<box className="group" vertical>
<box homogeneous>
<button onClicked={openwelcomeapp} className="ml4wwelcomeicon"></button>
<button onClicked={opensettingsapp} className="ml4wsettingsicon"></button>
<button onClicked={openhyprlandapp} className="ml4whyprlandicon"></button>
</box>
<box homogeneous>
<button onClicked={openwelcomeapp}>Welcome App</button>
<button onClicked={opensettingsapp}>Settings App</button>
<button onClicked={openhyprlandapp}>Hyprland App</button>
</box>
</box>
</box>
<centerbox horizontal className="group">
<label vexpand label=""></label>
<box>
<button onClicked={openwallpaper} className="btnbar first wallpaper"></button>
<button onClicked={openwallpapereffects} className="btnbar wallpapereffects"></button>
<button onClicked={openwaybarthemes} className="btnbar last statusbar"></button>
</box>
<label vexpand label=""></label>
</centerbox>
<box css="padding-bottom:20px;"></box>
<box className="group" halign="left" vertical>
<label css="padding-bottom:10px" label="Speaker"></label>
<AudioSlider/>
<label css="padding-bottom:10px" label="Microphone"></label>
<MicrophoneSlider />
</box>
<box css="padding-bottom:20px;"></box>
<box className="group" halign="left" vertical>
<label css="padding-bottom:10px" label="Brightness"></label>
<BrightnessSlider />
</box>
<box css="padding-bottom:20px;"></box>
<centerbox horizontal className="group">
<label vexpand label=""></label>
<box>
<button onClicked={powerlock} className="btnbar first lock"></button>
<button onClicked={powerlogout} className="btnbar logout"></button>
<button onClicked={powersuspend} className="btnbar suspend"></button>
<button onClicked={powerrestart} className="btnbar restart"></button>
<button onClicked={powerexit} className="btnbar last exit"></button>
</box>
<label vexpand label=""></label>
</centerbox>
</box>
</window>
}

View File

@ -0,0 +1,9 @@
# -----------------------------------------------------
# INIT
# -----------------------------------------------------
# -----------------------------------------------------
# Exports
# -----------------------------------------------------
export EDITOR=nvim
export PATH="/usr/lib/ccache/bin/:$PATH"

View File

@ -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."'

View File

@ -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

View File

@ -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

View 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

View File

@ -0,0 +1,104 @@
// Thanks to Bina
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"padding": {
"top": 2
}
},
"display": {
"separator": " ➜ "
},
"modules": [
"break",
"break",
"break",
{
"type": "os",
"key": "OS ",
"keyColor": "31", // = color1
},
{
"type": "kernel",
"key": " ├  ",
"keyColor": "31",
},
{
"type": "shell",
"key": " └  ",
"keyColor": "31",
},
"break",
{
"type": "wm",
"key": "WM ",
"keyColor": "32",
},
{
"type": "wmtheme",
"key": " ├ 󰉼 ",
"keyColor": "32",
},
{
"type": "icons",
"key": " ├ 󰀻 ",
"keyColor": "32",
},
{
"type": "cursor",
"key": " ├  ",
"keyColor": "32",
},
{
"type": "terminal",
"key": " ├  ",
"keyColor": "32",
},
{
"type": "terminalfont",
"key": " └  ",
"keyColor": "32",
},
"break",
{
"type": "host",
"format": "{5} {1} Type {2}",
"key": "PC ",
"keyColor": "33",
},
{
"type": "cpu",
"format": "{1} ({3}) @ {7} GHz",
"key": " ├  ",
"keyColor": "33",
},
{
"type": "gpu",
"format": "{1} {2} @ {12} GHz",
"key": " ├ 󰢮 ",
"keyColor": "33",
},
{
"type": "memory",
"key": " ├  ",
"keyColor": "33",
},
{
"type": "swap",
"key": " ├ 󰓡 ",
"keyColor": "33",
},
{
"type": "disk",
"key": " ├ 󰋊 ",
"keyColor": "33",
},
{
"type": "monitor",
"key": " └  ",
"keyColor": "33",
},
"break",
"break",
]
}

View File

@ -0,0 +1,5 @@
file:///home/gib/Documents
file:///home/gib/Music
file:///home/gib/Pictures
file:///home/gib/Videos
file:///home/gib/Downloads

View File

@ -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

View File

@ -0,0 +1,2 @@
[Settings]
gtk-application-prefer-dark-theme=0

View File

@ -0,0 +1 @@
source = ~/.config/hypr/conf/animations/default.conf

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -0,0 +1,7 @@
# -----------------------------------------------------
# Animations
# name "Default"
# -----------------------------------------------------
animations {
enabled = false
}

View File

@ -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
}

View File

@ -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

View File

@ -0,0 +1 @@
exec-once = hyprctl setcursor Bibata-Modern-Ice 24

View File

@ -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

View File

@ -0,0 +1 @@
source = ~/.config/hypr/conf/decorations/default.conf

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -0,0 +1 @@
source = ~/.config/hypr/conf/environments/default.conf

View File

@ -0,0 +1,6 @@
# -----------------------------------------------------
# Environment Variables
# name: "Default"
# -----------------------------------------------------
# Default Settings in ml4w.conf

View File

@ -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

View File

@ -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
}

View File

@ -0,0 +1 @@
source = ~/.config/hypr/conf/keybindings/default.conf

View File

@ -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-

View File

@ -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-

View File

@ -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
}

View File

@ -0,0 +1 @@
source = ~/.config/hypr/conf/layouts/default.conf

View File

@ -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
}

View File

@ -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
}

View File

@ -0,0 +1,9 @@
# -----------------------------------------------------
# Misc settings
# -----------------------------------------------------
misc {
disable_hyprland_logo = true
disable_splash_rendering = true
initial_workspace_tracking = 1
}

View File

@ -0,0 +1,124 @@
# __ _____ _____ __ _____ ___
# / |/ / / / / / | /| / / / ___/__ ___ / _/
# / /|_/ / /_/_ _/ |/ |/ / / /__/ _ \/ _ \/ _/
# /_/ /_/____//_/ |__/|__/ \___/\___/_//_/_/
#
# Pavucontrol floating
windowrulev2 = float,class:(.*org.pulseaudio.pavucontrol.*)
windowrulev2 = size 700 600,class:(.*org.pulseaudio.pavucontrol.*)
windowrulev2 = center,class:(.*org.pulseaudio.pavucontrol.*)
windowrulev2 = pin,class:(.*org.pulseaudio.pavucontrol.*)
# OpenAI ChatGPT floating
windowrulev2 = float,title:(ChatGPT.*)
windowrulev2 = float,title:(.*chat.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

View File

@ -0,0 +1 @@
source = ~/.config/hypr/conf/monitors/default.conf

View File

@ -0,0 +1,6 @@
# -----------------------------------------------------
# Monitor Setup
# name: "1366x768"
# -----------------------------------------------------
monitor=,1366x768,auto,1

View File

@ -0,0 +1,6 @@
# -----------------------------------------------------
# Monitor Setup
# name: "1440x1080"
# -----------------------------------------------------
monitor=,1440x1080,auto,1

View File

@ -0,0 +1,6 @@
# -----------------------------------------------------
# Monitor Setup
# name: "1600x900"
# -----------------------------------------------------
monitor=,1600x900,auto,1

View File

@ -0,0 +1,6 @@
# -----------------------------------------------------
# Monitor Setup
# name: "1920x1080"
# -----------------------------------------------------
monitor=,1920x1080,auto,1

View File

@ -0,0 +1,6 @@
# -----------------------------------------------------
# Monitor Setup
# name: "1920x1200"
# -----------------------------------------------------
monitor=,1920x1200,auto,1

View File

@ -0,0 +1,6 @@
# -----------------------------------------------------
# Monitor Setup
# name: "2560x1440"
# -----------------------------------------------------
monitor=,2560x1440,auto,1

View File

@ -0,0 +1,6 @@
# -----------------------------------------------------
# Monitor Setup
# name: "2560x1440@120"
# -----------------------------------------------------
monitor=,2560x1440@120,auto,1

View File

@ -0,0 +1,6 @@
# -----------------------------------------------------
# Monitor Setup
# name: "2560x1440@120x125"
# -----------------------------------------------------
monitor=,2560x1440@120,auto,1.25

View File

@ -0,0 +1,6 @@
# -----------------------------------------------------
# Monitor Setup
# name: "3440x1440"
# -----------------------------------------------------
monitor=,3440x1440,auto,1

View File

@ -0,0 +1,6 @@
# -----------------------------------------------------
# Monitor Setup
# name: "Default"
# -----------------------------------------------------
monitor=,preferred,auto,1

View File

@ -0,0 +1,6 @@
# -----------------------------------------------------
# Monitor Setup
# name: "Highres"
# -----------------------------------------------------
monitor=,highres,auto,1

View File

@ -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

View File

@ -0,0 +1 @@
source = ~/.config/hypr/conf/windows/default.conf

View File

@ -0,0 +1 @@
source = ~/.config/hypr/conf/windowrules/default.conf

View File

@ -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)$

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -0,0 +1 @@
magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper

View File

@ -0,0 +1,2 @@
magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
magick $used_wallpaper -blur "50x30" $used_wallpaper

View File

@ -0,0 +1,2 @@
magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
magick $used_wallpaper -brightness-contrast -60% $used_wallpaper

View File

@ -0,0 +1,2 @@
magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
magick $used_wallpaper -brightness-contrast -40% $used_wallpaper

View File

@ -0,0 +1,2 @@
magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
magick $used_wallpaper -brightness-contrast -20% $used_wallpaper

View File

@ -0,0 +1 @@
magick $wallpaper -blur "50x30" $used_wallpaper

View File

@ -0,0 +1,2 @@
magick $wallpaper -blur "50x30" $used_wallpaper
magick $used_wallpaper -brightness-contrast -60% $used_wallpaper

Some files were not shown because too many files have changed in this diff Show More