Compare commits
19 Commits
3bdd0fc0ea
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 7cd7d746e7 | |||
| e20f8b6ea2 | |||
| 36caf27d21 | |||
| 239cb292a8 | |||
| ee405d9008 | |||
| 2ee4e44788 | |||
| 365a2d6ac3 | |||
| 993af4e26c | |||
| fb76c95d1f | |||
| c29c755c14 | |||
| 30df2d5faf | |||
| 896900392b | |||
| 7676943e69 | |||
| 8aa6bcd5cb | |||
| be8fbb5d9f | |||
| d46e7c8dad | |||
| b39e579c51 | |||
| 0ccf6427f2 | |||
| c53268e307 |
@@ -1,117 +0,0 @@
|
||||
/*
|
||||
*
|
||||
* Catppuccin Frappe palette
|
||||
* Maintainer: rubyowo
|
||||
*
|
||||
*/
|
||||
|
||||
$base: #303446;
|
||||
$mantle: #292c3c;
|
||||
$crust: #232634;
|
||||
|
||||
$text: #c6d0f5;
|
||||
$subtext0: #a5adce;
|
||||
$subtext1: #b5bfe2;
|
||||
|
||||
$surface0: #414559;
|
||||
$surface1: #51576d;
|
||||
$surface2: #626880;
|
||||
|
||||
$overlay0: #737994;
|
||||
$overlay1: #838ba7;
|
||||
$overlay2: #949cbb;
|
||||
|
||||
$blue: #8caaee;
|
||||
$lavender: #babbf1;
|
||||
$sapphire: #85c1dc;
|
||||
$sky: #99d1db;
|
||||
$teal: #81c8be;
|
||||
$green: #a6d189;
|
||||
$yellow: #e5c890;
|
||||
$peach: #ef9f76;
|
||||
$maroon: #ea999c;
|
||||
$red: #e78284;
|
||||
$mauve: #ca9ee6;
|
||||
$pink: #f4b8e4;
|
||||
$flamingo: #eebebe;
|
||||
$rosewater: #f2d5cf;
|
||||
|
||||
/*
|
||||
* Author: Keule2
|
||||
* Created: 23.09.2023
|
||||
*/
|
||||
|
||||
/*****************/
|
||||
/* Defaults */
|
||||
/*****************/
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
font-family: "FiraCode Nerd Font Mono";
|
||||
font-weight: bold;
|
||||
font-size: 13px;
|
||||
color: $text;
|
||||
}
|
||||
|
||||
window {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
tooltip{
|
||||
background: $surface0;
|
||||
border: solid 2px $sapphire;
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 2px;
|
||||
margin: 4px 2px;
|
||||
}
|
||||
|
||||
.widget {
|
||||
border: solid 2px $sapphire;
|
||||
background: $surface1;
|
||||
padding: 0px 5px;
|
||||
margin: 2px;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/*****************/
|
||||
/* Root */
|
||||
/*****************/
|
||||
.bar1, .bar2, .bar3{
|
||||
background-color: rgba(36, 39, 58, 0.5);
|
||||
border-top-left-radius: 0px;
|
||||
border-top-right-radius: 0px;
|
||||
}
|
||||
|
||||
.root {
|
||||
margin: 2px;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
/*****************/
|
||||
/* Cutom widgets */
|
||||
/*****************/
|
||||
/* Player */
|
||||
.Playing {
|
||||
color: $sapphire;
|
||||
}
|
||||
|
||||
/* Session */
|
||||
.session {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
/* Workspaces */
|
||||
.workspace_entry {
|
||||
padding: 2px 5px;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
.workspace_entry.current {
|
||||
background: $overlay0;
|
||||
}
|
||||
|
||||
.workspace_entry_p:hover .workspace_entry{
|
||||
background: $overlay2;
|
||||
}
|
||||
@@ -1,216 +0,0 @@
|
||||
;; TODO Update workspaces only when workspaces updated
|
||||
;; TODO Camera access, Microphone access,.... -> indicator-mic-cam
|
||||
(defwindow bar1
|
||||
:monitor 0
|
||||
:geometry (geometry :x "0%"
|
||||
:y "0px"
|
||||
:width "100%"
|
||||
:height "35px"
|
||||
:anchor "top center")
|
||||
:stacking "fg"
|
||||
:exclusive true
|
||||
:focusable false
|
||||
|
||||
(content)
|
||||
)
|
||||
|
||||
(defwindow bar2
|
||||
:monitor 1
|
||||
:geometry (geometry :x "0%"
|
||||
:y "0px"
|
||||
:width "100%"
|
||||
:height "35px"
|
||||
:anchor "top center")
|
||||
:stacking "fg"
|
||||
:exclusive true
|
||||
:focusable false
|
||||
|
||||
(content)
|
||||
)
|
||||
|
||||
(defwindow bar3
|
||||
:monitor 2
|
||||
:geometry (geometry :x "0%"
|
||||
:y "0px"
|
||||
:width "100%"
|
||||
:height "35px"
|
||||
:anchor "top center")
|
||||
:stacking "fg"
|
||||
:exclusive true
|
||||
:focusable false
|
||||
|
||||
(content)
|
||||
)
|
||||
|
||||
|
||||
(defwidget content []
|
||||
(centerbox :orientation "h" :class "root"
|
||||
(box :space-evenly false :halign "start"
|
||||
(workspaces)
|
||||
(window_w)
|
||||
)
|
||||
(time :halign "center")
|
||||
(box :space-evenly false :halign "end"
|
||||
(systray :class "widget systray")
|
||||
(player)
|
||||
(cpu)
|
||||
(memory)
|
||||
(network)
|
||||
(battery)
|
||||
(audio)
|
||||
(session)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;;PLAYER
|
||||
(deflisten MUSIC :initial "" "playerctl -a metadata --follow --format '{\"text\":\"{{artist}} - {{markup_escape(title)}}\", \"state\":\"{{status}}\"}' || true")
|
||||
(defwidget player []
|
||||
(box :class "widget"
|
||||
(eventbox
|
||||
:onclick "playerctl play-pause"
|
||||
:onmiddleclick "playerctl previous"
|
||||
:onrightclick "playerctl next"
|
||||
(label :tooltip "${MUSIC.text}" :class "${MUSIC.state}" :text " ")
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;;CPU
|
||||
(defwidget cpu []
|
||||
(box :class "widget"
|
||||
(label :text "${round(EWW_CPU.avg, 0)}% ")
|
||||
)
|
||||
)
|
||||
|
||||
;;Memory
|
||||
(defwidget memory []
|
||||
(box :class "widget"
|
||||
(label :text "${round(EWW_RAM.used_mem / (1024*1024*1024), 1)} " :tooltip "${round(EWW_RAM.used_mem_perc, 0)}%")
|
||||
)
|
||||
)
|
||||
|
||||
;;Network
|
||||
(defpoll IS_WIRELESS :interval "10s" "~/.config/eww/scripts/net.sh iswlan")
|
||||
(defpoll NET_INT :interval "10s" "~/.config/eww/scripts/net.sh getint")
|
||||
(defpoll NET_NAME :interval "10s" "~/.config/eww/scripts/net.sh ssid")
|
||||
(defwidget network []
|
||||
(box :class "widget"
|
||||
(eventbox :onclick "nm-connection-editor & disown"
|
||||
(label :text "${round(EWW_NET[NET_INT].NET_UP / 1000, 1)}kB/s⇡ ${round(EWW_NET[NET_INT].NET_DOWN / 1000, 1)}kB/s⇣ ${IS_WIRELESS? "" : ""}" :tooltip "${NET_INT} ${IS_WIRELESS? ":${NET_NAME}" : ""}")
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defpoll BAT_INFO :interval "1m" "~/.config/eww/scripts/battery.sh")
|
||||
(defwidget battery []
|
||||
(box :class "widget" :visible "${BAT_INFO.has_battery}"
|
||||
(label :text "${BAT_INFO.percentage}"
|
||||
:tooltip "${BAT_INFO.time_remaining}"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defwindow battery_warning
|
||||
:monitor 0
|
||||
:exclusive "false"
|
||||
:stacking "overlay"
|
||||
:geometry (geometry :anchor "center"
|
||||
:width "10%"
|
||||
:height "10%")
|
||||
(box :class "widget" :orientation "v"
|
||||
(label :text "${BAT_INFO.percentage}!"
|
||||
:tooltip "${BAT_INFO.time_remaining}"
|
||||
)
|
||||
(button :onclick "${EWW_CMD} close battery_warning"
|
||||
(label :text "")
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;;Audio
|
||||
(defpoll DEF_SINK :interval "10s" "~/.config/eww/scripts/audio.sh getdefaultsink")
|
||||
(defpoll IS_MUTED_SOURCE :interval "10s" "~/.config/eww/scripts/audio.sh ismutedsource @DEFAULT_SOURCE@")
|
||||
(defpoll IS_MUTED_SINK :interval "10s" "~/.config/eww/scripts/audio.sh ismutedsink @DEFAULT_SINK@")
|
||||
(defpoll IS_BLUE :interval "10s" "~/.config/eww/scripts/audio.sh isblue @DEFAULT_SINK@")
|
||||
(defpoll VOLUME_SOURCE :interval "10s" "~/.config/eww/scripts/audio.sh getvol @DEFAULT_SOURCE@")
|
||||
(defpoll VOLUME_SINK :interval "10s" "~/.config/eww/scripts/audio.sh getvol @DEFAULT_SINK@")
|
||||
(defwidget audio []
|
||||
(box :class "widget"
|
||||
(eventbox
|
||||
:onclick "${EWW_CMD} open audio_popup"
|
||||
:onmiddleclick "~/.config/eww/scripts/audio.sh mutesink @DEFAULT_SINK@"
|
||||
:onrightclick "~/.config/eww/scripts/audio.sh mutesource @DEFAULT_SOURCE@"
|
||||
:onscroll "~/.config/eww/scripts/audio.sh vol {}"
|
||||
|
||||
(label :text "${IS_MUTED_SINK? " ": "${round(VOLUME_SINK * 100, 0)}%"}${IS_BLUE? "" : ""} ${IS_MUTED_SOURCE? "" : "${round(VOLUME_SOURCE * 100, 0)}%"}"
|
||||
:tooltip "${DEF_SINK}"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defwindow audio_popup
|
||||
:monitor 0
|
||||
:exclusive "false"
|
||||
:stacking "overlay"
|
||||
:geometry (geometry :anchor "top right")
|
||||
(audio_menu)
|
||||
)
|
||||
|
||||
(defpoll audio_device :interval "10s" "~/.config/eww/scripts/audio.sh getdevices")
|
||||
(defwidget audio_menu []
|
||||
(eventbox :onhoverlost "${EWW_CMD} close audio_popup"
|
||||
(box :class "widget" :orientation "v"
|
||||
(for dev in audio_device
|
||||
(button :onclick "pactl set-default-sink ${dev.id} & ${EWW_CMD} close audio_popup"
|
||||
(label :text "${dev.name == DEF_SINK? "" : ""} ${dev.name}")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;;Session
|
||||
(defwidget session []
|
||||
(box :class "widget"
|
||||
(eventbox :onclick "swaync-client -t -sw"
|
||||
(label :class "session" :text "")
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; Time/Date
|
||||
(defpoll TIME :interval "5s" `date +\"%H:%M\"`)
|
||||
(defpoll DATE :interval "1m" `date +\"%d.%m.%Y\"`)
|
||||
|
||||
(defwidget time []
|
||||
(box :class "widget" :space-evenly false
|
||||
(eventbox :onclick "merkuro-calendar & disown"
|
||||
(label :text "${TIME} ${DATE} ")
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; Active Window Title
|
||||
(deflisten window :initial "..." "sh ~/.config/eww/scripts/get_window_title.sh")
|
||||
(defwidget window_w []
|
||||
(box :class "widget" :visible {window != ""}
|
||||
(label :limit-width 85 :text "${window}")
|
||||
)
|
||||
)
|
||||
|
||||
;; Workspaces
|
||||
(deflisten workspaces :initial "[]" "bash ~/.config/eww/scripts/get_workspaces.sh")
|
||||
(deflisten current_workspace :initial "1" "bash ~/.config/eww/scripts/get_active_workspace.sh")
|
||||
(defwidget workspaces []
|
||||
(box :class "widget workspaces" :space-evenly false
|
||||
(for workspace in workspaces
|
||||
(eventbox :onclick "hyprctl dispatch workspace ${workspace.id}" :class "workspace_entry_p"
|
||||
(box :class "workspace_entry ${workspace.id == current_workspace ? "current" : ""} ${workspace.windows > 0 ? "occupied" : "empty"}"
|
||||
(label :class "test" :text "${workspace.id}")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -1,76 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
usage() {
|
||||
echo "Usage:
|
||||
$0 <action> <sink|source>
|
||||
actions: vol"
|
||||
}
|
||||
|
||||
if [ -z $1 ]; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z $2 ] && [ "$1" != "getdevices" ] && [ "$1" != "getdefaultsink" ]; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
vol() {
|
||||
if [ "$1" == "up" ]; then
|
||||
vol="5%+"
|
||||
else
|
||||
vol="5%-"
|
||||
fi
|
||||
|
||||
wpctl set-volume @DEFAULT_SINK@ $vol
|
||||
eww update VOLUME_SINK=$(getvol @DEFAULT_SINK@)
|
||||
}
|
||||
|
||||
getvol() {
|
||||
wpctl get-volume $1 | awk '{print $2}'
|
||||
}
|
||||
|
||||
ismutedsource() {
|
||||
pactl get-source-mute $1 | awk '{print ($2 == "no"? "false" : "true")}'
|
||||
}
|
||||
|
||||
ismutedsink() {
|
||||
pactl get-sink-mute $1 | awk '{print ($2 == "no"? "false" : "true")}'
|
||||
}
|
||||
|
||||
mutesink() {
|
||||
pactl set-sink-mute $1 toggle
|
||||
eww update IS_MUTED_SINK=$(ismutedsink $1)
|
||||
}
|
||||
|
||||
mutesource() {
|
||||
pactl set-source-mute $1 toggle
|
||||
eww update IS_MUTED_SOURCE=$(ismutedsource $1)
|
||||
}
|
||||
|
||||
isblue() {
|
||||
wpctl inspect $1 | grep api.bluez -q -m 1 && echo true || echo false
|
||||
}
|
||||
|
||||
if [ "$1" == "getdevices" ]; then
|
||||
pactl -f json list sinks | jq -Mc '[.[] | {id: .index, name: .description, mute: .mute, default: (.state == "RUNNING")}]'
|
||||
elif [ "$1" == "vol" ]; then
|
||||
vol $2
|
||||
elif [ "$1" == "getvol" ]; then
|
||||
getvol $2
|
||||
elif [ "$1" == "ismutedsource" ]; then
|
||||
ismutedsource $2
|
||||
elif [ "$1" == "ismutedsink" ]; then
|
||||
ismutedsink $2
|
||||
elif [ "$1" == "mutesink" ]; then
|
||||
mutesink $2
|
||||
elif [ "$1" == "mutesource" ]; then
|
||||
mutesource $2
|
||||
elif [ "$1" == "isblue" ]; then
|
||||
isblue $2
|
||||
elif [ "$1" == "getdefaultsink" ]; then
|
||||
wpctl inspect @DEFAULT_SINK@ | grep 'node.description' | awk -F ' = ' '{print $2}' | sed 's/\"//g'
|
||||
else
|
||||
usage
|
||||
fi
|
||||
@@ -1,28 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
bat=$(upower -e | grep BAT)
|
||||
|
||||
if [ -z $bat ]; then
|
||||
echo '{}' | jq -Mc ".has_battery = false"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
upower=$(upower -i $bat)
|
||||
|
||||
get_percentage() {
|
||||
echo "$1" | grep percentage | awk '{print $2}'
|
||||
}
|
||||
|
||||
get_time_remaining() {
|
||||
echo "$1" | grep "time to empty" | awk -F: '{print $2}'
|
||||
}
|
||||
|
||||
get_icon_name() {
|
||||
echo "$1" | grep icon-name | awk '{print $2}'
|
||||
}
|
||||
|
||||
is_charging() {
|
||||
echo "$1" | grep state | awk '{print $2}'
|
||||
}
|
||||
|
||||
echo '{}' | jq -Mc ".has_battery = true | .percentage = \"$(get_percentage "$upower")\" | .time_remaining= \"$(get_time_remaining "$upower")\" | .is_charging = \"$(is_charging "$upower")\" | .icon_name = \"$(get_icon_name "$upower")\" "
|
||||
@@ -1,21 +0,0 @@
|
||||
#! /bin/bash
|
||||
function clamp {
|
||||
min=$1
|
||||
max=$2
|
||||
val=$3
|
||||
python -c "print(max($min, min($val, $max)))"
|
||||
}
|
||||
|
||||
direction=$1
|
||||
current=$2
|
||||
if test "$direction" = "down"
|
||||
then
|
||||
target=$(clamp 1 10 $(($current+1)))
|
||||
echo "jumping to $target"
|
||||
hyprctl dispatch workspace $target
|
||||
elif test "$direction" = "up"
|
||||
then
|
||||
target=$(clamp 1 10 $(($current-1)))
|
||||
echo "jumping to $target"
|
||||
hyprctl dispatch workspace $target
|
||||
fi
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
hyprctl monitors -j | jq '.[] | select(.focused) | .activeWorkspace.id'
|
||||
|
||||
socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - |
|
||||
stdbuf -o0 awk -F '>>|,' -e '/^workspace>>/ {print $2}' -e '/^focusedmon>>/ {print $3}'
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
hyprctl activewindow -j | jq --raw-output .title
|
||||
socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | stdbuf -o0 awk -F '>>|,' '/^activewindow>>/{print $3}'
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
spaces (){
|
||||
hyprctl workspaces -j | jq -Mc '[.[] | {id: (.id | tostring), windows: (.windows | tostring)}] | sort_by(.id)'
|
||||
}
|
||||
|
||||
spaces
|
||||
socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do
|
||||
spaces
|
||||
done
|
||||
@@ -1,20 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
url=$(cat ~/.config/YouTube\ Music/config.json | jq --raw-output .url)
|
||||
if [ -z "$url" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
id="${url##*?v=}"
|
||||
id="${id%%&*}"
|
||||
|
||||
#https://img.youtube.com/vi/$id/[option].jpg
|
||||
#0
|
||||
#1
|
||||
#mqdefault
|
||||
#hqdefault
|
||||
#sddefault
|
||||
#maxresdefault
|
||||
url="https://img.youtube.com/vi/$id/sddefault.jpg"
|
||||
|
||||
curl -o ~/.config/eww/medi_art.jpg "$url"
|
||||
@@ -1,63 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
usage() {
|
||||
echo "Usage: $0 <func> [args]
|
||||
func: islowest[INT], iswlan, ssid"
|
||||
}
|
||||
|
||||
if [ -z $1 ]; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
getlowest() {
|
||||
lines=$(ip route | grep default)
|
||||
|
||||
# Initialize variables to store the highest metric and interface
|
||||
lowest_metric=99999999999
|
||||
lowest_interface=""
|
||||
|
||||
# Loop through the lines and compare metrics
|
||||
while IFS= read -r line; do
|
||||
interface=$(echo "$line" | awk '{print $5}')
|
||||
metric=$(echo "$line" | awk '{for(i=1;i<=NF;i++) if($i=="metric") print $(i+1)}')
|
||||
|
||||
if [ "$metric" -lt "$lowest_metric" ]; then
|
||||
lowest_metric="$metric"
|
||||
lowest_interface="$interface"
|
||||
fi
|
||||
done <<< "$lines"
|
||||
|
||||
echo "$lowest_interface"
|
||||
}
|
||||
|
||||
islowest() {
|
||||
if [ "$(getlowest)" == "$1" ]; then
|
||||
echo "true"
|
||||
else
|
||||
echo "false"
|
||||
fi
|
||||
}
|
||||
|
||||
iswlan(){
|
||||
int=$(nmcli -t -f active,ssid,device dev wifi | grep -m 1 yes | awk -F ':' '{print $3}')
|
||||
|
||||
if ! [ -z $int ]; then
|
||||
islowest $int
|
||||
else
|
||||
echo "false"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$1" == "iswlan" ]; then
|
||||
iswlan
|
||||
elif [ "$1" == "islowest" ]; then
|
||||
islowest $2
|
||||
elif [ "$1" == "getint" ]; then
|
||||
getlowest
|
||||
elif [ "$1" == "ssid" ]; then
|
||||
nmcli -t -f active,ssid dev wifi | grep -m 1 yes | awk -F: '{print $2}'
|
||||
else
|
||||
usage
|
||||
fi
|
||||
@@ -1,7 +0,0 @@
|
||||
## Environment
|
||||
env = XCURSOR_SIZE,24
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = WLR_NO_HARDWARE_CURSORS,1
|
||||
env = QT_QPA_PLATFORMTHEME,qt5ct
|
||||
#env = QT_QPA_PLATFORM,wayland
|
||||
env = QT_STYLE_OVERRIDE,kvantum
|
||||
@@ -1,8 +0,0 @@
|
||||
# [[shades]]
|
||||
# name = "vibrance"
|
||||
# default = true # shader to use during times when there is no other shader scheduled
|
||||
|
||||
[[shades]]
|
||||
name = "blue-light-filter"
|
||||
start_time = 19:00:00
|
||||
end_time = 08:00:00 # optional if you have more than one shade with start_time
|
||||
@@ -1,36 +0,0 @@
|
||||
#!/bin/bash
|
||||
rofi_conf="~/.config/rofi/main.rasi"
|
||||
|
||||
# Rofi action
|
||||
case $1 in
|
||||
d) mode="drun" ;;
|
||||
w) mode="window" ;;
|
||||
f) mode="filebrowser" ;;
|
||||
e) mode="emoji"
|
||||
action=(-a copy)
|
||||
;;
|
||||
c) mode="calc"
|
||||
action=(-calc-command "wl-copy {result}")
|
||||
children="\"message\", "
|
||||
;;
|
||||
h) echo -e "$0 [action]"
|
||||
echo "d : drun mode"
|
||||
echo "w : window mode"
|
||||
echo "f : filebrowser mode"
|
||||
exit 0 ;;
|
||||
*) mode="drun" ;;
|
||||
esac
|
||||
|
||||
# Get font
|
||||
font=`gsettings get org.gnome.desktop.interface font-name`
|
||||
fnt_override="configuration {font: \"${font//\'}\";}"
|
||||
|
||||
# Get icon theme
|
||||
icon_override=`gsettings get org.gnome.desktop.interface icon-theme | sed "s/'//g"`
|
||||
icon_override="configuration {icon-theme: \"${icon_override}\";}"
|
||||
|
||||
# Children
|
||||
children_ovr="mainbox {children: [\"inputbar\", $children \"listbox\"];}"
|
||||
|
||||
# Launch rofi
|
||||
rofi -show $mode ${action[0]} "${action[1]}" -theme-str "$children_ovr" -theme-str "$fnt_override" -theme-str "$icon_override" -config "$rofi_conf"
|
||||
@@ -1,53 +0,0 @@
|
||||
#!/bin/bash
|
||||
#set -e # Exit immediately if a command exits with a non-zero status. (deprecated) -> [CMD] || exit 1
|
||||
|
||||
if [[ $# -lt 1 ]] || [[ ! -d $1 ]]; then
|
||||
echo "Usage:
|
||||
$0 <dir containing images> [interval(seconds)]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
## Check running
|
||||
running=$(ps -ef | grep "$0" | grep -v grep | wc -l)
|
||||
if [ ${running} -gt 2 ]; then
|
||||
echo "Script already running! Killing others (TODO)..."
|
||||
exit 1
|
||||
# CRASHES EVERYTHING \/ !!!!!!!!!!
|
||||
script_pids=$(ps aux | grep -E "$script_name" | grep -v "grep" | awk -v pid="$current_pid" '$2 != pid {print $2}')
|
||||
|
||||
# Loop through the PIDs and kill the processes
|
||||
for pid in $script_pids; do
|
||||
echo "Killing process $pid"
|
||||
kill "$pid"
|
||||
done
|
||||
fi
|
||||
|
||||
## Start swww
|
||||
swww init &> /dev/null
|
||||
|
||||
## Settings for swww
|
||||
export SWWW_TRANSITION_FPS=60
|
||||
export SWWW_TRANSITION_STEP=2
|
||||
INTERVAL=300
|
||||
if [ ! -z $2 ]; then
|
||||
INTERVAL=$2
|
||||
fi
|
||||
|
||||
## Main loop
|
||||
while true; do
|
||||
find "$1" \
|
||||
| while read -r img; do
|
||||
echo "$((RANDOM % 1000)):$img"
|
||||
done \
|
||||
| sort -n | cut -d':' -f2- \
|
||||
| while read -r img; do
|
||||
img=${img/\~/$HOME}
|
||||
if [ -d $img ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
swww img "$img" --transition-type wipe --resize=fit
|
||||
ln -sf "$img" ~/.config/hypr/theme/current_background.jpg
|
||||
sleep $INTERVAL
|
||||
done
|
||||
done
|
||||
@@ -1,15 +0,0 @@
|
||||
#!/bin/bash
|
||||
eww open bar1
|
||||
eww open bar2
|
||||
eww open bar3
|
||||
|
||||
## Waybar auto update (requires inotifytools)
|
||||
# CONFIG_FILES="$HOME/.config/waybar/config $HOME/.config/waybar/style.css"
|
||||
#
|
||||
# trap "killall waybar" EXIT
|
||||
#
|
||||
# while true; do
|
||||
# waybar &
|
||||
# inotifywait -e create,modify $CONFIG_FILES
|
||||
# killall waybar
|
||||
# done
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
bat=$(upower -e | grep BAT)
|
||||
|
||||
if [ -z $bat ]; then
|
||||
echo "No battery available!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
while true; do
|
||||
upower=$(upower -i $bat)
|
||||
state=$(echo "$upower" | grep state | awk '{print $2}')
|
||||
per=$(echo "$upower" | grep percentage | awk '{print $2}')
|
||||
per="${per%\%}"
|
||||
|
||||
if [ "$per" -lt 15 ] && [ "$state" != "charging" ]; then
|
||||
eww open battery_warning
|
||||
fi
|
||||
|
||||
sleep 120
|
||||
done
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/bin/bash
|
||||
roconf="~/.config/rofi/clipboard.rasi"
|
||||
|
||||
# Read font
|
||||
font=`gsettings get org.gnome.desktop.interface font-name`
|
||||
fnt_override="configuration {font: \"${font//\'}\";}"
|
||||
|
||||
# Clipboard action
|
||||
case $1 in
|
||||
c) cliphist list | rofi -dmenu -theme-str "entry { placeholder: \"Copy...\";}" -theme-str "$fnt_override" -config $roconf | cliphist decode | wl-copy
|
||||
;;
|
||||
d) cliphist list | rofi -dmenu -theme-str "entry { placeholder: \"Delete...\";}" -theme-str "$fnt_override" -config $roconf | cliphist delete
|
||||
;;
|
||||
w) if [ `echo -e "Yes\nNo" | rofi -dmenu -theme-str "entry { placeholder: \"Clear Clipboard History?\";}" -theme-str "$fnt_override" -config $roconf` == "Yes" ] ; then
|
||||
cliphist wipe
|
||||
fi
|
||||
;;
|
||||
*) echo -e "$0 [action]"
|
||||
echo "c : cliphist list and copy selected"
|
||||
echo "d : cliphist list and delete selected"
|
||||
echo "w : cliphist wipe database"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
HYPRCMDS=$(hyprctl -j clients | jq -j '.[] | "dispatch closewindow address:\(.address); "')
|
||||
|
||||
hyprctl --batch "$HYPRCMDS" >> /tmp/hypr/cexit.log 2>&1
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
eww close bar1 || eww open bar1 & disown
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
isplayingvideo(){
|
||||
if pactl list | grep -q RUNNING; then
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
if ! [ -z $1 ]; then
|
||||
isplayingvideo
|
||||
fi
|
||||
|
||||
timeout_lock=900
|
||||
timeout_DPMS=1080
|
||||
|
||||
swayidle -w \
|
||||
timeout ${timeout_lock} "$0 isplayinfvideo || ~/.config/hypr/scripts/lock.sh" \
|
||||
#timeout ${timeout_DPMS} 'hyprctl dispatch dpms off'
|
||||
#resume 'hyprctl dispatch dpms on' # Crashes all apps -> Hyprland config set misc/mouse_move_enables_dpms=true
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
dnd=$(swaync-client -D)
|
||||
|
||||
swaync-client -dn
|
||||
swaylock -C ~/.config/swaylock/swaylock.conf
|
||||
|
||||
if [ "$dnd" == "false" ]; then
|
||||
swaync-client -df
|
||||
fi
|
||||
@@ -1,13 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
program_name="eww"
|
||||
|
||||
check_program_running() {
|
||||
pgrep -x "$program_name" > /dev/null
|
||||
}
|
||||
|
||||
while ! check_program_running; do
|
||||
sleep 1
|
||||
done
|
||||
|
||||
sleep 1
|
||||
@@ -1,25 +0,0 @@
|
||||
exec-once = ~/.config/hypr/scripts/bar.sh #Has to be first -> Systray
|
||||
|
||||
## Programms
|
||||
exec-once = ~/.config/hypr/scripts/wait_for_tray.sh && discord
|
||||
exec-once = ~/.config/hypr/scripts/wait_for_tray.sh && nextcloud
|
||||
exec-once = ~/.config/hypr/scripts/wait_for_tray.sh && youtube-music
|
||||
|
||||
exec-once = swaync
|
||||
exec-once = nm-applet
|
||||
exec-once = blueman-applet
|
||||
exec-once = hyprshade auto
|
||||
exec-once = playerctld daemon
|
||||
exec-once = indicator-mic-cam
|
||||
exec-once = ~/.config/hypr/scripts/idle.sh
|
||||
exec-once = ~/.config/hypr/scripts/battery_check.sh
|
||||
|
||||
## Clipboard
|
||||
exec-once = wl-paste --type text --watch cliphist store #Stores only text data
|
||||
exec-once = wl-paste --type image --watch cliphist store #Stores only image data
|
||||
|
||||
## Background
|
||||
exec-once = ~/.config/hypr/scripts/background.sh ~/Data/Pictures/Backgrounds/Desktop/
|
||||
|
||||
## Misc
|
||||
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
@@ -1 +0,0 @@
|
||||
link for lock and rofi
|
||||
@@ -1,14 +0,0 @@
|
||||
[$Version]
|
||||
update_info=filepicker.upd:filepicker-remove-old-previews-entry
|
||||
|
||||
[General]
|
||||
TerminalApplication=kitty
|
||||
|
||||
[KDE]
|
||||
ShowDeleteCommand=true
|
||||
|
||||
[KShortcutsDialog Settings]
|
||||
Dialog Size=600,480
|
||||
|
||||
[PreviewSettings]
|
||||
MaximumRemoteSize=0
|
||||
@@ -1,219 +0,0 @@
|
||||
# This file is part of ranger, the console file manager.
|
||||
# License: GNU GPL version 3, see the file "AUTHORS" for details.
|
||||
# This theme was greatly inspired by "RougarouTheme" for ranger
|
||||
# It can be found in: `https://github.com/RougarouTheme/ranger`
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
|
||||
from ranger.gui.colorscheme import ColorScheme
|
||||
from ranger.gui.color import (
|
||||
black,
|
||||
blue,
|
||||
cyan,
|
||||
green,
|
||||
magenta,
|
||||
red,
|
||||
white,
|
||||
yellow,
|
||||
default,
|
||||
normal,
|
||||
bold,
|
||||
reverse,
|
||||
default_colors,
|
||||
)
|
||||
|
||||
|
||||
class Dracula(ColorScheme):
|
||||
progress_bar_color = 13
|
||||
|
||||
def verify_browser(self, context, fg, bg, attr):
|
||||
if context.selected:
|
||||
attr = reverse
|
||||
else:
|
||||
attr = normal
|
||||
if context.empty or context.error:
|
||||
bg = 1
|
||||
fg = 0
|
||||
if context.border:
|
||||
fg = default
|
||||
if context.document:
|
||||
attr |= normal
|
||||
fg = 13
|
||||
if context.media:
|
||||
if context.image:
|
||||
attr |= normal
|
||||
fg = 3
|
||||
elif context.video:
|
||||
fg = 1
|
||||
elif context.audio:
|
||||
fg = 6
|
||||
else:
|
||||
fg = 10
|
||||
if context.container:
|
||||
attr |= bold
|
||||
fg = 9
|
||||
if context.directory:
|
||||
attr |= bold
|
||||
fg = 4
|
||||
elif context.executable and not any(
|
||||
(context.media, context.container, context.fifo, context.socket)
|
||||
):
|
||||
attr |= bold
|
||||
fg = 2
|
||||
if context.socket:
|
||||
fg = 5
|
||||
attr |= bold
|
||||
if context.fifo or context.device:
|
||||
fg = 3
|
||||
if context.device:
|
||||
attr |= bold
|
||||
if context.link:
|
||||
fg = 6 if context.good else 13
|
||||
if context.tag_marker and not context.selected:
|
||||
attr |= bold
|
||||
if fg in (red, magenta):
|
||||
fg = 1
|
||||
else:
|
||||
fg = 15
|
||||
if not context.selected and (context.cut or context.copied):
|
||||
fg = 8
|
||||
attr |= bold
|
||||
if context.main_column:
|
||||
if context.selected:
|
||||
attr |= bold
|
||||
fg = 10
|
||||
if context.marked:
|
||||
attr |= bold
|
||||
fg = 11
|
||||
if context.badinfo:
|
||||
if attr & reverse:
|
||||
bg = 5
|
||||
else:
|
||||
fg = 5
|
||||
|
||||
if context.inactive_pane:
|
||||
fg = 6
|
||||
|
||||
return fg, bg, attr
|
||||
|
||||
def verify_titlebar(self, context, fg, bg, attr):
|
||||
attr |= bold
|
||||
if context.hostname:
|
||||
fg = 1 if context.bad else 2
|
||||
elif context.directory:
|
||||
fg = 4
|
||||
elif context.tab:
|
||||
if context.good:
|
||||
bg = 2
|
||||
elif context.link:
|
||||
fg = 6
|
||||
|
||||
return fg, bg, attr
|
||||
|
||||
def verify_statusbar(self, context, fg, bg, attr):
|
||||
if context.permissions:
|
||||
if context.good:
|
||||
fg = 2
|
||||
elif context.bad:
|
||||
bg = 5
|
||||
fg = 8
|
||||
if context.marked:
|
||||
attr |= bold | reverse
|
||||
fg = 3
|
||||
if context.frozen:
|
||||
attr |= bold | reverse
|
||||
fg = 6
|
||||
if context.message:
|
||||
if context.bad:
|
||||
attr |= bold
|
||||
fg = 1
|
||||
if context.loaded:
|
||||
bg = self.progress_bar_color
|
||||
if context.vcsinfo:
|
||||
fg = 4
|
||||
attr &= ~bold
|
||||
if context.vcscommit:
|
||||
fg = 3
|
||||
attr &= ~bold
|
||||
if context.vcsdate:
|
||||
fg = 6
|
||||
attr &= ~bold
|
||||
|
||||
return fg, bg, attr
|
||||
|
||||
def verify_taskview(self, context, fg, bg, attr):
|
||||
if context.title:
|
||||
fg = 4
|
||||
|
||||
if context.selected:
|
||||
attr |= reverse
|
||||
|
||||
if context.loaded:
|
||||
if context.selected:
|
||||
fg = self.progress_bar_color
|
||||
else:
|
||||
bg = self.progress_bar_color
|
||||
|
||||
return fg, bg, attr
|
||||
|
||||
def verify_vcsfile(self, context, fg, bg, attr):
|
||||
attr &= ~bold
|
||||
if context.vcsconflict:
|
||||
fg = 5
|
||||
elif context.vcschanged:
|
||||
fg = 1
|
||||
elif context.vcsunknown:
|
||||
fg = 1
|
||||
elif context.vcsstaged:
|
||||
fg = 2
|
||||
elif context.vcssync:
|
||||
fg = 2
|
||||
elif context.vcsignored:
|
||||
fg = default
|
||||
|
||||
return fg, bg, attr
|
||||
|
||||
def verify_vcsremote(self, context, fg, bg, attr):
|
||||
attr &= ~bold
|
||||
if context.vcssync or context.vcsnone:
|
||||
fg = 2
|
||||
elif context.vcsbehind:
|
||||
fg = 1
|
||||
elif context.vcsahead:
|
||||
fg = 6
|
||||
elif context.vcsdiverged:
|
||||
fg = 5
|
||||
elif context.vcsunknown:
|
||||
fg = 1
|
||||
|
||||
return fg, bg, attr
|
||||
|
||||
def use(self, context):
|
||||
fg, bg, attr = default_colors
|
||||
|
||||
if context.reset:
|
||||
return default_colors
|
||||
|
||||
elif context.in_browser:
|
||||
fg, bg, attr = self.verify_browser(context, fg, bg, attr)
|
||||
|
||||
elif context.in_titlebar:
|
||||
fg, bg, attr = self.verify_titlebar(context, fg, bg, attr)
|
||||
|
||||
elif context.in_statusbar:
|
||||
fg, bg, attr = self.verify_statusbar(context, fg, bg, attr)
|
||||
|
||||
if context.text:
|
||||
if context.highlight:
|
||||
attr |= reverse
|
||||
|
||||
if context.in_taskview:
|
||||
fg, bg, attr = self.verify_taskview(context, fg, bg, attr)
|
||||
|
||||
if context.vcsfile and not context.selected:
|
||||
fg, bg, attr = self.verify_vcsfile(context, fg, bg, attr)
|
||||
|
||||
elif context.vcsremote and not context.selected:
|
||||
fg, bg, attr = self.verify_vcsremote(context, fg, bg, attr)
|
||||
|
||||
return fg, bg, attr
|
||||
@@ -1,759 +0,0 @@
|
||||
# ===================================================================
|
||||
# This file contains the default startup commands for ranger.
|
||||
# To change them, it is recommended to create either /etc/ranger/rc.conf
|
||||
# (system-wide) or ~/.config/ranger/rc.conf (per user) and add your custom
|
||||
# commands there.
|
||||
#
|
||||
# If you copy this whole file there, you may want to set the environment
|
||||
# variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice.
|
||||
#
|
||||
# The purpose of this file is mainly to define keybindings and settings.
|
||||
# For running more complex python code, please create a plugin in "plugins/" or
|
||||
# a command in "commands.py".
|
||||
#
|
||||
# Each line is a command that will be run before the user interface
|
||||
# is initialized. As a result, you can not use commands which rely
|
||||
# on the UI such as :delete or :mark.
|
||||
# ===================================================================
|
||||
|
||||
# ===================================================================
|
||||
# == Options
|
||||
# ===================================================================
|
||||
|
||||
# Which viewmode should be used? Possible values are:
|
||||
# miller: Use miller columns which show multiple levels of the hierarchy
|
||||
# multipane: Midnight-commander like multipane view showing all tabs next
|
||||
# to each other
|
||||
set viewmode miller
|
||||
#set viewmode multipane
|
||||
|
||||
# How many columns are there, and what are their relative widths?
|
||||
set column_ratios 1,3,4
|
||||
|
||||
# Which files should be hidden? (regular expression)
|
||||
set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$
|
||||
|
||||
# Show hidden files? You can toggle this by typing 'zh'
|
||||
set show_hidden true
|
||||
|
||||
# Ask for a confirmation when running the "delete" command?
|
||||
# Valid values are "always", "never", "multiple" (default)
|
||||
# With "multiple", ranger will ask only if you delete multiple files at once.
|
||||
set confirm_on_delete multiple
|
||||
|
||||
# Use non-default path for file preview script?
|
||||
# ranger ships with scope.sh, a script that calls external programs (see
|
||||
# README.md for dependencies) to preview images, archives, etc.
|
||||
#set preview_script ~/.config/ranger/scope.sh
|
||||
|
||||
# Use the external preview script or display simple plain text or image previews?
|
||||
set use_preview_script true
|
||||
|
||||
# Automatically count files in the directory, even before entering them?
|
||||
set automatically_count_files true
|
||||
|
||||
# Open all images in this directory when running certain image viewers
|
||||
# like feh or sxiv? You can still open selected files by marking them.
|
||||
set open_all_images true
|
||||
|
||||
# Be aware of version control systems and display information.
|
||||
set vcs_aware false
|
||||
|
||||
# State of the four backends git, hg, bzr, svn. The possible states are
|
||||
# disabled, local (only show local info), enabled (show local and remote
|
||||
# information).
|
||||
set vcs_backend_git enabled
|
||||
set vcs_backend_hg disabled
|
||||
set vcs_backend_bzr disabled
|
||||
set vcs_backend_svn disabled
|
||||
|
||||
# Truncate the long commit messages to this length when shown in the statusbar.
|
||||
set vcs_msg_length 50
|
||||
|
||||
# Use one of the supported image preview protocols
|
||||
set preview_images true
|
||||
|
||||
# Set the preview image method. Supported methods:
|
||||
#
|
||||
# * w3m (default):
|
||||
# Preview images in full color with the external command "w3mimgpreview"?
|
||||
# This requires the console web browser "w3m" and a supported terminal.
|
||||
# It has been successfully tested with "xterm" and "urxvt" without tmux.
|
||||
#
|
||||
# * iterm2:
|
||||
# Preview images in full color using iTerm2 image previews
|
||||
# (http://iterm2.com/images.html). This requires using iTerm2 compiled
|
||||
# with image preview support.
|
||||
#
|
||||
# This feature relies on the dimensions of the terminal's font. By default, a
|
||||
# width of 8 and height of 11 are used. To use other values, set the options
|
||||
# iterm2_font_width and iterm2_font_height to the desired values.
|
||||
#
|
||||
# * terminology:
|
||||
# Previews images in full color in the terminology terminal emulator.
|
||||
# Supports a wide variety of formats, even vector graphics like svg.
|
||||
#
|
||||
# * urxvt:
|
||||
# Preview images in full color using urxvt image backgrounds. This
|
||||
# requires using urxvt compiled with pixbuf support.
|
||||
#
|
||||
# * urxvt-full:
|
||||
# The same as urxvt but utilizing not only the preview pane but the
|
||||
# whole terminal window.
|
||||
#
|
||||
# * kitty:
|
||||
# Preview images in full color using kitty image protocol.
|
||||
# Requires python PIL or pillow library.
|
||||
# If ranger does not share the local filesystem with kitty
|
||||
# the transfer method is changed to encode the whole image;
|
||||
# while slower, this allows remote previews,
|
||||
# for example during an ssh session.
|
||||
# Tmux is unsupported.
|
||||
#
|
||||
# * ueberzug:
|
||||
# Preview images in full color with the external command "ueberzug".
|
||||
# Images are shown by using a child window.
|
||||
# Only for users who run X11 in GNU/Linux.
|
||||
set preview_images_method kitty
|
||||
|
||||
# Delay in seconds before displaying an image with the w3m method.
|
||||
# Increase it in case of experiencing display corruption.
|
||||
set w3m_delay 0.02
|
||||
|
||||
# Manually adjust the w3mimg offset when using a terminal which needs this
|
||||
set w3m_offset 0
|
||||
|
||||
# Default iTerm2 font size (see: preview_images_method: iterm2)
|
||||
set iterm2_font_width 8
|
||||
set iterm2_font_height 11
|
||||
|
||||
# Use a unicode "..." character to mark cut-off filenames?
|
||||
set unicode_ellipsis false
|
||||
|
||||
# BIDI support - try to properly display file names in RTL languages (Hebrew, Arabic).
|
||||
# Requires the python-bidi pip package
|
||||
set bidi_support false
|
||||
|
||||
# Show dotfiles in the bookmark preview box?
|
||||
set show_hidden_bookmarks true
|
||||
|
||||
# Which colorscheme to use? These colorschemes are available by default:
|
||||
# default, jungle, snow, solarized
|
||||
set colorscheme dracula
|
||||
|
||||
# Preview files on the rightmost column?
|
||||
# And collapse (shrink) the last column if there is nothing to preview?
|
||||
set preview_files true
|
||||
set preview_directories true
|
||||
set collapse_preview true
|
||||
|
||||
# Wrap long lines in plain text previews?
|
||||
set wrap_plaintext_previews false
|
||||
|
||||
# Save the console history on exit?
|
||||
set save_console_history true
|
||||
|
||||
# Draw the status bar on top of the browser window (default: bottom)
|
||||
set status_bar_on_top false
|
||||
|
||||
# Draw a progress bar in the status bar which displays the average state of all
|
||||
# currently running tasks which support progress bars?
|
||||
set draw_progress_bar_in_status_bar true
|
||||
|
||||
# Draw borders around columns? (separators, outline, both, or none)
|
||||
# Separators are vertical lines between columns.
|
||||
# Outline draws a box around all the columns.
|
||||
# Both combines the two.
|
||||
set draw_borders none
|
||||
|
||||
# Display the directory name in tabs?
|
||||
set dirname_in_tabs false
|
||||
|
||||
# Enable the mouse support?
|
||||
set mouse_enabled true
|
||||
|
||||
# Display the file size in the main column or status bar?
|
||||
set display_size_in_main_column true
|
||||
set display_size_in_status_bar true
|
||||
|
||||
# Display the free disk space in the status bar?
|
||||
set display_free_space_in_status_bar true
|
||||
|
||||
# Display files tags in all columns or only in main column?
|
||||
set display_tags_in_all_columns true
|
||||
|
||||
# Set a title for the window? Updates both `WM_NAME` and `WM_ICON_NAME`
|
||||
set update_title false
|
||||
|
||||
# Set the tmux/screen window-name to "ranger"?
|
||||
set update_tmux_title true
|
||||
|
||||
# Shorten the title if it gets long? The number defines how many
|
||||
# directories are displayed at once, 0 turns off this feature.
|
||||
set shorten_title 3
|
||||
|
||||
# Show hostname in titlebar?
|
||||
set hostname_in_titlebar true
|
||||
|
||||
# Abbreviate $HOME with ~ in the titlebar (first line) of ranger?
|
||||
set tilde_in_titlebar false
|
||||
|
||||
# How many directory-changes or console-commands should be kept in history?
|
||||
set max_history_size 20
|
||||
set max_console_history_size 50
|
||||
|
||||
# Try to keep so much space between the top/bottom border when scrolling:
|
||||
set scroll_offset 8
|
||||
|
||||
# Flush the input after each key hit? (Noticeable when ranger lags)
|
||||
set flushinput true
|
||||
|
||||
# Padding on the right when there's no preview?
|
||||
# This allows you to click into the space to run the file.
|
||||
set padding_right true
|
||||
|
||||
# Save bookmarks (used with mX and `X) instantly?
|
||||
# This helps to synchronize bookmarks between multiple ranger
|
||||
# instances but leads to *slight* performance loss.
|
||||
# When false, bookmarks are saved when ranger is exited.
|
||||
set autosave_bookmarks true
|
||||
|
||||
# Save the "`" bookmark to disk. This can be used to switch to the last
|
||||
# directory by typing "``".
|
||||
set save_backtick_bookmark true
|
||||
|
||||
# You can display the "real" cumulative size of directories by using the
|
||||
# command :get_cumulative_size or typing "dc". The size is expensive to
|
||||
# calculate and will not be updated automatically. You can choose
|
||||
# to update it automatically though by turning on this option:
|
||||
set autoupdate_cumulative_size false
|
||||
|
||||
# Turning this on makes sense for screen readers:
|
||||
set show_cursor false
|
||||
|
||||
# One of: size, natural, basename, atime, ctime, mtime, type, random
|
||||
set sort natural
|
||||
|
||||
# Additional sorting options
|
||||
set sort_reverse false
|
||||
set sort_case_insensitive true
|
||||
set sort_directories_first true
|
||||
set sort_unicode false
|
||||
|
||||
# Enable this if key combinations with the Alt Key don't work for you.
|
||||
# (Especially on xterm)
|
||||
set xterm_alt_key false
|
||||
|
||||
# Whether to include bookmarks in cd command
|
||||
set cd_bookmarks true
|
||||
|
||||
# Changes case sensitivity for the cd command tab completion
|
||||
set cd_tab_case sensitive
|
||||
|
||||
# Use fuzzy tab completion with the "cd" command. For example,
|
||||
# ":cd /u/lo/b<tab>" expands to ":cd /usr/local/bin".
|
||||
set cd_tab_fuzzy false
|
||||
|
||||
# Avoid previewing files larger than this size, in bytes. Use a value of 0 to
|
||||
# disable this feature.
|
||||
set preview_max_size 0
|
||||
|
||||
# The key hint lists up to this size have their sublists expanded.
|
||||
# Otherwise the submaps are replaced with "...".
|
||||
set hint_collapse_threshold 10
|
||||
|
||||
# Add the highlighted file to the path in the titlebar
|
||||
set show_selection_in_titlebar true
|
||||
|
||||
# The delay that ranger idly waits for user input, in milliseconds, with a
|
||||
# resolution of 100ms. Lower delay reduces lag between directory updates but
|
||||
# increases CPU load.
|
||||
set idle_delay 2000
|
||||
|
||||
# When the metadata manager module looks for metadata, should it only look for
|
||||
# a ".metadata.json" file in the current directory, or do a deep search and
|
||||
# check all directories above the current one as well?
|
||||
set metadata_deep_search false
|
||||
|
||||
# Clear all existing filters when leaving a directory
|
||||
set clear_filters_on_dir_change false
|
||||
|
||||
# Disable displaying line numbers in main column.
|
||||
# Possible values: false, absolute, relative.
|
||||
set line_numbers false
|
||||
|
||||
# When line_numbers=relative show the absolute line number in the
|
||||
# current line.
|
||||
set relative_current_zero false
|
||||
|
||||
# Start line numbers from 1 instead of 0
|
||||
set one_indexed false
|
||||
|
||||
# Save tabs on exit
|
||||
set save_tabs_on_exit false
|
||||
|
||||
# Enable scroll wrapping - moving down while on the last item will wrap around to
|
||||
# the top and vice versa.
|
||||
set wrap_scroll false
|
||||
|
||||
# Set the global_inode_type_filter to nothing. Possible options: d, f and l for
|
||||
# directories, files and symlinks respectively.
|
||||
set global_inode_type_filter
|
||||
|
||||
# This setting allows to freeze the list of files to save I/O bandwidth. It
|
||||
# should be 'false' during start-up, but you can toggle it by pressing F.
|
||||
set freeze_files false
|
||||
|
||||
# Print file sizes in bytes instead of the default human-readable format.
|
||||
set size_in_bytes false
|
||||
|
||||
# Warn at startup if RANGER_LEVEL env var is greater than 0, in other words
|
||||
# give a warning when you nest ranger in a subshell started by ranger.
|
||||
# Special value "error" makes the warning more visible.
|
||||
set nested_ranger_warning true
|
||||
|
||||
# ===================================================================
|
||||
# == Local Options
|
||||
# ===================================================================
|
||||
# You can set local options that only affect a single directory.
|
||||
|
||||
# Examples:
|
||||
# setlocal path=~/downloads sort mtime
|
||||
|
||||
# ===================================================================
|
||||
# == Command Aliases in the Console
|
||||
# ===================================================================
|
||||
|
||||
alias e edit
|
||||
alias q quit
|
||||
alias q! quit!
|
||||
alias qa quitall
|
||||
alias qa! quitall!
|
||||
alias qall quitall
|
||||
alias qall! quitall!
|
||||
alias setl setlocal
|
||||
|
||||
alias filter scout -prts
|
||||
alias find scout -aets
|
||||
alias mark scout -mr
|
||||
alias unmark scout -Mr
|
||||
alias search scout -rs
|
||||
alias search_inc scout -rts
|
||||
alias travel scout -aefklst
|
||||
|
||||
# ===================================================================
|
||||
# == Define keys for the browser
|
||||
# ===================================================================
|
||||
|
||||
# Basic
|
||||
map Q quitall
|
||||
map q quit
|
||||
copymap q ZZ ZQ
|
||||
|
||||
map R reload_cwd
|
||||
map F set freeze_files!
|
||||
map <C-r> reset
|
||||
map <C-l> redraw_window
|
||||
map <C-c> abort
|
||||
map <esc> change_mode normal
|
||||
map ~ set viewmode!
|
||||
|
||||
map i display_file
|
||||
map <A-j> scroll_preview 1
|
||||
map <A-k> scroll_preview -1
|
||||
map ? help
|
||||
map W display_log
|
||||
map w taskview_open
|
||||
map S shell $SHELL
|
||||
|
||||
map : console
|
||||
map ; console
|
||||
map ! console shell%space
|
||||
map @ console -p6 shell %%s
|
||||
map # console shell -p%space
|
||||
map s console shell%space
|
||||
map r chain draw_possible_programs; console open_with%space
|
||||
map f console find%space
|
||||
map cd console cd%space
|
||||
|
||||
map <C-p> chain console; eval fm.ui.console.history_move(-1)
|
||||
|
||||
# Change the line mode
|
||||
map Mf linemode filename
|
||||
map Mi linemode fileinfo
|
||||
map Mm linemode mtime
|
||||
map Mh linemode humanreadablemtime
|
||||
map Mp linemode permissions
|
||||
map Ms linemode sizemtime
|
||||
map MH linemode sizehumanreadablemtime
|
||||
map Mt linemode metatitle
|
||||
|
||||
# Tagging / Marking
|
||||
map t tag_toggle
|
||||
map ut tag_remove
|
||||
map "<any> tag_toggle tag=%any
|
||||
map <Space> mark_files toggle=True
|
||||
map v mark_files all=True toggle=True
|
||||
map uv mark_files all=True val=False
|
||||
map V toggle_visual_mode
|
||||
map uV toggle_visual_mode reverse=True
|
||||
|
||||
# For the nostalgics: Midnight Commander bindings
|
||||
map <F1> help
|
||||
map <F2> rename_append
|
||||
map <F3> display_file
|
||||
map <F4> edit
|
||||
map <F5> copy
|
||||
map <F6> cut
|
||||
map <F7> console mkdir%space
|
||||
map <F8> console delete
|
||||
#map <F8> console trash
|
||||
map <F10> exit
|
||||
|
||||
# In case you work on a keyboard with dvorak layout
|
||||
map <UP> move up=1
|
||||
map <DOWN> move down=1
|
||||
map <LEFT> move left=1
|
||||
map <RIGHT> move right=1
|
||||
map <HOME> move to=0
|
||||
map <END> move to=-1
|
||||
map <PAGEDOWN> move down=1 pages=True
|
||||
map <PAGEUP> move up=1 pages=True
|
||||
map <CR> move right=1
|
||||
#map <DELETE> console delete
|
||||
map <INSERT> console touch%space
|
||||
|
||||
# VIM-like
|
||||
copymap <UP> k
|
||||
copymap <DOWN> j
|
||||
copymap <LEFT> h
|
||||
copymap <RIGHT> l
|
||||
copymap <HOME> gg
|
||||
copymap <END> G
|
||||
copymap <PAGEDOWN> <C-F>
|
||||
copymap <PAGEUP> <C-B>
|
||||
|
||||
map J move down=0.5 pages=True
|
||||
map K move up=0.5 pages=True
|
||||
copymap J <C-D>
|
||||
copymap K <C-U>
|
||||
|
||||
# Jumping around
|
||||
map H history_go -1
|
||||
map L history_go 1
|
||||
map ] move_parent 1
|
||||
map [ move_parent -1
|
||||
map } traverse
|
||||
map { traverse_backwards
|
||||
map ) jump_non
|
||||
|
||||
map gh cd ~
|
||||
map ge cd /etc
|
||||
map gu cd /usr
|
||||
map gd cd /dev
|
||||
map gl cd -r .
|
||||
map gL cd -r %f
|
||||
map go cd /opt
|
||||
map gv cd /var
|
||||
map gm cd /media
|
||||
map gi eval fm.cd('/run/media/' + os.getenv('USER'))
|
||||
map gM cd /mnt
|
||||
map gs cd /srv
|
||||
map gp cd /tmp
|
||||
map gr cd /
|
||||
map gR eval fm.cd(ranger.RANGERDIR)
|
||||
map g/ cd /
|
||||
map g? cd /usr/share/doc/ranger
|
||||
|
||||
# External Programs
|
||||
map E edit
|
||||
map du shell -p du --max-depth=1 -h --apparent-size
|
||||
map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh
|
||||
map yp yank path
|
||||
map yd yank dir
|
||||
map yn yank name
|
||||
map y. yank name_without_extension
|
||||
|
||||
# Filesystem Operations
|
||||
map = chmod
|
||||
|
||||
map cw console rename%space
|
||||
map a rename_append
|
||||
map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"))
|
||||
map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7)
|
||||
|
||||
map pp paste
|
||||
map po paste overwrite=True
|
||||
map pP paste append=True
|
||||
map pO paste overwrite=True append=True
|
||||
map pl paste_symlink relative=False
|
||||
map pL paste_symlink relative=True
|
||||
map phl paste_hardlink
|
||||
map pht paste_hardlinked_subtree
|
||||
map pd console paste dest=
|
||||
map p`<any> paste dest=%any_path
|
||||
map p'<any> paste dest=%any_path
|
||||
|
||||
map dD console delete
|
||||
map dT console trash
|
||||
|
||||
map dd cut
|
||||
map ud uncut
|
||||
map da cut mode=add
|
||||
map dr cut mode=remove
|
||||
map dt cut mode=toggle
|
||||
|
||||
map yy copy
|
||||
map uy uncut
|
||||
map ya copy mode=add
|
||||
map yr copy mode=remove
|
||||
map yt copy mode=toggle
|
||||
|
||||
# Temporary workarounds
|
||||
map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier)
|
||||
map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier)
|
||||
map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier)
|
||||
map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier)
|
||||
map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier)
|
||||
map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier)
|
||||
map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier)
|
||||
map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier)
|
||||
|
||||
# Searching
|
||||
map / console search%space
|
||||
map n search_next
|
||||
map N search_next forward=False
|
||||
map ct search_next order=tag
|
||||
map cs search_next order=size
|
||||
map ci search_next order=mimetype
|
||||
map cc search_next order=ctime
|
||||
map cm search_next order=mtime
|
||||
map ca search_next order=atime
|
||||
|
||||
# Tabs
|
||||
map <C-n> tab_new
|
||||
map <C-w> tab_close
|
||||
map <TAB> tab_move 1
|
||||
map <S-TAB> tab_move -1
|
||||
map <A-Right> tab_move 1
|
||||
map <A-Left> tab_move -1
|
||||
map gt tab_move 1
|
||||
map gT tab_move -1
|
||||
map gn tab_new
|
||||
map gc tab_close
|
||||
map uq tab_restore
|
||||
map <a-1> tab_open 1
|
||||
map <a-2> tab_open 2
|
||||
map <a-3> tab_open 3
|
||||
map <a-4> tab_open 4
|
||||
map <a-5> tab_open 5
|
||||
map <a-6> tab_open 6
|
||||
map <a-7> tab_open 7
|
||||
map <a-8> tab_open 8
|
||||
map <a-9> tab_open 9
|
||||
map <a-r> tab_shift 1
|
||||
map <a-l> tab_shift -1
|
||||
|
||||
# Sorting
|
||||
map or set sort_reverse!
|
||||
map oz set sort=random
|
||||
map os chain set sort=size; set sort_reverse=False
|
||||
map ob chain set sort=basename; set sort_reverse=False
|
||||
map on chain set sort=natural; set sort_reverse=False
|
||||
map om chain set sort=mtime; set sort_reverse=False
|
||||
map oc chain set sort=ctime; set sort_reverse=False
|
||||
map oa chain set sort=atime; set sort_reverse=False
|
||||
map ot chain set sort=type; set sort_reverse=False
|
||||
map oe chain set sort=extension; set sort_reverse=False
|
||||
|
||||
map oS chain set sort=size; set sort_reverse=True
|
||||
map oB chain set sort=basename; set sort_reverse=True
|
||||
map oN chain set sort=natural; set sort_reverse=True
|
||||
map oM chain set sort=mtime; set sort_reverse=True
|
||||
map oC chain set sort=ctime; set sort_reverse=True
|
||||
map oA chain set sort=atime; set sort_reverse=True
|
||||
map oT chain set sort=type; set sort_reverse=True
|
||||
map oE chain set sort=extension; set sort_reverse=True
|
||||
|
||||
map dc get_cumulative_size
|
||||
|
||||
# Settings
|
||||
map zc set collapse_preview!
|
||||
map zd set sort_directories_first!
|
||||
map zh set show_hidden!
|
||||
map <C-h> set show_hidden!
|
||||
copymap <C-h> <backspace>
|
||||
copymap <backspace> <backspace2>
|
||||
map zI set flushinput!
|
||||
map zi set preview_images!
|
||||
map zm set mouse_enabled!
|
||||
map zp set preview_files!
|
||||
map zP set preview_directories!
|
||||
map zs set sort_case_insensitive!
|
||||
map zu set autoupdate_cumulative_size!
|
||||
map zv set use_preview_script!
|
||||
map zf console filter%space
|
||||
copymap zf zz
|
||||
|
||||
# Filter stack
|
||||
map .d filter_stack add type d
|
||||
map .f filter_stack add type f
|
||||
map .l filter_stack add type l
|
||||
map .m console filter_stack add mime%space
|
||||
map .n console filter_stack add name%space
|
||||
map .# console filter_stack add hash%space
|
||||
map ." filter_stack add duplicate
|
||||
map .' filter_stack add unique
|
||||
map .| filter_stack add or
|
||||
map .& filter_stack add and
|
||||
map .! filter_stack add not
|
||||
map .r filter_stack rotate
|
||||
map .c filter_stack clear
|
||||
map .* filter_stack decompose
|
||||
map .p filter_stack pop
|
||||
map .. filter_stack show
|
||||
|
||||
# Bookmarks
|
||||
map `<any> enter_bookmark %any
|
||||
map '<any> enter_bookmark %any
|
||||
map m<any> set_bookmark %any
|
||||
map um<any> unset_bookmark %any
|
||||
|
||||
map m<bg> draw_bookmarks
|
||||
copymap m<bg> um<bg> `<bg> '<bg>
|
||||
|
||||
# Generate all the chmod bindings with some python help:
|
||||
eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map +{0} shell -f chmod u+{0} %s".format(arg))
|
||||
|
||||
eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg))
|
||||
|
||||
# ===================================================================
|
||||
# == Define keys for the console
|
||||
# ===================================================================
|
||||
# Note: Unmapped keys are passed directly to the console.
|
||||
|
||||
# Basic
|
||||
cmap <tab> eval fm.ui.console.tab()
|
||||
cmap <s-tab> eval fm.ui.console.tab(-1)
|
||||
cmap <ESC> eval fm.ui.console.close()
|
||||
cmap <CR> eval fm.ui.console.execute()
|
||||
cmap <C-l> redraw_window
|
||||
|
||||
copycmap <ESC> <C-c>
|
||||
copycmap <CR> <C-j>
|
||||
|
||||
# Move around
|
||||
cmap <up> eval fm.ui.console.history_move(-1)
|
||||
cmap <down> eval fm.ui.console.history_move(1)
|
||||
cmap <left> eval fm.ui.console.move(left=1)
|
||||
cmap <right> eval fm.ui.console.move(right=1)
|
||||
cmap <home> eval fm.ui.console.move(right=0, absolute=True)
|
||||
cmap <end> eval fm.ui.console.move(right=-1, absolute=True)
|
||||
cmap <a-b> eval fm.ui.console.move_word(left=1)
|
||||
cmap <a-f> eval fm.ui.console.move_word(right=1)
|
||||
|
||||
copycmap <a-b> <a-left>
|
||||
copycmap <a-f> <a-right>
|
||||
|
||||
# Line Editing
|
||||
cmap <backspace> eval fm.ui.console.delete(-1)
|
||||
cmap <delete> eval fm.ui.console.delete(0)
|
||||
cmap <C-w> eval fm.ui.console.delete_word()
|
||||
cmap <A-d> eval fm.ui.console.delete_word(backward=False)
|
||||
cmap <C-k> eval fm.ui.console.delete_rest(1)
|
||||
cmap <C-u> eval fm.ui.console.delete_rest(-1)
|
||||
cmap <C-y> eval fm.ui.console.paste()
|
||||
|
||||
# And of course the emacs way
|
||||
copycmap <ESC> <C-g>
|
||||
copycmap <up> <C-p>
|
||||
copycmap <down> <C-n>
|
||||
copycmap <left> <C-b>
|
||||
copycmap <right> <C-f>
|
||||
copycmap <home> <C-a>
|
||||
copycmap <end> <C-e>
|
||||
copycmap <delete> <C-d>
|
||||
copycmap <backspace> <C-h>
|
||||
|
||||
# Note: There are multiple ways to express backspaces. <backspace> (code 263)
|
||||
# and <backspace2> (code 127). To be sure, use both.
|
||||
copycmap <backspace> <backspace2>
|
||||
|
||||
# This special expression allows typing in numerals:
|
||||
cmap <allow_quantifiers> false
|
||||
|
||||
# ===================================================================
|
||||
# == Pager Keybindings
|
||||
# ===================================================================
|
||||
|
||||
# Movement
|
||||
pmap <down> pager_move down=1
|
||||
pmap <up> pager_move up=1
|
||||
pmap <left> pager_move left=4
|
||||
pmap <right> pager_move right=4
|
||||
pmap <home> pager_move to=0
|
||||
pmap <end> pager_move to=-1
|
||||
pmap <pagedown> pager_move down=1.0 pages=True
|
||||
pmap <pageup> pager_move up=1.0 pages=True
|
||||
pmap <C-d> pager_move down=0.5 pages=True
|
||||
pmap <C-u> pager_move up=0.5 pages=True
|
||||
|
||||
copypmap <UP> k <C-p>
|
||||
copypmap <DOWN> j <C-n> <CR>
|
||||
copypmap <LEFT> h
|
||||
copypmap <RIGHT> l
|
||||
copypmap <HOME> g
|
||||
copypmap <END> G
|
||||
copypmap <C-d> d
|
||||
copypmap <C-u> u
|
||||
copypmap <PAGEDOWN> n f <C-F> <Space>
|
||||
copypmap <PAGEUP> p b <C-B>
|
||||
|
||||
# Basic
|
||||
pmap <C-l> redraw_window
|
||||
pmap <ESC> pager_close
|
||||
copypmap <ESC> q Q i <F3>
|
||||
pmap E edit_file
|
||||
|
||||
# ===================================================================
|
||||
# == Taskview Keybindings
|
||||
# ===================================================================
|
||||
|
||||
# Movement
|
||||
tmap <up> taskview_move up=1
|
||||
tmap <down> taskview_move down=1
|
||||
tmap <home> taskview_move to=0
|
||||
tmap <end> taskview_move to=-1
|
||||
tmap <pagedown> taskview_move down=1.0 pages=True
|
||||
tmap <pageup> taskview_move up=1.0 pages=True
|
||||
tmap <C-d> taskview_move down=0.5 pages=True
|
||||
tmap <C-u> taskview_move up=0.5 pages=True
|
||||
|
||||
copytmap <UP> k <C-p>
|
||||
copytmap <DOWN> j <C-n> <CR>
|
||||
copytmap <HOME> g
|
||||
copytmap <END> G
|
||||
copytmap <C-u> u
|
||||
copytmap <PAGEDOWN> n f <C-F> <Space>
|
||||
copytmap <PAGEUP> p b <C-B>
|
||||
|
||||
# Changing priority and deleting tasks
|
||||
tmap J eval -q fm.ui.taskview.task_move(-1)
|
||||
tmap K eval -q fm.ui.taskview.task_move(0)
|
||||
tmap dd eval -q fm.ui.taskview.task_remove()
|
||||
tmap <pagedown> eval -q fm.ui.taskview.task_move(-1)
|
||||
tmap <pageup> eval -q fm.ui.taskview.task_move(0)
|
||||
tmap <delete> eval -q fm.ui.taskview.task_remove()
|
||||
|
||||
# Basic
|
||||
tmap <C-l> redraw_window
|
||||
tmap <ESC> taskview_close
|
||||
copytmap <ESC> q Q w <C-c>
|
||||
@@ -1,132 +0,0 @@
|
||||
// Config //
|
||||
configuration {
|
||||
modi: "drun,filebrowser,window,run";
|
||||
show-icons: true;
|
||||
display-drun: "";
|
||||
display-run: "";
|
||||
display-filebrowser: "";
|
||||
display-window: "";
|
||||
drun-display-format: "{name}";
|
||||
window-format: "{w}{t}";
|
||||
icon-theme: "Papirus";
|
||||
}
|
||||
|
||||
// Theme //
|
||||
@theme "~/.config/rofi/themes/theme.rasi"
|
||||
|
||||
|
||||
// Main //
|
||||
window {
|
||||
height: 506px; // 16:9
|
||||
width: 900px; // 16:9
|
||||
transparency: "real";
|
||||
fullscreen: false;
|
||||
enabled: true;
|
||||
cursor: "default";
|
||||
spacing: 0px;
|
||||
padding: 0px;
|
||||
border: 2px;
|
||||
border-radius: 15px;
|
||||
border-color: @main-br;
|
||||
background-color: transparent;
|
||||
}
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
padding: 0px;
|
||||
orientation: vertical;
|
||||
children: [ "inputbar" , "listbox" ];
|
||||
background-color: transparent;
|
||||
background-image: url("~/.config/hypr/theme/current_background.jpg", width);
|
||||
}
|
||||
|
||||
|
||||
// Inputs //
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
padding: 40px;
|
||||
children: [ "entry" ];
|
||||
background-color: @main-bg;
|
||||
}
|
||||
entry {
|
||||
border-radius: 30px;
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
padding: 20px;
|
||||
text-color: @main-fg;
|
||||
background-color: @main-bg;
|
||||
}
|
||||
|
||||
|
||||
// Lists //
|
||||
listbox {
|
||||
padding: 30px;
|
||||
spacing: 0px;
|
||||
orientation: horizontal;
|
||||
children: [ "listview" , "mode-switcher" ];
|
||||
background-color: @main-bg;
|
||||
}
|
||||
listview {
|
||||
padding: 0px;
|
||||
spacing: 10px;
|
||||
enabled: true;
|
||||
columns: 2;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
cursor: "default";
|
||||
background-color: transparent;
|
||||
text-color: @main-fg;
|
||||
}
|
||||
mode-switcher {
|
||||
orientation: vertical;
|
||||
width: 95px;
|
||||
enabled: true;
|
||||
padding: 15px;
|
||||
spacing: 10px;
|
||||
background-color: transparent;
|
||||
}
|
||||
button {
|
||||
cursor: pointer;
|
||||
border-radius: 20px;
|
||||
background-color: @main-bg;
|
||||
text-color: @main-fg;
|
||||
}
|
||||
button selected {
|
||||
background-color: @main-fg;
|
||||
text-color: @main-bg;
|
||||
}
|
||||
|
||||
|
||||
// Elements //
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 20px;
|
||||
padding: 9px;
|
||||
border-radius: 25px;
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
text-color: @main-fg;
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: @select-bg;
|
||||
text-color: @select-fg;
|
||||
}
|
||||
element-icon {
|
||||
size: 47px;
|
||||
cursor: inherit;
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
}
|
||||
element-text {
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
cursor: inherit;
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
}
|
||||
@@ -1,98 +0,0 @@
|
||||
// Config //
|
||||
configuration {
|
||||
modi: "drun";
|
||||
show-icons: false;
|
||||
}
|
||||
|
||||
// Theme //
|
||||
@theme "~/.config/rofi/themes/theme.rasi"
|
||||
|
||||
// Main //
|
||||
window {
|
||||
height: 50%;
|
||||
width: 20%;
|
||||
location: center;
|
||||
transparency: "real";
|
||||
fullscreen: false;
|
||||
enabled: true;
|
||||
cursor: "default";
|
||||
spacing: 0px;
|
||||
padding: 0px;
|
||||
border: 2px;
|
||||
border-radius: 15px;
|
||||
border-color: @main-br;
|
||||
background-color: transparent;
|
||||
}
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
orientation: vertical;
|
||||
children: [ "inputbar" , "listbox" ];
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
|
||||
// Inputs //
|
||||
inputbar {
|
||||
enabled: true;
|
||||
padding: 7px;
|
||||
children: [ "entry" ];
|
||||
background-color: @main-bg;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
padding: 40px;
|
||||
text-color: @main-fg;
|
||||
background-color: @main-bg;
|
||||
}
|
||||
|
||||
|
||||
// Lists //
|
||||
listbox {
|
||||
spacing: 0px;
|
||||
padding: 6px;
|
||||
children: [ "listview" ];
|
||||
background-color: @main-bg;
|
||||
}
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: false;
|
||||
fixed-columns: true;
|
||||
cursor: "default";
|
||||
background-color: transparent;
|
||||
text-color: @main-fg;
|
||||
}
|
||||
|
||||
|
||||
// Elements //
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
padding: 12px;
|
||||
border-radius: 10px;
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
text-color: @main-fg;
|
||||
}
|
||||
@media(max-aspect-ratio: 1.8) {
|
||||
element {
|
||||
orientation: vertical;
|
||||
}
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: @select-bg;
|
||||
text-color: @select-fg;
|
||||
}
|
||||
element-text {
|
||||
vertical-align: 0.0;
|
||||
horizontal-align: 0.0;
|
||||
cursor: inherit;
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
}
|
||||
@@ -1,151 +0,0 @@
|
||||
// Config //
|
||||
configuration {
|
||||
modi: "emoji:rofimoji,calc,drun,filebrowser,run";
|
||||
show-icons: true;
|
||||
display-drun: "";
|
||||
display-run: "";
|
||||
display-filebrowser: "";
|
||||
display-window: "";
|
||||
drun-display-format: "{name}";
|
||||
window-format: "{w}{t}";
|
||||
icon-theme: "Papirus";
|
||||
}
|
||||
|
||||
// Theme //
|
||||
@theme "~/.config/rofi/themes/theme.rasi"
|
||||
|
||||
|
||||
// Main //
|
||||
window {
|
||||
height: 506px; // 16:9
|
||||
width: 900px; // 16:9
|
||||
location: center;
|
||||
transparency: "real";
|
||||
fullscreen: false;
|
||||
enabled: true;
|
||||
cursor: "default";
|
||||
spacing: 0px;
|
||||
padding: 0px;
|
||||
border: 2px;
|
||||
border-radius: 15px;
|
||||
border-color: @main-br;
|
||||
background-color: transparent;
|
||||
}
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
padding: 0px;
|
||||
orientation: vertical;
|
||||
children: [ "inputbar", "listbox" ];
|
||||
background-color: transparent;
|
||||
background-image: url("~/.config/hypr/theme/current_background.jpg", width);
|
||||
}
|
||||
|
||||
// Message //
|
||||
message {
|
||||
padding: 0px 55px;
|
||||
background-color: @main-bg;
|
||||
}
|
||||
|
||||
textbox {
|
||||
enabled: true;
|
||||
border-radius: 15px;
|
||||
spacing: 0px;
|
||||
padding: 20px;
|
||||
text-color: @main-fg;
|
||||
background-color: @main-bg;
|
||||
border: 1px;
|
||||
border-color: @main-br;
|
||||
}
|
||||
|
||||
// Inputs //
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
padding: 40px;
|
||||
children: [ "entry" ];
|
||||
background-color: @main-bg;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
border-radius: 15px;
|
||||
spacing: 0px;
|
||||
padding: 20px;
|
||||
text-color: @main-fg;
|
||||
background-color: @main-bg;
|
||||
border: 1px;
|
||||
border-color: @main-br;
|
||||
}
|
||||
|
||||
|
||||
// Lists //
|
||||
listbox {
|
||||
padding: 30px;
|
||||
spacing: 0px;
|
||||
orientation: horizontal;
|
||||
children: [ "listview" ];
|
||||
background-color: @main-bg;
|
||||
}
|
||||
listview {
|
||||
padding: 0px;
|
||||
spacing: 10px;
|
||||
enabled: true;
|
||||
columns: 2;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
cursor: "default";
|
||||
background-color: transparent;
|
||||
text-color: @main-fg;
|
||||
}
|
||||
mode-switcher {
|
||||
orientation: vertical;
|
||||
width: 95px;
|
||||
enabled: true;
|
||||
padding: 15px;
|
||||
spacing: 10px;
|
||||
background-color: transparent;
|
||||
}
|
||||
button {
|
||||
cursor: pointer;
|
||||
border-radius: 20px;
|
||||
background-color: @main-bg;
|
||||
text-color: @main-fg;
|
||||
}
|
||||
button selected {
|
||||
background-color: @main-fg;
|
||||
text-color: @main-bg;
|
||||
}
|
||||
|
||||
|
||||
// Elements //
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 20px;
|
||||
padding: 9px;
|
||||
border-radius: 25px;
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
text-color: @main-fg;
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: @select-bg;
|
||||
text-color: @select-fg;
|
||||
}
|
||||
element-icon {
|
||||
size: 47px;
|
||||
cursor: inherit;
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
}
|
||||
element-text {
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
cursor: inherit;
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* https://github.com/catppuccin/rofi/
|
||||
*/
|
||||
|
||||
* {
|
||||
main-bg: #11111bd6;
|
||||
main-fg: #cdd6f4ff;
|
||||
main-br: #7dc4e4ff; /*#cba6f7ff;*/
|
||||
main-ex: #f5e0dcff;
|
||||
select-bg: #b4befeff;
|
||||
select-fg: #11111bff;
|
||||
separatorcolor: transparent;
|
||||
border-color: transparent;
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
action = copy
|
||||
files = [emojis, gitmoji, hebrew, fontawesome6, math]
|
||||
skin-tone=ask
|
||||
@@ -1,10 +0,0 @@
|
||||
clock
|
||||
grace=5
|
||||
indicator
|
||||
color=550000
|
||||
timestr=%k:%M
|
||||
datestr=%a %e.%m.%Y
|
||||
effect-blur=4x2
|
||||
effect-scale=0.4
|
||||
effect-vignette=0.2:0.5
|
||||
image=~/.config/hypr/theme/current_background.jpg
|
||||
@@ -1,91 +0,0 @@
|
||||
{
|
||||
"$schema": "/etc/xdg/swaync/configSchema.json",
|
||||
"positionX": "right",
|
||||
"positionY": "top",
|
||||
"layer": "overlay",
|
||||
"control-center-layer": "top",
|
||||
"layer-shell": true,
|
||||
"cssPriority": "application",
|
||||
"control-center-margin-top": 0,
|
||||
"control-center-margin-bottom": 0,
|
||||
"control-center-margin-right": 0,
|
||||
"control-center-margin-left": 0,
|
||||
"notification-2fa-action": true,
|
||||
"notification-inline-replies": true,
|
||||
"notification-icon-size": 64,
|
||||
"notification-body-image-height": 100,
|
||||
"notification-body-image-width": 200,
|
||||
"timeout": 10,
|
||||
"timeout-low": 5,
|
||||
"timeout-critical": 0,
|
||||
"fit-to-screen": true,
|
||||
"control-center-width": 500,
|
||||
"control-center-height": 600,
|
||||
"notification-window-width": 500,
|
||||
"keyboard-shortcuts": true,
|
||||
"image-visibility": "when-available",
|
||||
"transition-time": 200,
|
||||
"hide-on-clear": true,
|
||||
"hide-on-action": true,
|
||||
"script-fail-notify": true,
|
||||
"scripts-example": {
|
||||
"example-script": {
|
||||
"exec": "echo 'Custom config?'",
|
||||
"urgency": "Normal"
|
||||
}
|
||||
},
|
||||
"widgets": [
|
||||
"buttons-grid",
|
||||
"inhibitors",
|
||||
"title",
|
||||
"dnd",
|
||||
"notifications"
|
||||
],
|
||||
"widget-config": {
|
||||
"inhibitors": {
|
||||
"text": "Inhibitors",
|
||||
"button-text": "Clear All",
|
||||
"clear-all-button": true
|
||||
},
|
||||
"title": {
|
||||
"text": "Notifications",
|
||||
"clear-all-button": true,
|
||||
"button-text": "Clear All"
|
||||
},
|
||||
"dnd": {
|
||||
"text": "Do Not Disturb"
|
||||
},
|
||||
"label": {
|
||||
"max-lines": 5,
|
||||
"text": "Label Text"
|
||||
},
|
||||
"mpris": {
|
||||
"image-size": 96,
|
||||
"image-radius": 12
|
||||
},
|
||||
"buttons-grid": {
|
||||
"actions": [
|
||||
{
|
||||
"label": "",
|
||||
"command": "systemctl poweroff"
|
||||
},
|
||||
{
|
||||
"label": "",
|
||||
"command": "systemctl reboot"
|
||||
},
|
||||
{
|
||||
"label": "",
|
||||
"command": "systemctl suspend"
|
||||
},
|
||||
{
|
||||
"label": "",
|
||||
"command": "~/.config/hypr/scripts/lock.sh"
|
||||
},
|
||||
{
|
||||
"label": "",
|
||||
"command": "hyprctl dispatch exit 0"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,294 +0,0 @@
|
||||
* {
|
||||
all: unset;
|
||||
font-size: 14px;
|
||||
font-family: "FiraCode Nerd Font";
|
||||
transition: 200ms;
|
||||
}
|
||||
|
||||
.blank-window {
|
||||
background: alpha(black, 0.25);
|
||||
}
|
||||
|
||||
.widget-buttons-grid {
|
||||
font-size: x-large;
|
||||
padding: 8px;
|
||||
margin: 20px 0px;
|
||||
border-radius: 12px;
|
||||
background: #363a4f;
|
||||
}
|
||||
|
||||
.widget-buttons-grid>flowbox>flowboxchild>button {
|
||||
margin: 3px;
|
||||
background: #343b58;
|
||||
border-radius: 12px;
|
||||
color: #cad3f5;
|
||||
}
|
||||
|
||||
.widget-buttons-grid>flowbox>flowboxchild>button:hover {
|
||||
/* background: @noti-bg-hover; */
|
||||
color: #8aadf4;
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background {
|
||||
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #363a4f;
|
||||
border-radius: 12.6px;
|
||||
margin: 18px;
|
||||
background-color: #24273a;
|
||||
color: #cad3f5;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background .notification {
|
||||
padding: 7px;
|
||||
border-radius: 12.6px;
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background .notification.critical {
|
||||
box-shadow: inset 0 0 7px 0 #ed8796;
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background .notification .notification-content {
|
||||
margin: 7px;
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background .notification .notification-content .summary {
|
||||
color: #cad3f5;
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background .notification .notification-content .time {
|
||||
color: #a5adcb;
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background .notification .notification-content .body {
|
||||
color: #cad3f5;
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * {
|
||||
min-height: 3.4em;
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action {
|
||||
border-radius: 7px;
|
||||
color: #cad3f5;
|
||||
background-color: #363a4f;
|
||||
box-shadow: inset 0 0 0 1px #494d64;
|
||||
margin: 7px;
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:hover {
|
||||
box-shadow: inset 0 0 0 1px #494d64;
|
||||
background-color: #363a4f;
|
||||
color: #cad3f5;
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:active {
|
||||
box-shadow: inset 0 0 0 1px #494d64;
|
||||
background-color: #7dc4e4;
|
||||
color: #cad3f5;
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background .close-button {
|
||||
margin: 7px;
|
||||
padding: 2px;
|
||||
border-radius: 6.3px;
|
||||
color: #24273a;
|
||||
background-color: #ed8796;
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background .close-button:hover {
|
||||
background-color: #ee99a0;
|
||||
color: #24273a;
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background .close-button:active {
|
||||
background-color: #ed8796;
|
||||
color: #24273a;
|
||||
}
|
||||
|
||||
.control-center {
|
||||
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #363a4f;
|
||||
border-radius: 12.6px;
|
||||
margin: 18px;
|
||||
background-color: #24273a;
|
||||
color: #cad3f5;
|
||||
padding: 14px;
|
||||
}
|
||||
|
||||
.control-center .widget-title {
|
||||
color: #cad3f5;
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
.control-center .widget-title button {
|
||||
border-radius: 7px;
|
||||
color: #cad3f5;
|
||||
background-color: #363a4f;
|
||||
box-shadow: inset 0 0 0 1px #494d64;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.control-center .widget-title button:hover {
|
||||
box-shadow: inset 0 0 0 1px #494d64;
|
||||
background-color: #5b6078;
|
||||
color: #cad3f5;
|
||||
}
|
||||
|
||||
.control-center .widget-title button:active {
|
||||
box-shadow: inset 0 0 0 1px #494d64;
|
||||
background-color: #7dc4e4;
|
||||
color: #24273a;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background {
|
||||
border-radius: 7px;
|
||||
color: #cad3f5;
|
||||
background-color: #363a4f;
|
||||
box-shadow: inset 0 0 0 1px #494d64;
|
||||
margin-top: 14px;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .notification {
|
||||
padding: 7px;
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .notification.critical {
|
||||
box-shadow: inset 0 0 7px 0 #ed8796;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .notification .notification-content {
|
||||
margin: 7px;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .notification .notification-content .summary {
|
||||
color: #cad3f5;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .notification .notification-content .time {
|
||||
color: #a5adcb;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .notification .notification-content .body {
|
||||
color: #cad3f5;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .notification > *:last-child > * {
|
||||
min-height: 3.4em;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action {
|
||||
border-radius: 7px;
|
||||
color: #cad3f5;
|
||||
background-color: #181926;
|
||||
box-shadow: inset 0 0 0 1px #494d64;
|
||||
margin: 7px;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:hover {
|
||||
box-shadow: inset 0 0 0 1px #494d64;
|
||||
background-color: #363a4f;
|
||||
color: #cad3f5;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:active {
|
||||
box-shadow: inset 0 0 0 1px #494d64;
|
||||
background-color: #7dc4e4;
|
||||
color: #cad3f5;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .close-button {
|
||||
margin: 7px;
|
||||
padding: 2px;
|
||||
border-radius: 6.3px;
|
||||
color: #24273a;
|
||||
background-color: #ee99a0;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .close-button:hover {
|
||||
background-color: #ed8796;
|
||||
color: #24273a;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .close-button:active {
|
||||
background-color: #ed8796;
|
||||
color: #24273a;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background:hover {
|
||||
box-shadow: inset 0 0 0 1px #494d64;
|
||||
background-color: #8087a2;
|
||||
color: #cad3f5;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background:active {
|
||||
box-shadow: inset 0 0 0 1px #494d64;
|
||||
background-color: #7dc4e4;
|
||||
color: #cad3f5;
|
||||
}
|
||||
|
||||
progressbar,
|
||||
progress,
|
||||
trough {
|
||||
border-radius: 12.6px;
|
||||
}
|
||||
|
||||
progressbar {
|
||||
box-shadow: inset 0 0 0 1px #494d64;
|
||||
}
|
||||
|
||||
.notification.critical progress {
|
||||
background-color: #ed8796;
|
||||
}
|
||||
|
||||
.notification.low progress,
|
||||
.notification.normal progress {
|
||||
background-color: #8aadf4;
|
||||
}
|
||||
|
||||
trough {
|
||||
background-color: #363a4f;
|
||||
}
|
||||
|
||||
.control-center trough {
|
||||
background-color: #494d64;
|
||||
}
|
||||
|
||||
.control-center-dnd {
|
||||
margin-top: 5px;
|
||||
border-radius: 8px;
|
||||
background: #363a4f;
|
||||
border: 1px solid #494d64;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.control-center-dnd:checked {
|
||||
background: #363a4f;
|
||||
}
|
||||
|
||||
.control-center-dnd slider {
|
||||
background: #494d64;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.widget-dnd {
|
||||
margin: 0px;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.widget-dnd > switch {
|
||||
font-size: initial;
|
||||
border-radius: 8px;
|
||||
background: #363a4f;
|
||||
border: 1px solid #494d64;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.widget-dnd > switch:checked {
|
||||
background: #363a4f;
|
||||
}
|
||||
|
||||
.widget-dnd > switch slider {
|
||||
background: #494d64;
|
||||
border-radius: 8px;
|
||||
border: 1px solid #6e738d;
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
# This file is written by xdg-user-dirs-update
|
||||
# If you want to change or add directories, just edit the line you're
|
||||
# interested in. All local changes will be retained on the next run.
|
||||
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
|
||||
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
||||
# absolute path. No other format is supported.
|
||||
#
|
||||
XDG_DESKTOP_DIR="$HOME/Desktop"
|
||||
XDG_DOWNLOAD_DIR="$HOME/Data/Downloads"
|
||||
XDG_TEMPLATES_DIR="$HOME/Templates"
|
||||
XDG_PUBLICSHARE_DIR="$HOME/Public"
|
||||
XDG_DOCUMENTS_DIR="$HOME/Data/Documents"
|
||||
XDG_MUSIC_DIR="$HOME/Data/Music"
|
||||
XDG_PICTURES_DIR="$HOME/Data/Pictures"
|
||||
XDG_VIDEOS_DIR="$HOME/Data/Videos"
|
||||
@@ -1,37 +0,0 @@
|
||||
/*
|
||||
*
|
||||
* Catppuccin Frappe palette
|
||||
* Maintainer: rubyowo
|
||||
*
|
||||
*/
|
||||
|
||||
@define-color base #303446;
|
||||
@define-color mantle #292c3c;
|
||||
@define-color crust #232634;
|
||||
|
||||
@define-color text #c6d0f5;
|
||||
@define-color subtext0 #a5adce;
|
||||
@define-color subtext1 #b5bfe2;
|
||||
|
||||
@define-color surface0 #414559;
|
||||
@define-color surface1 #51576d;
|
||||
@define-color surface2 #626880;
|
||||
|
||||
@define-color overlay0 #737994;
|
||||
@define-color overlay1 #838ba7;
|
||||
@define-color overlay2 #949cbb;
|
||||
|
||||
@define-color blue #8caaee;
|
||||
@define-color lavender #babbf1;
|
||||
@define-color sapphire #85c1dc;
|
||||
@define-color sky #99d1db;
|
||||
@define-color teal #81c8be;
|
||||
@define-color green #a6d189;
|
||||
@define-color yellow #e5c890;
|
||||
@define-color peach #ef9f76;
|
||||
@define-color maroon #ea999c;
|
||||
@define-color red #e78284;
|
||||
@define-color mauve #ca9ee6;
|
||||
@define-color pink #f4b8e4;
|
||||
@define-color flamingo #eebebe;
|
||||
@define-color rosewater #f2d5cf;
|
||||
@@ -1,152 +0,0 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"height": 40,
|
||||
|
||||
"modules-left": [
|
||||
"hyprland/workspaces",
|
||||
"hyprland/window",
|
||||
],
|
||||
"modules-center": [
|
||||
"clock",
|
||||
],
|
||||
"modules-right": [
|
||||
"tray",
|
||||
"custom/playerctl",
|
||||
"cpu",
|
||||
"memory",
|
||||
"network",
|
||||
"pulseaudio",
|
||||
"battery",
|
||||
"custom/power",
|
||||
],
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"disable-scroll": true,
|
||||
"all-outputs": true,
|
||||
"on-click": "activate",
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"6": "6",
|
||||
"7": "7",
|
||||
"8": "8",
|
||||
"9": "9",
|
||||
"10": "10"
|
||||
}
|
||||
},
|
||||
"hyprland/window": {
|
||||
"format": "{}"
|
||||
},
|
||||
|
||||
"clock": {
|
||||
"format": "{: %H:%M %p %h %d %Y}",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"on-click": "merkuro-calendar"
|
||||
},
|
||||
|
||||
"tray": {
|
||||
"icon-size": 15,
|
||||
"spacing": 10
|
||||
},
|
||||
"custom/playerctl": {
|
||||
"format": "{icon}",
|
||||
"return-type": "json",
|
||||
"max-length": 64,
|
||||
"exec": "playerctl -a metadata --format '{\"text\": \"{{artist}} - {{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F",
|
||||
"on-click-middle": "playerctl play-pause",
|
||||
"on-click": "playerctl previous",
|
||||
"on-click-right": "playerctl next",
|
||||
"format-icons": {
|
||||
"Playing": "<span foreground='#E5B9C6'> </span>",
|
||||
"Paused": "<span foreground='#928374'> </span>"
|
||||
},
|
||||
},
|
||||
"cpu": {
|
||||
"interval": 10,
|
||||
"format": "{usage}% ",
|
||||
"format-alt": "{avg_frequency} GHz ",
|
||||
"on-double-click": "gnome-system-monitor"
|
||||
},
|
||||
"memory": {
|
||||
"interval": 30,
|
||||
"format": "{used:0.1f}G ",
|
||||
"format-alt": "{used:0.1f}G/{total:0.1f}G ",
|
||||
"tooltip-format": "{}%",
|
||||
"on-double-click": "gnome-system-monitor"
|
||||
},
|
||||
"network": {
|
||||
"interval": 10,
|
||||
"format-wifi": "{essid} ",
|
||||
"format-ethernet": "{bandwidthUpBytes}⇡ {bandwidthDownBytes}⇣{essid} ",
|
||||
"format-linked": "{ifname} (No IP) ",
|
||||
"format-disconnected": " Disconnected",
|
||||
"tooltip-format-wifi": "Signal Strenght: {signalStrength}% | Down Speed: {bandwidthDownBits}, Up Speed: {bandwidthUpBits}",
|
||||
},
|
||||
"pulseaudio": {
|
||||
"format": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth": "{volume}%{icon} {format_source}",
|
||||
"format-bluetooth-muted": " {icon} {format_source}",
|
||||
"format-muted": "\udb81\udf5f {format_source}",
|
||||
"format-source": "{volume}% ",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": [
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"on-click-right": "pactl set-source-mute @DEFAULT_SOURCE@ toggle",
|
||||
"on-click-middle": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
|
||||
"on-double-click": "pavucontrol"
|
||||
},
|
||||
"custom/power": {
|
||||
"format": "",
|
||||
"on-click": "wlogout"
|
||||
},
|
||||
|
||||
//Laptop
|
||||
"backlight":{
|
||||
"device": "intel_backlight",
|
||||
"format": "{icon} {percent}%",
|
||||
"format-icons": ["","",""],
|
||||
"on-scroll-up": "brightnessctl set 1%+",
|
||||
"on-scroll-down": "brightnessctl set 1%-",
|
||||
"min-length": 6
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
"good": 95,
|
||||
"warning": 30,
|
||||
"critical": 20
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-charging": " {capacity}%",
|
||||
"format-plugged": " {capacity}%",
|
||||
"format-alt": "{time} {icon}",
|
||||
"format-icons": [" ", " ", " ", " ", " ", " ", " ", " ", " ", " "]
|
||||
},
|
||||
"custom/wl-gammarelay-temperature": {
|
||||
"format": " {}",
|
||||
"exec": "wl-gammarelay-rs watch {t}",
|
||||
"on-scroll-up": "~/.config/hypr/scripts/brightness.sh temperature-up 100",
|
||||
"on-scroll-down": "~/.config/hypr/scripts/brightness.sh temperature-down 100"
|
||||
},
|
||||
"custom/wl-gammarelay-brightness": {
|
||||
"format": " {}",
|
||||
"exec": "wl-gammarelay-rs watch {bp}",
|
||||
"on-scroll-up": "~/.config/hypr/scripts/brightness.sh brightness-up 0.05",
|
||||
"on-scroll-down": "~/.config/hypr/scripts/brightness.sh brightness-down 0.05"
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
@import "colors.css";
|
||||
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
font-family: monospace;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
min-height: 0px;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#waybar {
|
||||
background: @surface0;
|
||||
}
|
||||
|
||||
#clock, #battery, #pulseaudio, #network, #tray, #cpu, #memory, #backlight, #workspaces, #window, #custom-playerctl, #custom-language, #custom-spotify, #custom-updates, #custom-caffeine, #custom-wl-gammarelay-brightness, #custom-wl-gammarelay-temperature, #custom-menu, #custom-power {
|
||||
background: @surface1;
|
||||
margin: 7px 0px 7px 5px;
|
||||
padding: 0px 10px;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
font-weight: normal;
|
||||
font-size: 18px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 2px;
|
||||
margin: 3px;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
background: @overlay0;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background: @overlay2;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: @surface0;
|
||||
border: solid 2px @surface1;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 5.6 KiB |
@@ -1,36 +0,0 @@
|
||||
{
|
||||
"label" : "lock",
|
||||
"action" : "~/.config/hypr/scripts/lock.sh",
|
||||
"text" : "Lock",
|
||||
"keybind" : "l"
|
||||
}
|
||||
{
|
||||
"label" : "reboot",
|
||||
"action" : "~/.config/hypr/scripts/close_apps.sh && systemctl reboot",
|
||||
"text" : "Reboot",
|
||||
"keybind" : "r"
|
||||
}
|
||||
{
|
||||
"label" : "shutdown",
|
||||
"action" : "~/.config/hypr/scripts/close_apps.sh && systemctl poweroff",
|
||||
"text" : "Shutdown",
|
||||
"keybind" : "s"
|
||||
}
|
||||
{
|
||||
"label" : "logout",
|
||||
"action" : "~/.config/hypr/scripts/close_apps.sh && hyprctl dispatch exit ",
|
||||
"text" : "Logout",
|
||||
"keybind" : "e"
|
||||
}
|
||||
{
|
||||
"label" : "suspend",
|
||||
"action" : "systemctl suspend",
|
||||
"text" : "Suspend",
|
||||
"keybind" : "u"
|
||||
}
|
||||
{
|
||||
"label" : "suspend",
|
||||
"action" : "systemctl hibernate",
|
||||
"text" : "Hibernate",
|
||||
"keybind" : "h"
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
window {
|
||||
font-family: monospace;
|
||||
font-size: 14pt;
|
||||
color: #cdd6f4; /* text */
|
||||
background-color: rgba(30, 30, 46, 0.5);
|
||||
}
|
||||
|
||||
button {
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: 25%;
|
||||
border: none;
|
||||
background-color: rgba(30, 30, 46, 0);
|
||||
margin: 5px;
|
||||
transition: box-shadow 0.2s ease-in-out, background-color 0.2s ease-in-out;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
background-color: rgba(49, 50, 68, 0.1);
|
||||
}
|
||||
|
||||
button:focus {
|
||||
background-color: #cba6f7;
|
||||
color: #1e1e2e;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#lock {
|
||||
background-image: image(url("./imgs/lock.png"));
|
||||
}
|
||||
#lock:focus {
|
||||
background-image: image(url("./imgs/lock-hover.png"));
|
||||
}
|
||||
|
||||
#logout {
|
||||
background-image: image(url("./imgs/logout.png"));
|
||||
}
|
||||
#logout:focus {
|
||||
background-image: image(url("./imgs/logout-hover.png"));
|
||||
}
|
||||
|
||||
#suspend {
|
||||
background-image: image(url("./imgs/sleep.png"));
|
||||
}
|
||||
#suspend:focus {
|
||||
background-image: image(url("./imgs/sleep-hover.png"));
|
||||
}
|
||||
|
||||
#shutdown {
|
||||
background-image: image(url("./imgs/power.png"));
|
||||
}
|
||||
#shutdown:focus {
|
||||
background-image: image(url("./imgs/power-hover.png"));
|
||||
}
|
||||
|
||||
#reboot {
|
||||
background-image: image(url("./imgs/restart.png"));
|
||||
}
|
||||
#reboot:focus {
|
||||
background-image: image(url("./imgs/restart-hover.png"));
|
||||
}
|
||||
4
.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
roles/z
|
||||
roles/test
|
||||
error.log
|
||||
callback_plugins/__pycache__
|
||||
48
README.md
@@ -1,6 +1,46 @@
|
||||
# My Dotfiles
|
||||
- Simple install script
|
||||
- Arch
|
||||
# Installation
|
||||
Clone the repo and execute the `install.sh` script.<br/>
|
||||
Or use this command:
|
||||
```bash
|
||||
bash -c "$(curl -fsSL https://gitea.keuledrive.de/Keule2/Dotfiles/raw/branch/main/install.sh)"
|
||||
```
|
||||
Or this command to use arguments:
|
||||
```bash
|
||||
curl -fsSL "https://gitea.keuledrive.de/Keule2/Dotfiles/raw/branch/main/install.sh" | bash -s -- -e "system=server"
|
||||
```
|
||||
|
||||
# Update
|
||||
Just execute the `install.sh` script again.
|
||||
|
||||
# Usage
|
||||
All additional parameters are passed to the ansible playbook. This means that you can skip tags or only execute desired tags.<br/>
|
||||
Example: Skip alacritty
|
||||
```bash
|
||||
./install.sh --skip-tags alacritty
|
||||
```
|
||||
Example: Only execute alacritty and fish
|
||||
```bash
|
||||
./install.sh -t alacritty,fish
|
||||
```
|
||||
|
||||
# Settings
|
||||
There are two ways to set settings/values.
|
||||
1. Create/Edit: `$HOME/.config/dotfiles/values.yml`
|
||||
2. Edit: `$HOME/.dotfiles/group_vars/all`
|
||||
|
||||
## Ansible Vault
|
||||
Vault password file: `$HOME/.config/dotfiles/vault-password.txt`
|
||||
|
||||
## Settings
|
||||
### System
|
||||
|Value |Desc |Default|
|
||||
|------------|-------------------------------------------------------|-------|
|
||||
|server |Minimal installation (CMD tools) | |
|
||||
|desktop |Install WM and desktop applications |x |
|
||||
|desktop_full|Install additional packages for the desktop (e.g. wine)| |
|
||||
<br/>
|
||||
|
||||
# TODO
|
||||
...
|
||||
- AGS: Bar, AppLauncher, PowerMenu, Notifications, Calculator, Emoji-Picker, ...
|
||||
- Ubuntu/Debian Support
|
||||
- ...
|
||||
|
||||
4
ansible.cfg
Normal file
@@ -0,0 +1,4 @@
|
||||
[defaults]
|
||||
stdout_callback = beautiful_output
|
||||
# Use the stdout_callback when running ad-hoc commands.
|
||||
bin_ansible_callbacks = True
|
||||
@@ -1,27 +0,0 @@
|
||||
libreoffice-fresh
|
||||
nextcloud-client
|
||||
youtube-music
|
||||
waypaper-git
|
||||
pavucontrol
|
||||
hyprpicker
|
||||
brave-bin
|
||||
vscodium
|
||||
obsidian
|
||||
discord
|
||||
yt-dlp
|
||||
mpv
|
||||
|
||||
#AMD Stats
|
||||
#amdgpu_top
|
||||
|
||||
#Explorer
|
||||
#qt5-imageformats
|
||||
#thunar
|
||||
#dolphin
|
||||
#ark
|
||||
|
||||
#Character map
|
||||
#gucharmap
|
||||
|
||||
#Calculator
|
||||
#galculator
|
||||
1466
callback_plugins/beautiful_output.py
Normal file
84
default.pkgs
@@ -1,84 +0,0 @@
|
||||
# Core
|
||||
hyprland
|
||||
sddm
|
||||
hyprshade
|
||||
swaync
|
||||
rofi-lbonn-wayland
|
||||
rofi-calc
|
||||
rofimoji
|
||||
eww-tray-wayland-git
|
||||
swww
|
||||
swaylock-effects
|
||||
swayidle
|
||||
wlogout
|
||||
grimblast-git
|
||||
cliphist
|
||||
wl-clipboard
|
||||
polkit-kde-agent
|
||||
xdg-desktop-portal-hyprland
|
||||
gnome-keyring
|
||||
cifs-utils
|
||||
ntfs-3g
|
||||
openssh
|
||||
|
||||
# Pipewire
|
||||
pipewire
|
||||
wireplumber
|
||||
pipewire-alsa
|
||||
pipewire-audio
|
||||
pipewire-jack
|
||||
pipewire-pulse
|
||||
gst-plugin-pipewire
|
||||
|
||||
# Network
|
||||
networkmanager
|
||||
networkmanager-openvpn
|
||||
network-manager-applet
|
||||
|
||||
# Bluetooth
|
||||
bluez
|
||||
bluez-utils
|
||||
blueman
|
||||
|
||||
# Printing
|
||||
cups
|
||||
cups-pdf
|
||||
|
||||
# CLI Tools
|
||||
inotify-tools
|
||||
brightnessctl
|
||||
playerctl
|
||||
upower
|
||||
socat
|
||||
unzip
|
||||
less
|
||||
curl
|
||||
wget
|
||||
awk
|
||||
zip
|
||||
tar
|
||||
jq
|
||||
|
||||
# CLI nice too have
|
||||
#wlr-randr
|
||||
libnotify
|
||||
mediainfo
|
||||
exa
|
||||
bat
|
||||
|
||||
# Programming languages
|
||||
jdk-openjdk
|
||||
rustup
|
||||
npm
|
||||
|
||||
# Terminal
|
||||
kitty
|
||||
fish
|
||||
fish-done
|
||||
imagemagick
|
||||
fastfetch
|
||||
starship
|
||||
neovim
|
||||
ranger
|
||||
nvtop
|
||||
btop
|
||||
@@ -1,10 +0,0 @@
|
||||
LANG=en_US.UTF-8
|
||||
LC_ADDRESS=de_DE.UTF-8
|
||||
LC_IDENTIFICATION=de_DE.UTF-8
|
||||
LC_MEASUREMENT=de_DE.UTF-8
|
||||
LC_MONETARY=de_DE.UTF-8
|
||||
LC_NAME=de_DE.UTF-8
|
||||
LC_NUMERIC=de_DE.UTF-8
|
||||
LC_PAPER=de_DE.UTF-8
|
||||
LC_TELEPHONE=de_DE.UTF-8
|
||||
LC_TIME=de_DE.UTF-8
|
||||
58
games.pkgs
@@ -1,58 +0,0 @@
|
||||
steam
|
||||
lutris
|
||||
|
||||
# Dependecies AMD
|
||||
lib32-mesa
|
||||
vulkan-radeon
|
||||
lib32-vulkan-radeon
|
||||
vulkan-icd-loader
|
||||
lib32-vulkan-icd-loader
|
||||
|
||||
# Wine
|
||||
wine-staging
|
||||
giflib
|
||||
lib32-giflib
|
||||
libpng
|
||||
lib32-libpng
|
||||
libldap
|
||||
lib32-libldap
|
||||
gnutls
|
||||
lib32-gnutls
|
||||
mpg123
|
||||
lib32-mpg123
|
||||
openal
|
||||
lib32-openal
|
||||
v4l-utils
|
||||
lib32-v4l-utils
|
||||
libpulse
|
||||
lib32-libpulse
|
||||
libgpg-error
|
||||
lib32-libgpg-error
|
||||
alsa-plugins
|
||||
lib32-alsa-plugins
|
||||
alsa-lib
|
||||
lib32-alsa-lib
|
||||
libjpeg-turbo
|
||||
lib32-libjpeg-turbo
|
||||
sqlite
|
||||
lib32-sqlite
|
||||
libxcomposite
|
||||
lib32-libxcomposite
|
||||
libxinerama
|
||||
lib32-libgcrypt
|
||||
libgcrypt
|
||||
lib32-libxinerama
|
||||
ncurses
|
||||
lib32-ncurses
|
||||
ocl-icd
|
||||
lib32-ocl-icd
|
||||
libxslt
|
||||
lib32-libxslt
|
||||
libva
|
||||
lib32-libva
|
||||
gtk3
|
||||
lib32-gtk3
|
||||
gst-plugins-base-libs
|
||||
lib32-gst-plugins-base-libs
|
||||
vulkan-icd-loader
|
||||
lib32-vulkan-icd-loader
|
||||
30
group_vars/all
Normal file
@@ -0,0 +1,30 @@
|
||||
default_roles:
|
||||
- bash
|
||||
- btop
|
||||
- fish
|
||||
- nvim
|
||||
- starship
|
||||
- yazi
|
||||
|
||||
desktop_roles:
|
||||
- ags
|
||||
- alacritty
|
||||
- discord
|
||||
- hypr
|
||||
- kvantum
|
||||
- minegrub
|
||||
- nwg-look
|
||||
- qt5ct
|
||||
- sddm
|
||||
- wakatime
|
||||
|
||||
system: desktop
|
||||
|
||||
wakapi_key: !vault |
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
39346164353734613634356635383464636463373437333463616530346162303666343962383364
|
||||
3862316162646639353665336530613965663437316263310a646464663038346539393039666537
|
||||
32636139616239643934353135656662376262356433616635343830646164363435353739343966
|
||||
6233303036393538370a656564643033383334323631663631336137346161326464373364346230
|
||||
64323564663534393766356166393363376237633565316363363138373033353030373139366365
|
||||
6435323438633233363166626330633164346534363335666433
|
||||
60
home/.bashrc
@@ -1,60 +0,0 @@
|
||||
# If not running interactively, don't do anything
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
# Load starship prompt if starship is installed
|
||||
if [ -x /usr/bin/starship ]; then
|
||||
__main() {
|
||||
local major="${BASH_VERSINFO[0]}"
|
||||
local minor="${BASH_VERSINFO[1]}"
|
||||
|
||||
if ((major > 4)) || { ((major == 4)) && ((minor >= 1)); }; then
|
||||
source <("/usr/bin/starship" init bash --print-full-init)
|
||||
else
|
||||
source /dev/stdin <<<"$("/usr/bin/starship" init bash --print-full-init)"
|
||||
fi
|
||||
}
|
||||
__main
|
||||
unset -f __main
|
||||
fi
|
||||
|
||||
## Aliases
|
||||
# Replace ls with exa
|
||||
alias ls='exa -al --color=always --group-directories-first' # preferred listing
|
||||
alias la='exa -a --color=always --group-directories-first' # all files and dirs
|
||||
alias ll='exa -l --color=always --group-directories-first' # long format
|
||||
alias lt='exa -aT --color=always --group-directories-first' # tree listing
|
||||
alias l.='exa -ald --color=always --group-directories-first .*' # show only dotfiles
|
||||
|
||||
# Replace cat with bat
|
||||
alias cat='bat --style header --style snip --style changes --style header'
|
||||
|
||||
# Replace yay with paru
|
||||
[ ! -x /usr/bin/yay ] && [ -x /usr/bin/paru ] && alias yay='paru'
|
||||
|
||||
# Aliases
|
||||
alias cls='clear'
|
||||
alias dir='dir --color=auto'
|
||||
alias egrep='grep -E --color=auto'
|
||||
alias fgrep='grep -F --color=auto'
|
||||
alias igrep='grep -i --color=auto'
|
||||
alias fixpacman="sudo rm /var/lib/pacman/db.lck"
|
||||
alias grep='grep --color=auto'
|
||||
alias grubup="sudo update-grub"
|
||||
alias hw='hwinfo --short'
|
||||
alias psmem10='ps auxf | sort -nr -k 4 | head -10'
|
||||
alias psmem='ps auxf | sort -nr -k 4'
|
||||
alias rmpkg="sudo pacman -Rdd"
|
||||
alias tarnow='tar -acf '
|
||||
alias untar='tar -zxvf '
|
||||
alias upd='/usr/bin/update'
|
||||
alias vdir='vdir --color=auto'
|
||||
alias wget='wget -c '
|
||||
|
||||
# Cleanup orphaned packages
|
||||
alias cleanup='sudo pacman -Rns `pacman -Qtdq`'
|
||||
|
||||
# Get the error messages from journalctl
|
||||
alias jctl="journalctl -p 3 -xb"
|
||||
|
||||
# Recent installed packages
|
||||
alias rip="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -200 | nl"
|
||||
287
install.sh
@@ -1,54 +1,112 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Helpers
|
||||
get_aur_helper() {
|
||||
if is_installed paru; then
|
||||
echo "paru"
|
||||
elif is_installed yay; then
|
||||
echo "yay"
|
||||
fi
|
||||
# Vars
|
||||
DOTFILES_DIR="$HOME/.dotfiles"
|
||||
CONFIG_DIR="$HOME/.config/dotfiles"
|
||||
REPO="https://gitea.keuledrive.de/Keule2/Dotfiles.git"
|
||||
DIST=$(source /etc/os-release && echo $ID)
|
||||
|
||||
# Colors
|
||||
COLOR_RESET='\033[0m'
|
||||
RED='\033[0;31m'
|
||||
LGREEN='\033[01;32m'
|
||||
|
||||
# Helper Functions
|
||||
print_header() {
|
||||
echo -e "${LGREEN}$1${COLOR_RESET}"
|
||||
}
|
||||
|
||||
is_installed() {
|
||||
if pacman -Qi $1 &> /dev/null; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
cmd() {
|
||||
local DOTFILES_LOG="./error.log"
|
||||
|
||||
is_pkg() {
|
||||
if "$1" -Si "$2" &>/dev/null; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
is_aur_pkg() {
|
||||
helper=$(get_aur_helper)
|
||||
if [ -z $helper ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
return $(is_pkg $helper $1)
|
||||
}
|
||||
|
||||
is_arch_pkg() {
|
||||
return $(is_pkg pacman $1)
|
||||
}
|
||||
|
||||
install() {
|
||||
if is_installed "$1"; then
|
||||
if eval "$1" 1> /dev/null 2> $DOTFILES_LOG; then
|
||||
rm "$DOTFILES_LOG"
|
||||
return 0
|
||||
fi
|
||||
|
||||
if is_arch_pkg "$1"; then
|
||||
sudo pacman -S $1
|
||||
elif is_aur_pkg "$1"; then
|
||||
sudo $(get_aur_helper) -S $1
|
||||
else
|
||||
echo "error: unknown package [$1]"
|
||||
echo -e "${RED}"
|
||||
cat $DOTFILES_LOG
|
||||
echo -e "${COLOR_RESET}"
|
||||
rm "$DOTFILES_LOG"
|
||||
exit 1
|
||||
}
|
||||
|
||||
paru_install() {
|
||||
if [ -x "$(command -v paru)" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
# Install Base-Devel
|
||||
if [ -z "$(pacman -Q | grep base-devel)" ]; then
|
||||
print_header "Installing base-devel"
|
||||
cmd "sudo pacman -S base-devel --noconfirm"
|
||||
fi
|
||||
# Install RustUp
|
||||
if ! [ -x "$(command -v rustup)" ]; then
|
||||
print_header "Installing rustup"
|
||||
cmd "sudo pacman -S rustup --noconfirm"
|
||||
cmd "rustup default stable"
|
||||
fi
|
||||
# Instal Paru
|
||||
FOLDER=$(mktemp -d)
|
||||
print_header "Installing paru"
|
||||
cmd "git clone https://aur.archlinux.org/paru.git $FOLDER"
|
||||
cd $FOLDER
|
||||
cmd "makepkg -si --noconfirm"
|
||||
}
|
||||
|
||||
arch_install() {
|
||||
# Install Ansible
|
||||
if ! [ -x "$(command -v ansible)" ]; then
|
||||
print_header "Installing ansible"
|
||||
cmd "sudo pacman -S ansible --noconfirm"
|
||||
fi
|
||||
# Install Git
|
||||
if ! [ -x "$(command -v git)" ]; then
|
||||
print_header "Installing git"
|
||||
cmd "sudo pacman -S git --noconfirm"
|
||||
fi
|
||||
# Installl Paru
|
||||
paru_install
|
||||
# Install PIP
|
||||
if ! [ -x "$(command -v pip)" ]; then
|
||||
print_header "Installing pip"
|
||||
cmd "sudo pacman -S python-pip --noconfirm"
|
||||
fi
|
||||
# Install Watchdog
|
||||
if [ -z "$(pip list | grep watchdog)" ]; then
|
||||
print_header "Installing watchdog"
|
||||
cmd "pip install --break-system-packages watchdog"
|
||||
fi
|
||||
}
|
||||
|
||||
ubuntu_install() {
|
||||
# Install Ansible
|
||||
if ! dpkg -s ansible >/dev/null 2>&1; then
|
||||
print_header "Installing ansible"
|
||||
cmd "sudo apt-get update"
|
||||
cmd "sudo apt-get install -y software-properties-common"
|
||||
cmd "sudo apt-add-repository -y ppa:ansible/ansible"
|
||||
cmd "sudo apt-get update"
|
||||
cmd "sudo apt-get install -y ansible"
|
||||
cmd "sudo apt-get install python3-argcomplete"
|
||||
cmd "sudo activate-global-python-argcomplete3"
|
||||
fi
|
||||
# Install Git
|
||||
if ! dpkg -s git >/dev/null 2>&1; then
|
||||
print_header "Installing git"
|
||||
cmd "sudo apt-get install -y git"
|
||||
fi
|
||||
# TODO pip, watchdog
|
||||
}
|
||||
|
||||
update_galaxy() {
|
||||
local OS=$1
|
||||
|
||||
print_header "Installing/Updating ansible-galaxy"
|
||||
cmd "ansible-galaxy install -r $DOTFILES_DIR/requirements/default.yml"
|
||||
if [ -f "$DOTFILES_DIR/requirements/$OS.yml" ]; then
|
||||
cmd "ansible-galaxy install -r $DOTFILES_DIR/requirements/$OS.yml"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -62,123 +120,44 @@ ________ __ .___ __ .__ .__
|
||||
\/ \/ \/ \/ \/ \/
|
||||
EOF
|
||||
|
||||
# Vars
|
||||
script_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)"
|
||||
clone_dir="$HOME/git/"
|
||||
# Setup
|
||||
case $DIST in
|
||||
arch)
|
||||
arch_install
|
||||
;;
|
||||
ubuntu)
|
||||
ubuntu_install
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported OS"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Change working directory
|
||||
cd $script_dir
|
||||
echo "Working directory: $(pwd)"
|
||||
|
||||
# Dependencies
|
||||
echo ""
|
||||
echo "Installing dependencies..."
|
||||
install git
|
||||
install base-devel
|
||||
echo "Dependencies installed!"
|
||||
|
||||
# AUR helper
|
||||
if ! (is_installed paru || is_installed yay); then
|
||||
echo ""
|
||||
echo "Installing AUR helper..."
|
||||
echo -e "AUR helper:\n1) paru\n2) yay"
|
||||
read -p "Enter your preference (default=1): " helper
|
||||
|
||||
case $helper in
|
||||
1) helper="paru" ;;
|
||||
2) helper="yay" ;;
|
||||
*) helper="paru" ;;
|
||||
esac
|
||||
|
||||
if [ -d $clone_dir ]; then
|
||||
rm -rf $clone_dir$helper
|
||||
else
|
||||
mkdir $clone_dir
|
||||
fi
|
||||
|
||||
echo "Installing $helper..."
|
||||
cd $clone_dir
|
||||
git clone https://aur.archlinux.org/$helper.git
|
||||
cd $helper
|
||||
makepkg -si
|
||||
cd $script_dir
|
||||
echo "AUR helper installed!"
|
||||
# Clone repository
|
||||
if ! [[ -d "$DOTFILES_DIR" ]]; then
|
||||
print_header "Cloning repo"
|
||||
cmd "git clone $REPO $DOTFILES_DIR"
|
||||
else
|
||||
helper=$(get_aur_helper)
|
||||
print_header "Updating repo"
|
||||
cmd "git -C $DOTFILES_DIR pull"
|
||||
fi
|
||||
|
||||
# Install packages
|
||||
echo ""
|
||||
echo "Installing packages..."
|
||||
# Change Working Dir
|
||||
cd "$DOTFILES_DIR"
|
||||
|
||||
for pkg_file in *.pkgs; do
|
||||
[ -f "$pkg_file" ] || continue
|
||||
echo "Found package file: $pkg_file"
|
||||
read -p "Do you want to install the packages from this file(Y/n)?" inst
|
||||
# Update Galaxy
|
||||
update_galaxy $DIST
|
||||
|
||||
if [ "$inst" == "n" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
while IFS= read -r pkg; do
|
||||
if [[ $pkg = \#* ]] || [ -z "$pkg" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if is_installed $pkg; then
|
||||
echo "info: package already installed, ignoring [$pkg]"
|
||||
elif is_arch_pkg $pkg; then
|
||||
arch_pkgs="${arch_pkgs} $pkg"
|
||||
elif is_aur_pkg $pkg; then
|
||||
aur_pkgs="${aur_pkgs} $pkg"
|
||||
# Run playbook
|
||||
if [[ -f "$CONFIG_DIR/vault-password.txt" ]]; then
|
||||
if [[ -f "$CONFIG_DIR/values.yml" ]]; then
|
||||
ansible-playbook --diff -v --ask-become-pass --extra-vars "@$CONFIG_DIR/values.yml" --vault-password-file "$CONFIG_DIR/vault-password.txt" "$DOTFILES_DIR/main.yml" "$@"
|
||||
else
|
||||
echo "error: unknown package [$pkg]"
|
||||
ansible-playbook --diff -v --ask-become-pass --vault-password-file "$CONFIG_DIR/vault-password.txt" "$DOTFILES_DIR/main.yml" "$@"
|
||||
fi
|
||||
done < $pkg_file
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "Installing arch packages..."
|
||||
if [ ! -z "$arch_pkgs" ]; then
|
||||
sudo pacman -Sy $arch_pkgs
|
||||
elif [[ -f "$CONFIG_DIR/values.yml" ]]; then
|
||||
ansible-playbook --diff -v --ask-become-pass --extra-vars "@$CONFIG_DIR/values.yml" "$DOTFILES_DIR/main.yml" "$@"
|
||||
else
|
||||
ansible-playbook --diff -v --ask-become-pass "$DOTFILES_DIR/main.yml" "$@"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Installing AUR packages..."
|
||||
if [ ! -z "$aur_pkgs" ]; then
|
||||
$helper -Sy $aur_pkgs
|
||||
fi
|
||||
|
||||
# Install minegrub
|
||||
read -p "Install grub theme 'minegrub'(Y/n)?" inst
|
||||
|
||||
if [ "$inst" != "n" ]; then
|
||||
git clone https://github.com/Lxtharia/minegrub-theme.git
|
||||
cd ./minegrub-theme
|
||||
sudo cp -ruv ./minegrub /boot/grub/themes/
|
||||
sed -i '/^\(#\)\?GRUB_THEME/ s/.*/GRUB_THEME=XXX/' /etc/default/grub
|
||||
sudo grub-mkconfig -o /boot/grub/grub.cfg
|
||||
cd ..
|
||||
fi
|
||||
|
||||
# TODO mic-indicator, nerd font
|
||||
echo "Packages installed!"
|
||||
|
||||
# Apply default configs
|
||||
if [ "$1" != "nc" ]; then
|
||||
echo ""
|
||||
echo "Copying configs..."
|
||||
cp -r -f .config/. ~/.config/
|
||||
cp -r -f home/. ~/
|
||||
sudo cp -r -f etc/. /etc/
|
||||
echo "Configs copied!"
|
||||
fi
|
||||
|
||||
#TODO Set theme
|
||||
|
||||
#TODO Enable services
|
||||
# cups (is_isnstalled $pkg -> ask? -> enable)
|
||||
# bluetooth
|
||||
# sddm
|
||||
|
||||
echo "Finished!"
|
||||
|
||||
52
main.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
- name: Dotfiles
|
||||
hosts: localhost
|
||||
connection: local
|
||||
tasks:
|
||||
- name: Get username
|
||||
command: whoami
|
||||
register: whoami
|
||||
tags:
|
||||
- always
|
||||
|
||||
- name: Set username
|
||||
set_fact:
|
||||
username: "{{ whoami.stdout }}"
|
||||
tags:
|
||||
- always
|
||||
|
||||
- name: Set default roles
|
||||
set_fact:
|
||||
roles: "{{ ansible_run_tags != ['all'] and ansible_run_tags or default_roles | difference(ansible_skip_tags | default([])) }}"
|
||||
tags:
|
||||
- always
|
||||
|
||||
- name: Set desktop roles
|
||||
set_fact:
|
||||
roles: "{{ (desktop_roles + roles) | difference(ansible_skip_tags | default([])) }}"
|
||||
tags:
|
||||
- always
|
||||
when: system != 'server' and desktop_roles is defined and ansible_run_tags == ['all']
|
||||
|
||||
- name: Prepend system role
|
||||
set_fact:
|
||||
roles: "{{ ['system'] | difference(roles) + roles }}"
|
||||
tags:
|
||||
- always
|
||||
|
||||
- name: Display roles
|
||||
debug: "var=roles"
|
||||
tags:
|
||||
- always
|
||||
|
||||
- name: Run roles
|
||||
include_role:
|
||||
apply:
|
||||
tags:
|
||||
- "{{ roles_item }}"
|
||||
name: "{{ roles_item }}"
|
||||
loop_control:
|
||||
loop_var: roles_item
|
||||
with_items: "{{ roles }}"
|
||||
tags:
|
||||
- always
|
||||
@@ -1 +0,0 @@
|
||||
maven
|
||||
2
requirements/arch.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
collections:
|
||||
- name: kewlfft.aur
|
||||
2
requirements/default.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
collections:
|
||||
- name: community.general
|
||||
19
roles/alacritty/files/alacritty.toml
Normal file
@@ -0,0 +1,19 @@
|
||||
import = [
|
||||
# Theme
|
||||
"~/.config/alacritty/catppuccin-macchiato.toml"
|
||||
]
|
||||
|
||||
[env]
|
||||
TERM = "xterm-256color"
|
||||
|
||||
[window]
|
||||
opacity = 0.7
|
||||
decorations = "None"
|
||||
padding = { x = 0, y = 0 }
|
||||
|
||||
[font]
|
||||
normal = {family = "CaskaydiaCove Nerd Font", style = "Mono"}
|
||||
|
||||
[cursor]
|
||||
style = {shape = "Beam", blinking = "On"}
|
||||
vi_mode_style = {shape = "Block", blinking = "On"}
|
||||
97
roles/alacritty/files/catppuccin-macchiato.toml
Normal file
@@ -0,0 +1,97 @@
|
||||
# MIT License
|
||||
#
|
||||
# Copyright (c) 2021 Catppuccin
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in all
|
||||
# copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
[colors.primary]
|
||||
background = "#24273A"
|
||||
foreground = "#CAD3F5"
|
||||
dim_foreground = "#CAD3F5"
|
||||
bright_foreground = "#CAD3F5"
|
||||
|
||||
[colors.cursor]
|
||||
text = "#24273A"
|
||||
cursor = "#F4DBD6"
|
||||
|
||||
[colors.vi_mode_cursor]
|
||||
text = "#24273A"
|
||||
cursor = "#B7BDF8"
|
||||
|
||||
[colors.search.matches]
|
||||
foreground = "#24273A"
|
||||
background = "#A5ADCB"
|
||||
|
||||
[colors.search.focused_match]
|
||||
foreground = "#24273A"
|
||||
background = "#A6DA95"
|
||||
|
||||
[colors.footer_bar]
|
||||
foreground = "#24273A"
|
||||
background = "#A5ADCB"
|
||||
|
||||
[colors.hints.start]
|
||||
foreground = "#24273A"
|
||||
background = "#EED49F"
|
||||
|
||||
[colors.hints.end]
|
||||
foreground = "#24273A"
|
||||
background = "#A5ADCB"
|
||||
|
||||
[colors.selection]
|
||||
text = "#24273A"
|
||||
background = "#F4DBD6"
|
||||
|
||||
[colors.normal]
|
||||
black = "#494D64"
|
||||
red = "#ED8796"
|
||||
green = "#A6DA95"
|
||||
yellow = "#EED49F"
|
||||
blue = "#8AADF4"
|
||||
magenta = "#F5BDE6"
|
||||
cyan = "#8BD5CA"
|
||||
white = "#B8C0E0"
|
||||
|
||||
[colors.bright]
|
||||
black = "#5B6078"
|
||||
red = "#ED8796"
|
||||
green = "#A6DA95"
|
||||
yellow = "#EED49F"
|
||||
blue = "#8AADF4"
|
||||
magenta = "#F5BDE6"
|
||||
cyan = "#8BD5CA"
|
||||
white = "#A5ADCB"
|
||||
|
||||
[colors.dim]
|
||||
black = "#494D64"
|
||||
red = "#ED8796"
|
||||
green = "#A6DA95"
|
||||
yellow = "#EED49F"
|
||||
blue = "#8AADF4"
|
||||
magenta = "#F5BDE6"
|
||||
cyan = "#8BD5CA"
|
||||
white = "#B8C0E0"
|
||||
|
||||
[[colors.indexed_colors]]
|
||||
index = 16
|
||||
color = "#F5A97F"
|
||||
|
||||
[[colors.indexed_colors]]
|
||||
index = 17
|
||||
color = "#F4DBD6"
|
||||
22
roles/alacritty/tasks/main.yml
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
- name: "[Alacritty] Install"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
- alacritty
|
||||
- ueberzugpp
|
||||
state: present
|
||||
|
||||
- name: "[Alacritty] Create config folder"
|
||||
ansible.builtin.file:
|
||||
mode: "0755"
|
||||
path: "{{ ansible_user_dir }}/.config/alacritty"
|
||||
state: directory
|
||||
|
||||
- name: "[Alacritty] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/.config/alacritty"
|
||||
|
||||
- name: "[Alacritty] Set default"
|
||||
shell: gsettings set org.cinnamon.desktop.default-applications.terminal exec alacritty && gsettings set org.gnome.desktop.default-applications.terminal exec alacritty
|
||||
ignore_errors: true
|
||||
67
roles/bash/files/.bashrc
Normal file
@@ -0,0 +1,67 @@
|
||||
# If not running interactively, don't do anything
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
# Env vars
|
||||
export EDITOR=nvim
|
||||
export VISUAL=nvim
|
||||
|
||||
# Load starship prompt if starship is installed
|
||||
if [ -f /usr/bin/starship ]; then
|
||||
eval "$(starship init bash)"
|
||||
fi
|
||||
|
||||
## Functions
|
||||
# Yazi
|
||||
function ya() {
|
||||
local tmp="$(mktemp -t "yazi-cwd.XXXXX")"
|
||||
yazi "$@" --cwd-file="$tmp"
|
||||
if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
|
||||
cd -- "$cwd"
|
||||
fi
|
||||
rm -f -- "$tmp"
|
||||
}
|
||||
|
||||
## Aliases
|
||||
# Replace ls with eza
|
||||
alias ls='eza -al --color=always --group-directories-first' # preferred listing
|
||||
alias la='eza -a --color=always --group-directories-first' # all files and dirs
|
||||
alias ll='eza -l --color=always --group-directories-first' # long format
|
||||
alias lt='eza -aT --color=always --group-directories-first' # tree listing
|
||||
alias l.='eza -ald --color=always --group-directories-first .*' # show only dotfiles
|
||||
|
||||
# Replace cat with bat
|
||||
if [ -f /usr/bin/bat ]; then
|
||||
alias cat='bat --style header --style snip --style changes --style header'
|
||||
fi
|
||||
|
||||
# Replace yay with paru
|
||||
if [ -f /usr/bin/paru ]; then
|
||||
alias yay='paru'
|
||||
fi
|
||||
|
||||
# Aliases
|
||||
alias :q='exit'
|
||||
alias cls='clear'
|
||||
alias dir='dir --color=auto'
|
||||
alias grepe='grep -E --color=auto'
|
||||
alias grepf='grep -F --color=auto'
|
||||
alias grepi='grep -i --color=auto'
|
||||
alias fixpacman="sudo rm /var/lib/pacman/db.lck"
|
||||
alias grep='grep --color=auto'
|
||||
alias grubup="sudo update-grub"
|
||||
alias hw='hwinfo --short'
|
||||
alias psmem10='ps auxf | sort -nr -k 4 | head -10'
|
||||
alias psmem='ps auxf | sort -nr -k 4'
|
||||
alias rmpkg="sudo pacman -Rdd"
|
||||
alias tarnow='tar -acf '
|
||||
alias untar='tar -zxvf '
|
||||
alias wget='wget -c '
|
||||
|
||||
# Cleanup orphaned packages
|
||||
alias cleanup='sudo pacman -Rns `pacman -Qtdq`'
|
||||
|
||||
# Get the error messages from journalctl
|
||||
alias jctl="journalctl -p 3 -xb"
|
||||
|
||||
# Recent installed packages
|
||||
alias rip="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -200 | nl"
|
||||
12
roles/bash/tasks/main.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
- name: "[Bash] Install"
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- bash
|
||||
state: latest
|
||||
become: yes
|
||||
|
||||
- name: "[Bash] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/"
|
||||
248
roles/btop/files/btop.conf
Normal file
@@ -0,0 +1,248 @@
|
||||
#? Config file for btop v. 1.3.2
|
||||
|
||||
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
|
||||
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
|
||||
color_theme = "Default"
|
||||
|
||||
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
||||
theme_background = True
|
||||
|
||||
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
|
||||
truecolor = True
|
||||
|
||||
#* Set to true to force tty mode regardless if a real tty has been detected or not.
|
||||
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
|
||||
force_tty = False
|
||||
|
||||
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
|
||||
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
|
||||
#* Use whitespace " " as separator between different presets.
|
||||
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
|
||||
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
|
||||
|
||||
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
|
||||
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
|
||||
vim_keys = True
|
||||
|
||||
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
||||
rounded_corners = True
|
||||
|
||||
#* Default symbols to use for graph creation, "braille", "block" or "tty".
|
||||
#* "braille" offers the highest resolution but might not be included in all fonts.
|
||||
#* "block" has half the resolution of braille but uses more common characters.
|
||||
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
|
||||
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
|
||||
graph_symbol = "braille"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_cpu = "default"
|
||||
|
||||
# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_gpu = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_mem = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_net = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_proc = "default"
|
||||
|
||||
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
|
||||
shown_boxes = "cpu mem net proc"
|
||||
|
||||
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
|
||||
update_ms = 2000
|
||||
|
||||
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
|
||||
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
|
||||
proc_sorting = "memory"
|
||||
|
||||
#* Reverse sorting order, True or False.
|
||||
proc_reversed = False
|
||||
|
||||
#* Show processes as a tree.
|
||||
proc_tree = False
|
||||
|
||||
#* Use the cpu graph colors in the process list.
|
||||
proc_colors = True
|
||||
|
||||
#* Use a darkening gradient in the process list.
|
||||
proc_gradient = True
|
||||
|
||||
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
||||
proc_per_core = True
|
||||
|
||||
#* Show process memory as bytes instead of percent.
|
||||
proc_mem_bytes = True
|
||||
|
||||
#* Show cpu graph for each process.
|
||||
proc_cpu_graphs = True
|
||||
|
||||
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
|
||||
proc_info_smaps = False
|
||||
|
||||
#* Show proc box on left side of screen instead of right.
|
||||
proc_left = False
|
||||
|
||||
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
||||
proc_filter_kernel = False
|
||||
|
||||
#* In tree-view, always accumulate child process resources in the parent process.
|
||||
proc_aggregate = False
|
||||
|
||||
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
|
||||
#* Select from a list of detected attributes from the options menu.
|
||||
cpu_graph_upper = "total"
|
||||
|
||||
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
|
||||
#* Select from a list of detected attributes from the options menu.
|
||||
cpu_graph_lower = "total"
|
||||
|
||||
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
|
||||
show_gpu_info = "Auto"
|
||||
|
||||
#* Toggles if the lower CPU graph should be inverted.
|
||||
cpu_invert_lower = True
|
||||
|
||||
#* Set to True to completely disable the lower CPU graph.
|
||||
cpu_single_graph = False
|
||||
|
||||
#* Show cpu box at bottom of screen instead of top.
|
||||
cpu_bottom = False
|
||||
|
||||
#* Shows the system uptime in the CPU box.
|
||||
show_uptime = True
|
||||
|
||||
#* Show cpu temperature.
|
||||
check_temp = True
|
||||
|
||||
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
|
||||
cpu_sensor = "Auto"
|
||||
|
||||
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
|
||||
show_coretemp = True
|
||||
|
||||
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
|
||||
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
|
||||
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
|
||||
#* Example: "4:0 5:1 6:3"
|
||||
cpu_core_map = ""
|
||||
|
||||
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
|
||||
temp_scale = "celsius"
|
||||
|
||||
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
|
||||
base_10_sizes = False
|
||||
|
||||
#* Show CPU frequency.
|
||||
show_cpu_freq = True
|
||||
|
||||
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
|
||||
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
|
||||
clock_format = "%X"
|
||||
|
||||
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
|
||||
background_update = True
|
||||
|
||||
#* Custom cpu model name, empty string to disable.
|
||||
custom_cpu_name = ""
|
||||
|
||||
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
|
||||
#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
|
||||
disks_filter = ""
|
||||
|
||||
#* Show graphs instead of meters for memory values.
|
||||
mem_graphs = True
|
||||
|
||||
#* Show mem box below net box instead of above.
|
||||
mem_below_net = False
|
||||
|
||||
#* Count ZFS ARC in cached and available memory.
|
||||
zfs_arc_cached = True
|
||||
|
||||
#* If swap memory should be shown in memory box.
|
||||
show_swap = True
|
||||
|
||||
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
||||
swap_disk = True
|
||||
|
||||
#* If mem box should be split to also show disks info.
|
||||
show_disks = True
|
||||
|
||||
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
|
||||
only_physical = True
|
||||
|
||||
#* Read disks list from /etc/fstab. This also disables only_physical.
|
||||
use_fstab = True
|
||||
|
||||
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
|
||||
zfs_hide_datasets = False
|
||||
|
||||
#* Set to true to show available disk space for privileged users.
|
||||
disk_free_priv = False
|
||||
|
||||
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
|
||||
show_io_stat = True
|
||||
|
||||
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
|
||||
io_mode = False
|
||||
|
||||
#* Set to True to show combined read/write io graphs in io mode.
|
||||
io_graph_combined = False
|
||||
|
||||
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
|
||||
#* Example: "/mnt/media:100 /:20 /boot:1".
|
||||
io_graph_speeds = ""
|
||||
|
||||
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
|
||||
net_download = 100
|
||||
|
||||
net_upload = 100
|
||||
|
||||
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
|
||||
net_auto = True
|
||||
|
||||
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
|
||||
net_sync = True
|
||||
|
||||
#* Starts with the Network Interface specified here.
|
||||
net_iface = ""
|
||||
|
||||
#* Show battery stats in top right if battery is present.
|
||||
show_battery = True
|
||||
|
||||
#* Which battery to use if multiple are present. "Auto" for auto detection.
|
||||
selected_battery = "Auto"
|
||||
|
||||
#* Show power stats of battery next to charge indicator.
|
||||
show_battery_watts = True
|
||||
|
||||
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
|
||||
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
|
||||
log_level = "WARNING"
|
||||
|
||||
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
|
||||
nvml_measure_pcie_speeds = True
|
||||
|
||||
#* Horizontally mirror the GPU graph.
|
||||
gpu_mirror_graph = True
|
||||
|
||||
#* Custom gpu0 model name, empty string to disable.
|
||||
custom_gpu_name0 = ""
|
||||
|
||||
#* Custom gpu1 model name, empty string to disable.
|
||||
custom_gpu_name1 = ""
|
||||
|
||||
#* Custom gpu2 model name, empty string to disable.
|
||||
custom_gpu_name2 = ""
|
||||
|
||||
#* Custom gpu3 model name, empty string to disable.
|
||||
custom_gpu_name3 = ""
|
||||
|
||||
#* Custom gpu4 model name, empty string to disable.
|
||||
custom_gpu_name4 = ""
|
||||
|
||||
#* Custom gpu5 model name, empty string to disable.
|
||||
custom_gpu_name5 = ""
|
||||
18
roles/btop/tasks/main.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
- name: "[Btop] Install"
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- btop
|
||||
state: latest
|
||||
become: true
|
||||
|
||||
- name: "[Btop] Create config folder"
|
||||
ansible.builtin.file:
|
||||
mode: "0755"
|
||||
path: "{{ ansible_user_dir }}/.config/btop"
|
||||
state: directory
|
||||
|
||||
- name: "[Btop] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/.config/btop"
|
||||
1
roles/discord/files/Preferences
Normal file
@@ -0,0 +1 @@
|
||||
{"spellcheck":{"dictionaries":["en-GB", "de-DE"],"dictionary":""}}
|
||||
3
roles/discord/files/storage/lang.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"lang": "en-US"
|
||||
}
|
||||
62
roles/discord/files/storage/settings.json
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"windowStyle": "native",
|
||||
"channel": "stable",
|
||||
"armcordCSP": true,
|
||||
"minimizeToTray": false,
|
||||
"keybinds": [],
|
||||
"alternativePaste": false,
|
||||
"multiInstance": false,
|
||||
"mods": [
|
||||
"none"
|
||||
],
|
||||
"spellcheck": true,
|
||||
"performanceMode": "none",
|
||||
"skipSplash": false,
|
||||
"inviteWebsocket": true,
|
||||
"startMinimized": false,
|
||||
"dynamicIcon": false,
|
||||
"tray": "dynamic",
|
||||
"customJsBundle": "https://armcord.app/placeholder.js",
|
||||
"customCssBundle": "https://armcord.app/placeholder.css",
|
||||
"disableAutogain": false,
|
||||
"useLegacyCapturer": false,
|
||||
"mobileMode": false,
|
||||
"trayIcon": "dynamic",
|
||||
"doneSetup": true,
|
||||
"clientName": "ArmCord",
|
||||
"customIcon": "/usr/lib/armcord/app.asar/assets/desktop.png",
|
||||
"modCache": {
|
||||
"shelter": "1b35b8802a85809742af99f454bb941f56f759a3"
|
||||
},
|
||||
"hardwareAcceleration": true,
|
||||
"audio": {
|
||||
"workaround": false,
|
||||
"deviceSelect": true,
|
||||
"granularSelect": true,
|
||||
"ignoreVirtual": false,
|
||||
"ignoreDevices": false,
|
||||
"ignoreInputMedia": false,
|
||||
"onlySpeakers": false,
|
||||
"onlyDefaultSpeakers": true,
|
||||
"loopbackType": "loopback"
|
||||
},
|
||||
"transparency": "none",
|
||||
"legcordCSP": true,
|
||||
"bounceOnPing": false,
|
||||
"disableHttpCache": false,
|
||||
"autoHideMenuBar": true,
|
||||
"blockPowerSavingInVoiceChat": false,
|
||||
"useMacSystemPicker": true,
|
||||
"popoutPiP": false,
|
||||
"spellcheckLanguage": [
|
||||
"en-US",
|
||||
"de-DE"
|
||||
],
|
||||
"sleepInBackground": false,
|
||||
"noBundleUpdates": false,
|
||||
"additionalArguments": "",
|
||||
"smoothScroll": true,
|
||||
"autoScroll": false,
|
||||
"useSystemCssEditor": false,
|
||||
"overlayButtonColor": "#121214"
|
||||
}
|
||||
21
roles/discord/files/themes/Catppuccin-Macchiato-BD/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 Catppuccin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"theme": "src.css",
|
||||
"name": "Catppuccin Macchiato",
|
||||
"author": "winston#0001",
|
||||
"authorId": "505490445468696576",
|
||||
"version": "0.2.0",
|
||||
"description": "🎮 Soothing pastel theme for Discord",
|
||||
"website": "https://github.com/catppuccin/discord",
|
||||
"invite": "r6Mdz5dpFc",
|
||||
"updateSrc": "https://raw.githubusercontent.com/catppuccin/discord/main/themes/macchiato.theme.css",
|
||||
"supportsArmCordTitlebar": false,
|
||||
"enabled": true
|
||||
}
|
||||
11
roles/discord/files/themes/Catppuccin-Macchiato-BD/src.css
Normal file
@@ -0,0 +1,11 @@
|
||||
/**
|
||||
* @name Catppuccin Macchiato
|
||||
* @author winston#0001
|
||||
* @authorId 505490445468696576
|
||||
* @version 0.2.0
|
||||
* @description 🎮 Soothing pastel theme for Discord
|
||||
* @website https://github.com/catppuccin/discord
|
||||
* @invite r6Mdz5dpFc
|
||||
* **/
|
||||
|
||||
@import url("https://catppuccin.github.io/discord/dist/catppuccin-macchiato.theme.css");
|
||||
18
roles/discord/tasks/main.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
- name: "[Discord] Install"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
- legcord
|
||||
state: present
|
||||
|
||||
- name: "[Discord] Create config folder"
|
||||
ansible.builtin.file:
|
||||
mode: "0755"
|
||||
path: "{{ ansible_user_dir }}/.config/legcord"
|
||||
state: directory
|
||||
force: false
|
||||
|
||||
- name: "[Discord] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/.config/legcord"
|
||||
115
.config/fish/config.fish → roles/fish/files/config.fish
Executable file → Normal file
@@ -5,28 +5,35 @@ set VIRTUAL_ENV_DISABLE_PROMPT "1"
|
||||
set -x MANROFFOPT "-c"
|
||||
set -x MANPAGER "sh -c 'col -bx | bat -l man -p'"
|
||||
|
||||
## Set settings for https://github.com/franciscolourenco/done
|
||||
set -U __done_min_cmd_duration 10000
|
||||
set -U __done_notification_urgency_level low
|
||||
|
||||
## Environment setup
|
||||
# Env vars
|
||||
export EDITOR=nvim
|
||||
export VISUAL=nvim
|
||||
|
||||
if test -f ~/.fish_profile
|
||||
source ~/.fish_profile
|
||||
end
|
||||
|
||||
export EDITOR=nvim
|
||||
export VISUAL=nvim
|
||||
|
||||
## Add ~/.local/bin to PATH
|
||||
# Add ~/.local/bin to PATH
|
||||
if test -d ~/.local/bin
|
||||
if not contains -- ~/.local/bin $PATH
|
||||
set -p PATH ~/.local/bin
|
||||
end
|
||||
end
|
||||
|
||||
## Starship prompt
|
||||
## Plugin configuration
|
||||
# Set settings for https://github.com/franciscolourenco/done
|
||||
set -U __done_min_cmd_duration 10000
|
||||
set -U __done_notification_urgency_level low
|
||||
|
||||
# Starship prompt
|
||||
if type -q starship && status --is-interactive
|
||||
source ("/usr/bin/starship" init fish --print-full-init | psub)
|
||||
starship init fish | source
|
||||
end
|
||||
|
||||
# Zoxide
|
||||
if type -q zoxide && status --is-interactive
|
||||
zoxide init fish | source
|
||||
end
|
||||
|
||||
## Functions
|
||||
@@ -47,6 +54,39 @@ function cp_bar
|
||||
kill $cpid &> /dev/null
|
||||
end
|
||||
|
||||
function unzip -a input_file
|
||||
if test -z "$input_file"
|
||||
echo "Usage: unzip <filename.zip>"
|
||||
return 1
|
||||
end
|
||||
|
||||
if test ! -f $input_file
|
||||
echo "Error: File not found - $input_file"
|
||||
return 1
|
||||
end
|
||||
|
||||
set folder_name (basename -s .zip $input_file)
|
||||
|
||||
command unzip "$input_file" -d "$folder_name" && echo "File '$input_file' successfully extracted to '$folder_name/'"
|
||||
end
|
||||
|
||||
function untar -a input_file
|
||||
if test -z "$input_file"
|
||||
echo "Usage: untar <filename.zip>"
|
||||
return 1
|
||||
end
|
||||
|
||||
if test ! -f $input_file
|
||||
echo "Error: File not found - $input_file"
|
||||
return 1
|
||||
end
|
||||
|
||||
set folder_name (string split -m 1 "." $input_file)[1]
|
||||
mkdir $folder_name
|
||||
|
||||
command tar -xvf "$input_file" -C "$folder_name" && echo "File '$input_file' successfully extracted to '$folder_name/'"
|
||||
end
|
||||
|
||||
# Maven
|
||||
function mvn-init -a groupId artifactId -d "Create a simple maven project"
|
||||
if test -z "$groupId" -o -z "$artifactId"
|
||||
@@ -73,14 +113,24 @@ function mvn-run -a mainClass -d "Run your current maven project"
|
||||
end
|
||||
end
|
||||
|
||||
# Yazi wrapper
|
||||
function ya
|
||||
set tmp (mktemp -t "yazi-cwd.XXXXX")
|
||||
yazi $argv --cwd-file="$tmp"
|
||||
if set cwd (cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
|
||||
cd "$cwd"
|
||||
end
|
||||
rm -f -- "$tmp"
|
||||
end
|
||||
|
||||
## Aliases
|
||||
# Replace ls with exa
|
||||
if type -q exa
|
||||
alias ls='exa -al --color=always --group-directories-first --icons' # preferred listing
|
||||
alias la='exa -a --color=always --group-directories-first --icons' # all files and dirs
|
||||
alias ll='exa -l --color=always --group-directories-first --icons' # long format
|
||||
alias lt='exa -aT --color=always --group-directories-first --icons' # tree listing
|
||||
alias l.='exa -ald --color=always --group-directories-first --icons .*' # show only dotfiles
|
||||
# Replace ls with eza
|
||||
if type -q eza
|
||||
alias ls='eza -al --color=always --group-directories-first --icons' # preferred listing
|
||||
alias la='eza -a --color=always --group-directories-first --icons' # all files and dirs
|
||||
alias ll='eza -l --color=always --group-directories-first --icons' # long format
|
||||
alias lt='eza -aT --color=always --group-directories-first --icons' # tree listing
|
||||
alias l.='eza -ald --color=always --group-directories-first --icons .*' # show only dotfiles
|
||||
end
|
||||
|
||||
# Replace cat with bat
|
||||
@@ -88,21 +138,31 @@ if type -q bat
|
||||
alias cat='bat --style header --style snip --style changes --style header'
|
||||
end
|
||||
|
||||
# Replace yay with paru
|
||||
if type -q paru
|
||||
alias yay='paru'
|
||||
end
|
||||
|
||||
# Replace cd with zoxide
|
||||
if type -q zoxide
|
||||
alias cd='z'
|
||||
end
|
||||
|
||||
# Common use
|
||||
alias :q=exit
|
||||
alias ipn='ip'
|
||||
alias nano=nvim
|
||||
alias cls='clear'
|
||||
alias please='sudo'
|
||||
alias ip='ip -color'
|
||||
alias wip=curl https://ipinfo.io/ip
|
||||
alias mkdirs='mkdir --parents'
|
||||
alias ssh="kitty +kitten ssh" #For kitty terminal or use (on client)-> sudo apt install kitty-terminfo
|
||||
alias grubup="sudo update-grub"
|
||||
alias fixpacman="sudo rm /var/lib/pacman/db.lck"
|
||||
alias tarnow='tar -acf '
|
||||
alias tarlist="tar -tvf"
|
||||
alias untar='tar -xvf '
|
||||
alias tarlist='tar -tvf '
|
||||
alias wget='wget -c '
|
||||
alias rmpkg="sudo pacman -Rcns "
|
||||
alias rmpkg='sudo pacman -Rcns '
|
||||
alias purgepkg="sudo pacman -Rdd "
|
||||
alias psmem='ps auxf | sort -nr -k 4'
|
||||
alias psmem10='ps auxf | sort -nr -k 4 | head -10'
|
||||
@@ -110,15 +170,16 @@ alias ..='cd ..'
|
||||
alias ...='cd ../..'
|
||||
alias ....='cd ../../..'
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='grep -F --color=auto'
|
||||
alias egrep='grep -E --color=auto'
|
||||
alias igrep='grep -i --color=auto'
|
||||
alias grepf='grep -F --color=auto'
|
||||
alias grepe='grep -E --color=auto'
|
||||
alias grepi='grep -i --color=auto'
|
||||
alias hw='hwinfo --short' # Hardware Info
|
||||
alias big="expac -H M '%m\t%n' | sort -h | nl" # Sort installed packages according to size in MB
|
||||
alias bigpkg="expac -H M '%m\t%n' | sort -h | nl" # Sort installed packages according to size in MB
|
||||
alias gitpkg='pacman -Q | grep -i "\-git" | wc -l' # List amount of -git packages
|
||||
alias cleanup='sudo pacman -Rns (pacman -Qtdq)' # Cleanup orphaned packages
|
||||
alias jctl="journalctl -p 3 -xb" # Get the error messages from journalctl
|
||||
alias rip="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -200 | nl" # Recent installed packages
|
||||
alias h="cliphist list | fzf | cliphist decode | wl-copy"
|
||||
|
||||
# Get fastest mirrors
|
||||
alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist"
|
||||
@@ -126,11 +187,9 @@ alias mirrord="sudo reflector --latest 50 --number 20 --sort delay --save /etc/p
|
||||
alias mirrors="sudo reflector --latest 50 --number 20 --sort score --save /etc/pacman.d/mirrorlist"
|
||||
alias mirrora="sudo reflector --latest 50 --number 20 --sort age --save /etc/pacman.d/mirrorlist"
|
||||
|
||||
## Run fastfetch if session is interactive
|
||||
## Run fastfetch
|
||||
if status --is-interactive
|
||||
if type -q fastfetch
|
||||
fastfetch -l arch
|
||||
else if type -q neofetch
|
||||
neofetch --ascii_distro arch
|
||||
end
|
||||
end
|
||||
26
roles/fish/tasks/main.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
- name: "[Fish] Install"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
- fish
|
||||
- fish-done
|
||||
- fastfetch
|
||||
- zoxide
|
||||
state: present
|
||||
|
||||
- name: "[Fish] Create config folder"
|
||||
ansible.builtin.file:
|
||||
mode: "0755"
|
||||
path: "{{ ansible_user_dir }}/.config/fish"
|
||||
state: directory
|
||||
|
||||
- name: "[Fish] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/.config/fish"
|
||||
|
||||
- name: "[Fish] Set shell"
|
||||
ansible.builtin.shell:
|
||||
cmd: "sudo usermod -s $(which fish) {{ username }}"
|
||||
become: true
|
||||
ignore_errors: true
|
||||
5
roles/hypr/files/devices.conf
Executable file
@@ -0,0 +1,5 @@
|
||||
# Devices
|
||||
device {
|
||||
name = roccat-roccat-kone-emp-mouse
|
||||
sensitivity = -0.5
|
||||
}
|
||||
9
roles/hypr/files/env.conf
Executable file
@@ -0,0 +1,9 @@
|
||||
# Environment
|
||||
env = XCURSOR_SIZE,24
|
||||
env = XCURSOR_THEME,Breeze
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_THEME,rose-pine-hyprcursor
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = WLR_NO_HARDWARE_CURSORS,1
|
||||
env = QT_QPA_PLATFORMTHEME,gtk3
|
||||
env = QT_STYLE_OVERRIDE,qt5ct
|
||||
@@ -1,24 +1,24 @@
|
||||
## Environment
|
||||
# Env
|
||||
source = ~/.config/hypr/env.conf
|
||||
|
||||
# Nvidia
|
||||
# source = ~/.config/hypr/nvidia.conf
|
||||
|
||||
## Keybinds
|
||||
# Keybinds
|
||||
source = ~/.config/hypr/keybinds.conf
|
||||
|
||||
## Monitors/Workspaces
|
||||
# Monitors/Workspaces
|
||||
source = ~/.config/hypr/windowrule.conf
|
||||
|
||||
## Startup
|
||||
# Startup
|
||||
source = ~/.config/hypr/startup.conf
|
||||
|
||||
## Input
|
||||
# Devices
|
||||
source = ~/.config/hypr/devices.conf
|
||||
|
||||
# Input
|
||||
input {
|
||||
kb_layout = de
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
kb_layout = us
|
||||
numlock_by_default = 1
|
||||
|
||||
follow_mouse = 1
|
||||
@@ -26,16 +26,12 @@ input {
|
||||
touchpad {
|
||||
natural_scroll = yes
|
||||
}
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
}
|
||||
|
||||
## General
|
||||
# General
|
||||
general {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
gaps_in = 5
|
||||
gaps_out = 5
|
||||
gaps_in = 2
|
||||
gaps_out = 2
|
||||
border_size = 2
|
||||
col.active_border = rgba(7dc4e4ee) rgba(7dc4e4ee) 45deg
|
||||
col.inactive_border = rgba(595959aa)
|
||||
@@ -43,10 +39,8 @@ general {
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
## Decoration
|
||||
# Decoration
|
||||
decoration {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
rounding = 0
|
||||
|
||||
blur {
|
||||
@@ -60,19 +54,12 @@ decoration {
|
||||
blurls = rofi
|
||||
blurls = gtk-layer-shell
|
||||
}
|
||||
|
||||
drop_shadow = yes
|
||||
shadow_range = 4
|
||||
shadow_render_power = 3
|
||||
col.shadow = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
## Animations
|
||||
# Animations
|
||||
animations {
|
||||
enabled = yes
|
||||
|
||||
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
|
||||
animation = windows, 1, 7, myBezier
|
||||
@@ -83,29 +70,14 @@ animations {
|
||||
animation = workspaces, 1, 6, default
|
||||
}
|
||||
|
||||
## Dwindle
|
||||
# Dwindle
|
||||
dwindle {
|
||||
pseudotile = yes
|
||||
preserve_split = yes # you probably want thisr
|
||||
preserve_split = yes
|
||||
}
|
||||
|
||||
## Master
|
||||
master {
|
||||
new_is_master = true
|
||||
}
|
||||
|
||||
## Gestures
|
||||
gestures {
|
||||
workspace_swipe = on
|
||||
}
|
||||
|
||||
## Misc
|
||||
# Misc
|
||||
misc {
|
||||
#mouse_move_enables_dpms = true
|
||||
key_press_enables_dpms = true
|
||||
}
|
||||
|
||||
## Devices
|
||||
device:roccat-roccat-kone-emp-mouse {
|
||||
sensitivity = 0.5
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
## Keybindings
|
||||
# Keybindings
|
||||
$mainMod = SUPER
|
||||
|
||||
# General
|
||||
@@ -7,16 +7,14 @@ bind = $mainMod, DELETE, exit,
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, M, fullscreen,
|
||||
bind = $mainMod, S, togglesplit,
|
||||
bind = $mainMod, F4, exec, wlogout
|
||||
bind = $mainMod, F, togglefloating,
|
||||
bind = $mainMod, N, exec, swaync-client -t -sw
|
||||
bind = $mainMod SHIFT, P, exec, hyprpicker -n -a -r
|
||||
bind = $mainMod, O, exec, ~/.config/hypr/scripts/lock.sh
|
||||
bind = $mainMod, B, exec, ~/.config/hypr/scripts/game_mode.sh
|
||||
bind = $mainMod, V, exec, pkill rofi || ~/.config/hypr/scripts/clipboard.sh c
|
||||
bind = $mainMod, TAB, exec, pkill rofi || ~/.config/hypr/scripts/app_launcher.sh w
|
||||
bind = $mainMod, COMMA, exec, pkill rofi || ~/.config/hypr/scripts/app_launcher.sh e
|
||||
bindr = $mainMod, SUPER_L, exec, pkill rofi || ~/.config/hypr/scripts/app_launcher.sh d
|
||||
bind = $mainMod, O, global, caelestia:lock
|
||||
bind = $mainMod, G, global, caelestia:dashboard
|
||||
bind = $mainMod, F4, exec, ags -t powermenu
|
||||
bind = $mainMod, SPACE, global, caelestia:launcher
|
||||
bind = $mainMod, TAB, exec, ags -t overview
|
||||
bind = $mainMod, V, exec, caelestia clipboard
|
||||
bind = $mainMod, COMMA, exec, caelestia emoji -p
|
||||
bind = $mainMod SHIFT, S, exec, grimblast --freeze copy area
|
||||
bind = $mainMod CTRL, S, exec, grimblast --freeze copysave area ~/Pictures/Screenshots/"$(date --rfc-3339=seconds)".png
|
||||
|
||||
@@ -25,18 +23,19 @@ bind = , XF86AudioNext, exec, playerctl next
|
||||
bind = , XF86AudioPrev, exec, playerctl previous
|
||||
bind = , XF86AudioPlay, exec, playerctl play
|
||||
bind = , XF86AudioPause, exec, playerctl pause
|
||||
bind = , XF86AudioMute, exec, ~/.config/eww/scripts/audio.sh mutesink @DEFAULT_SINK@
|
||||
bind = , XF86AudioMicMute, exec, ~/.config/eww/scripts/audio.sh mutesource @DEFAULT_SOURCE@
|
||||
binde = , XF86AudioRaiseVolume, exec, ~/.config/eww/scripts/audio.sh vol up
|
||||
binde = , XF86AudioLowerVolume, exec, ~/.config/eww/scripts/audio.sh vol down
|
||||
bind = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||
bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||
binde = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_SINK@ 5%+
|
||||
binde = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_SINK@ 5%-
|
||||
binde = , XF86MonBrightnessDown, exec, brightnessctl set 5%-
|
||||
binde = , XF86MonBrightnessUp, exec, brightnessctl set 5%+
|
||||
#bind = , XF86PowerOff, exec, systemctl shutdown
|
||||
|
||||
# Applications
|
||||
bind = $mainMod, T, exec, kitty
|
||||
bind = $mainMod, E, exec, thunar || dolphin
|
||||
bind = $mainMod, G, exec, ~/.config/hypr/scripts/app_launcher.sh c
|
||||
bind = CTRL SHIFT, ESCAPE, exec, gnome-system-monitor
|
||||
bind = $mainMod, T, exec, alacritty
|
||||
bind = $mainMod, E, exec, nemo
|
||||
bind = $mainMod, G, exec, ags -t calc
|
||||
bind = CTRL SHIFT, ESCAPE, exec, alacritty -e btop
|
||||
|
||||
# Move focus
|
||||
bind = $mainMod, left, movefocus, l
|
||||
@@ -48,6 +47,10 @@ bind = $mainMod, K, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
bind = $mainMod, J, movefocus, d
|
||||
|
||||
# Scrachtpad
|
||||
bind = $mainMod CTRL, 2, togglespecialworkspace,
|
||||
bind = $mainMod CTRL, 1, movetoworkspace, special
|
||||
|
||||
# Move window
|
||||
bind = $mainMod SHIFT, left, movewindow, l
|
||||
bind = $mainMod SHIFT, H, movewindow, l
|
||||
@@ -60,14 +63,14 @@ bind = $mainMod SHIFT, J, movewindow, d
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
|
||||
# Resize windows
|
||||
binde = $mainMod CTRL, left, resizeactive, -10 0
|
||||
binde = $mainMod CTRL, h, resizeactive, -10 0
|
||||
binde = $mainMod CTRL, right, resizeactive, 10 0
|
||||
binde = $mainMod CTRL, l, resizeactive, 10 0
|
||||
binde = $mainMod CTRL, up, resizeactive, 0 -10
|
||||
binde = $mainMod CTRL, k, resizeactive, 0 -10
|
||||
binde = $mainMod CTRL, down, resizeactive, 0 10
|
||||
binde = $mainMod CTRL, j, resizeactive, 0 10
|
||||
binde = $mainMod CTRL, left, resizeactive, -20 0
|
||||
binde = $mainMod CTRL, h, resizeactive, -20 0
|
||||
binde = $mainMod CTRL, right, resizeactive, 20 0
|
||||
binde = $mainMod CTRL, l, resizeactive, 20 0
|
||||
binde = $mainMod CTRL, up, resizeactive, 0 -20
|
||||
binde = $mainMod CTRL, k, resizeactive, 0 -20
|
||||
binde = $mainMod CTRL, down, resizeactive, 0 20
|
||||
binde = $mainMod CTRL, j, resizeactive, 0 20
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Move active window to a workspace
|
||||
@@ -1,4 +1,4 @@
|
||||
## Nvidia env
|
||||
# Nvidia env
|
||||
env = GBM_BACKEND,nvidia-drm
|
||||
env = LIBVA_DRIVER_NAME,nvidia
|
||||
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||
34
roles/hypr/tasks/main.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
- name: "[Hyprland] Install"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
- hyprland
|
||||
state: present
|
||||
|
||||
- name: "[Hyprland] Create config folder"
|
||||
ansible.builtin.file:
|
||||
mode: 0755
|
||||
path: "{{ ansible_user_dir }}/.config/hypr"
|
||||
state: directory
|
||||
|
||||
- name: "[Hyprland] Create screenshot folder"
|
||||
ansible.builtin.file:
|
||||
mode: 0755
|
||||
path: "{{ ansible_user_dir }}/Pictures/Screenshots"
|
||||
state: directory
|
||||
|
||||
- name: "[Hyprland] Configure"
|
||||
ansible.builtin.copy:
|
||||
mode: 0755
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/.config/hypr"
|
||||
|
||||
- name: "[Hyprland] Configure startup"
|
||||
ansible.builtin.template:
|
||||
src: startup.conf
|
||||
dest: "{{ ansible_user_dir }}/.config/hypr"
|
||||
|
||||
- name: "[Hyprland] Configure windowrules"
|
||||
ansible.builtin.template:
|
||||
src: windowrule.conf
|
||||
dest: "{{ ansible_user_dir }}/.config/hypr"
|
||||
19
roles/hypr/templates/startup.conf
Executable file
@@ -0,0 +1,19 @@
|
||||
# Shell
|
||||
exec-once = caelestia shell -d
|
||||
|
||||
# Programms
|
||||
{% if system == "desktop_full" %}
|
||||
exec-once = legcord
|
||||
exec-once = feishin
|
||||
exec-once = nextcloud
|
||||
{% endif %}
|
||||
exec-once = nm-applet
|
||||
exec-once = blueman-applet
|
||||
exec-once = playerctld daemon
|
||||
|
||||
# Clipboard
|
||||
exec-once = wl-paste --type text --watch cliphist store #Stores only text data
|
||||
exec-once = wl-paste --type image --watch cliphist store #Stores only image data
|
||||
|
||||
# Misc
|
||||
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
@@ -1,4 +1,5 @@
|
||||
## Monitors
|
||||
# Monitors
|
||||
{% if system == "desktop_full" %}
|
||||
$monitorOne = HDMI-A-1
|
||||
$monitorTwo = DP-2
|
||||
$monitorThree = HDMI-A-2
|
||||
@@ -6,23 +7,21 @@ $monitorThree = HDMI-A-2
|
||||
monitor = $monitorOne,1920x1080@144.001007,0x0,1
|
||||
monitor = $monitorTwo,2560x1440@143.912003,1920x0,1
|
||||
monitor = $monitorThree,1920x1080@60.000000,4480x0,1
|
||||
{% endif %}
|
||||
monitor = ,preferred,auto,1
|
||||
|
||||
|
||||
## Window Rules - (hyprctl -j clients | grep class)
|
||||
windowrule = workspace 2,^(YouTube Music)$
|
||||
windowrule = workspace 4,^(explorer.exe)$
|
||||
windowrule = workspace 4, ^(league of legends.exe)$
|
||||
windowrule = workspace 4,^(lutris)$
|
||||
windowrule = workspace 5,^(discord)$
|
||||
windowrule = workspace 5,^(de.keule.client.ui.JavaFX)$
|
||||
# Window Rules - (hyprctl -j clients | grep class)
|
||||
windowrule = workspace 2, class:feishin
|
||||
windowrule = workspace 5, class:discord
|
||||
windowrule = workspace 5, class:legcord
|
||||
|
||||
windowrule = float,^(lutris)$
|
||||
windowrule = size 965 545, ^(lutris)$
|
||||
windowrule = float,title:^.*culator.*$
|
||||
# windowrule = float,class:lutris
|
||||
# windowrule = size 965 545, class:lutris
|
||||
# windowrule = float,title:^.*culator.*$
|
||||
|
||||
|
||||
## Workspace
|
||||
# Workspace
|
||||
{% if system == "desktop_full" %}
|
||||
workspace = 1, monitor:$monitorOne, default:true
|
||||
workspace = 2, monitor:$monitorOne
|
||||
|
||||
@@ -31,3 +30,4 @@ workspace = 4, monitor:$monitorTwo
|
||||
|
||||
workspace = 5, monitor:$monitorThree, default:true
|
||||
workspace = 6, monitor:$monitorThree
|
||||
{% endif %}
|
||||
@@ -0,0 +1,464 @@
|
||||
[%General]
|
||||
author=elkrien based on Arc Dark style
|
||||
comment=Catppuccin-Frappe-Rosewater
|
||||
spread_menuitems=true
|
||||
left_tabs=true
|
||||
mirror_doc_tabs=true
|
||||
scroll_width=8
|
||||
attach_active_tab=true
|
||||
composite=true
|
||||
menu_shadow_depth=7
|
||||
tooltip_shadow_depth=0
|
||||
splitter_width=7
|
||||
check_size=16
|
||||
slider_width=4
|
||||
slider_handle_width=18
|
||||
slider_handle_length=18
|
||||
textless_progressbar=false
|
||||
menubar_mouse_tracking=true
|
||||
slim_toolbars=false
|
||||
toolbutton_style=1
|
||||
x11drag=menubar_and_primary_toolbar
|
||||
double_click=false
|
||||
translucent_windows=false
|
||||
blurring=false
|
||||
popup_blurring=true
|
||||
opaque=kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,smplayer,smplayer2,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,trojita,dragon,digikam,qmplay2
|
||||
group_toolbar_buttons=false
|
||||
vertical_spin_indicators=false
|
||||
fill_rubberband=false
|
||||
spread_progressbar=true
|
||||
merge_menubar_with_toolbar=true
|
||||
small_icon_size=16
|
||||
large_icon_size=32
|
||||
button_icon_size=16
|
||||
scroll_arrows=false
|
||||
iconless_pushbutton=true
|
||||
toolbar_icon_size=16
|
||||
combo_as_lineedit=true
|
||||
button_contents_shift=false
|
||||
groupbox_top_label=true
|
||||
inline_spin_indicators=true
|
||||
joined_inactive_tabs=false
|
||||
layout_spacing=2
|
||||
submenu_overlap=0
|
||||
tooltip_delay=-1
|
||||
animate_states=false
|
||||
transient_scrollbar=true
|
||||
alt_mnemonic=true
|
||||
combo_menu=true
|
||||
layout_margin=4
|
||||
no_window_pattern=false
|
||||
respect_DE=true
|
||||
scroll_min_extent=36
|
||||
scrollable_menu=false
|
||||
scrollbar_in_view=false
|
||||
spin_button_width=16
|
||||
submenu_delay=250
|
||||
tree_branch_line=true
|
||||
progressbar_thickness=8
|
||||
click_behavior=0
|
||||
contrast=1.00
|
||||
dialog_button_layout=0
|
||||
drag_from_buttons=false
|
||||
hide_combo_checkboxes=false
|
||||
intensity=1.00
|
||||
no_inactiveness=false
|
||||
reduce_menu_opacity=0
|
||||
reduce_window_opacity=10
|
||||
saturation=1.00
|
||||
shadowless_popup=false
|
||||
transient_groove=false
|
||||
|
||||
[GeneralColors]
|
||||
window.color=#303446
|
||||
base.color=#292C3C
|
||||
alt.base.color=#292C3C
|
||||
button.color=#414559
|
||||
light.color=#51576D
|
||||
mid.light.color=#51576D
|
||||
dark.color=#292C3C
|
||||
mid.color=#292C3C
|
||||
highlight.color=#F2D5CF
|
||||
inactive.highlight.color=#F2D5CF
|
||||
text.color=#C6D0F5
|
||||
window.text.color=#C6D0F5
|
||||
button.text.color=#C6D0F5
|
||||
disabled.text.color=#626880
|
||||
tooltip.text.color=#C6D0F5
|
||||
highlight.text.color=#292C3C
|
||||
link.color=#F2D5CF
|
||||
link.visited.color=#8CAAEE
|
||||
|
||||
[ItemView]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=itemview
|
||||
interior.element=itemview
|
||||
frame=true
|
||||
interior=true
|
||||
text.iconspacing=3
|
||||
text.toggle.color=#292C3C
|
||||
|
||||
[RadioButton]
|
||||
inherits=PanelButtonCommand
|
||||
frame=false
|
||||
interior.element=radio
|
||||
|
||||
[CheckBox]
|
||||
inherits=PanelButtonCommand
|
||||
frame=false
|
||||
interior.element=checkbox
|
||||
|
||||
[TreeExpander]
|
||||
indicator.element=tree
|
||||
indicator.size=8
|
||||
|
||||
[ToolTip]
|
||||
frame.top=4
|
||||
frame.right=4
|
||||
frame.bottom=4
|
||||
frame.left=4
|
||||
frame=true
|
||||
|
||||
[PanelButtonCommand]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=button
|
||||
frame.element=button
|
||||
text.normal.color=#C6D0F5
|
||||
text.focus.color=#C6D0F5
|
||||
text.press.color=#292C3C
|
||||
text.toggle.color=#292C3C
|
||||
|
||||
[PanelButtonTool]
|
||||
inherits=PanelButtonCommand
|
||||
|
||||
[DockTitle]
|
||||
inherits=PanelButtonCommand
|
||||
interior=false
|
||||
frame=false
|
||||
text.margin.top=5
|
||||
text.margin.bottom=5
|
||||
text.margin.left=5
|
||||
text.margin.right=5
|
||||
indicator.size=0
|
||||
|
||||
[Dock]
|
||||
interior.element=toolbar
|
||||
frame.element=toolbar
|
||||
frame=true
|
||||
interior=true
|
||||
|
||||
[GroupBox]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=tabframe
|
||||
interior=true
|
||||
frame=false
|
||||
|
||||
[Focus]
|
||||
inherits=PanelButtonCommand
|
||||
frame=true
|
||||
frame.element=focus
|
||||
frame.top=1
|
||||
frame.bottom=1
|
||||
frame.left=1
|
||||
frame.right=1
|
||||
frame.patternsize=20
|
||||
|
||||
[GenericFrame]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=common
|
||||
frame.top=1
|
||||
frame.bottom=1
|
||||
frame.left=1
|
||||
frame.right=1
|
||||
|
||||
[Slider]
|
||||
inherits=PanelButtonCommand
|
||||
interior=true
|
||||
frame.element=slider
|
||||
interior.element=slider
|
||||
frame.top=3
|
||||
frame.bottom=3
|
||||
frame.left=3
|
||||
frame.right=3
|
||||
focusFrame=true
|
||||
|
||||
[SliderCursor]
|
||||
inherits=PanelButtonCommand
|
||||
interior=true
|
||||
interior.element=slidercursor
|
||||
frame=false
|
||||
|
||||
[LineEdit]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=lineedit
|
||||
interior.element=lineedit
|
||||
|
||||
[IndicatorSpinBox]
|
||||
inherits=LineEdit
|
||||
frame.element=lineedit
|
||||
interior.element=lineedit
|
||||
frame.top=0
|
||||
frame.bottom=2
|
||||
frame.left=2
|
||||
frame.right=2
|
||||
indicator.size=8
|
||||
|
||||
[DropDownButton]
|
||||
inherits=PanelButtonCommand
|
||||
frame.top=2
|
||||
frame.bottom=2
|
||||
frame.left=0
|
||||
frame.right=1
|
||||
indicator.size=8
|
||||
|
||||
[ToolboxTab]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=tabframe
|
||||
frame.top=1
|
||||
frame.bottom=1
|
||||
frame.left=1
|
||||
frame.right=1
|
||||
|
||||
[Tab]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=tab
|
||||
frame.element=tab
|
||||
frame.top=2
|
||||
frame.bottom=3
|
||||
frame.left=3
|
||||
frame.right=3
|
||||
indicator.size=10
|
||||
text.normal.color=#626880
|
||||
text.focus.color=#C6D0F5
|
||||
text.press.color=#C6D0F5
|
||||
text.toggle.color=#C6D0F5
|
||||
focusFrame=true
|
||||
|
||||
[TabBarFrame]
|
||||
inherits=GenericFrame
|
||||
frame=true
|
||||
frame.element=tabBarFrame
|
||||
interior=false
|
||||
frame.top=4
|
||||
frame.bottom=4
|
||||
frame.left=4
|
||||
frame.right=4
|
||||
|
||||
[TabFrame]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=tabframe
|
||||
interior.element=tabframe
|
||||
|
||||
[Dialog]
|
||||
inherits=TabBarFrame
|
||||
frame.element=tabframe
|
||||
interior=false
|
||||
frame=false
|
||||
frame.top=1
|
||||
frame.bottom=1
|
||||
frame.left=1
|
||||
frame.right=1
|
||||
|
||||
[HeaderSection]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=header
|
||||
frame.element=header
|
||||
frame.top=0
|
||||
frame.bottom=1
|
||||
frame.left=1
|
||||
frame.right=1
|
||||
frame.expansion=0
|
||||
text.normal.color=#C6D0F5
|
||||
text.focus.color=#F2D5CF
|
||||
text.press.color=#C6D0F5
|
||||
text.toggle.color=#C6D0F5
|
||||
indicator.element=harrow
|
||||
|
||||
[SizeGrip]
|
||||
inherits=PanelButtonCommand
|
||||
frame=false
|
||||
interior=false
|
||||
indicator.element=resize-grip
|
||||
indicator.size=0
|
||||
|
||||
[Toolbar]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=menubar
|
||||
frame.element=menubar
|
||||
frame=true
|
||||
frame.bottom=4
|
||||
frame.left=4
|
||||
frame.right=4
|
||||
text.normal.color=#C6D0F5
|
||||
text.focus.color=#C6D0F5
|
||||
text.press.color=#F2D5CF
|
||||
text.toggle.color=#F2D5CF
|
||||
text.bold=false
|
||||
|
||||
[MenuBar]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=menubar
|
||||
interior.element=menubar
|
||||
frame.bottom=0
|
||||
text.normal.color=#C6D0F5
|
||||
frame.expansion=0
|
||||
text.bold=false
|
||||
|
||||
[ToolbarButton]
|
||||
frame.element=tbutton
|
||||
interior.element=tbutton
|
||||
indicator.element=arrow
|
||||
text.normal.color=#C6D0F5
|
||||
text.focus.color=#C6D0F5
|
||||
text.press.color=#292C3C
|
||||
text.toggle.color=#292C3C
|
||||
text.bold=false
|
||||
|
||||
[Scrollbar]
|
||||
inherits=PanelButtonCommand
|
||||
indicator.size=0
|
||||
interior=false
|
||||
frame=false
|
||||
|
||||
[ScrollbarGroove]
|
||||
inherits=PanelButtonCommand
|
||||
interior=false
|
||||
frame=false
|
||||
|
||||
[ScrollbarSlider]
|
||||
inherits=PanelButtonCommand
|
||||
interior=false
|
||||
frame.element=scrollbarslider
|
||||
frame.top=4
|
||||
frame.bottom=4
|
||||
frame.left=4
|
||||
frame.right=4
|
||||
|
||||
[ProgressbarContents]
|
||||
inherits=PanelButtonCommand
|
||||
frame=true
|
||||
frame.element=progress-pattern
|
||||
interior.element=progress-pattern
|
||||
frame.top=2
|
||||
frame.bottom=2
|
||||
frame.left=2
|
||||
frame.right=2
|
||||
|
||||
[Progressbar]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=progress
|
||||
interior.element=progress
|
||||
frame.top=2
|
||||
frame.bottom=2
|
||||
frame.left=2
|
||||
frame.right=2
|
||||
text.margin=0
|
||||
text.normal.color=#C6D0F5
|
||||
text.focus.color=#C6D0F5
|
||||
text.press.color=#292C3C
|
||||
text.toggle.color=#292C3C
|
||||
text.bold=false
|
||||
frame.expansion=18
|
||||
|
||||
[RadioButton]
|
||||
inherits=PanelButtonCommand
|
||||
|
||||
[Menu]
|
||||
frame.element=menu
|
||||
interior.element=menu
|
||||
inherits=PanelButtonCommand
|
||||
text.press.color=#292C3C
|
||||
text.toggle.color=#292C3C
|
||||
text.bold=false
|
||||
frame.top=3
|
||||
frame.bottom=3
|
||||
frame.left=3
|
||||
frame.right=3
|
||||
|
||||
[MenuItem]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=menuitem
|
||||
indicator.size=8
|
||||
text.focus.color=#C6D0F5
|
||||
text.press.color=#C6D0F5
|
||||
|
||||
[MenuBarItem]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=menubaritem
|
||||
frame=false
|
||||
text.margin.top=3
|
||||
text.margin.bottom=3
|
||||
text.margin.left=5
|
||||
text.margin.right=5
|
||||
|
||||
[StatusBar]
|
||||
inherits=Toolbar
|
||||
frame.element=toolbar
|
||||
font.bold=true
|
||||
text.normal.color=#C6D0F5
|
||||
frame=true
|
||||
frame.top=0
|
||||
frame.bottom=0
|
||||
|
||||
[TitleBar]
|
||||
inherits=PanelButtonCommand
|
||||
frame=false
|
||||
interior=false
|
||||
text.margin.top=2
|
||||
text.margin.bottom=2
|
||||
text.margin.left=3
|
||||
text.margin.right=3
|
||||
|
||||
[ComboBox]
|
||||
inherits=PanelButtonCommand
|
||||
indicator.size=8
|
||||
frame.top=3
|
||||
frame.bottom=3
|
||||
frame.left=3
|
||||
frame.right=3
|
||||
text.margin.top=1
|
||||
text.margin.bottom=1
|
||||
text.margin.left=3
|
||||
text.margin.right=3
|
||||
text.toggle.color=#C6D0F5
|
||||
|
||||
[ToolboxTab]
|
||||
inherits=PanelButtonCommand
|
||||
text.normal.color=#C6D0F5
|
||||
text.press.color=#C6D0F5
|
||||
text.focus.color=#C6D0F5
|
||||
|
||||
[Hacks]
|
||||
transparent_dolphin_view=false
|
||||
blur_konsole=true
|
||||
transparent_ktitle_label=true
|
||||
transparent_menutitle=true
|
||||
respect_darkness=true
|
||||
kcapacitybar_as_progressbar=true
|
||||
force_size_grip=false
|
||||
iconless_pushbutton=true
|
||||
iconless_menu=false
|
||||
disabled_icon_opacity=100
|
||||
lxqtmainmenu_iconsize=0
|
||||
normal_default_pushbutton=true
|
||||
single_top_toolbar=false
|
||||
tint_on_mouseover=0
|
||||
transparent_pcmanfm_sidepane=true
|
||||
transparent_pcmanfm_view=false
|
||||
blur_translucent=true
|
||||
centered_forms=false
|
||||
kinetic_scrolling=false
|
||||
middle_click_scroll=false
|
||||
no_selection_tint=false
|
||||
noninteger_translucency=false
|
||||
style_vertical_toolbars=false
|
||||
blur_only_active_window=false
|
||||
|
||||
[Window]
|
||||
interior=true
|
||||
interior.element=window
|
||||
frame.top=0
|
||||
frame.bottom=0
|
||||
frame.left=0
|
||||
frame.right=0
|
||||
|
After Width: | Height: | Size: 146 KiB |
21
roles/kvantum/files/Catppuccin-Frappe-Rosewater/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 Catppuccin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
2
roles/kvantum/files/kvantum.kvconfig
Normal file
@@ -0,0 +1,2 @@
|
||||
[General]
|
||||
theme=Catppuccin-Macchiato-Rosewater
|
||||
17
roles/kvantum/tasks/main.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
- name: "[Kvantum] Install"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
- kvantum-qt5-git
|
||||
state: present
|
||||
|
||||
- name: "[Kvantum] Create config folder"
|
||||
ansible.builtin.file:
|
||||
mode: "0755"
|
||||
path: "{{ ansible_user_dir }}/.config/Kvantum"
|
||||
state: directory
|
||||
|
||||
- name: "[Kvantum] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/.config/Kvantum"
|
||||
23
roles/minegrub/files/minegrub/LICENSE
Normal file
@@ -0,0 +1,23 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 Lxtharia
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
https://github.com/Lxtharia/minegrub-theme
|
||||