mirror of
https://github.com/GeorgeSG/dotfiles.git
synced 2026-09-04 00:18:44 +00:00
Add hyprstack config
This commit is contained in:
@@ -56,3 +56,12 @@ zsh:
|
||||
-git clone https://github.com/sunlei/zsh-ssh ~/.config/zsh/plugins/zsh-ssh
|
||||
mkdir -p ~/.config/zsh/plugins/bd
|
||||
curl https://raw.githubusercontent.com/Tarrasch/zsh-bd/master/bd.zsh > ~/.config/zsh/plugins/bd/bd.zsh
|
||||
|
||||
|
||||
### Arch / Hyprland
|
||||
hyprach:
|
||||
ln -fs ~/Git/dotfiles/home/.config/alacrity ~/.config/
|
||||
ln -fs ~/Git/dotfiles/home/.config/btop ~/.config/
|
||||
ln -fs ~/Git/dotfiles/home/.config/eww ~/.config/
|
||||
ln -fs ~/Git/dotfiles/home/.config/hypr ~/.config/
|
||||
ln -fs ~/Git/dotfiles/home/.config/rofi ~/.config/
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
import = [
|
||||
"~/.config/alacritty/themes/themes/tomorrow_night_bright.toml"
|
||||
]
|
||||
|
||||
shell = '/bin/zsh'
|
||||
|
||||
[window]
|
||||
padding = { x = 16, y = 8 }
|
||||
dynamic_title = true
|
||||
opacity = 0.6
|
||||
blur = true
|
||||
|
||||
[scrolling]
|
||||
history = 10000
|
||||
multiplier = 3
|
||||
|
||||
[font]
|
||||
normal = { family = "CaskaydiaMono Nerd Font" }
|
||||
size = 12
|
||||
offset = { y = 1 }
|
||||
|
||||
[cursor]
|
||||
style = { shape = "Beam", blinking = "Always" }
|
||||
@@ -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 = "/usr/share/btop/themes/matcha-dark-sea.theme"
|
||||
|
||||
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
||||
theme_background = False
|
||||
|
||||
#* 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 = False
|
||||
|
||||
#* 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 = "cpu lazy"
|
||||
|
||||
#* 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 = "Auto"
|
||||
|
||||
#* 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 = "Auto"
|
||||
|
||||
#* 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 = False
|
||||
|
||||
#* 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 = False
|
||||
|
||||
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
||||
swap_disk = False
|
||||
|
||||
#* 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 = False
|
||||
|
||||
#* 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 = False
|
||||
|
||||
#* 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 = ""
|
||||
@@ -0,0 +1,96 @@
|
||||
* {
|
||||
all: unset;
|
||||
}
|
||||
|
||||
.bar {
|
||||
font-family: "FiraCode Nerd Fonot";
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
|
||||
.interactive, .workspace {
|
||||
border-radius: 4px;
|
||||
margin: 4px 0;
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.workspace {
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
.workspace.current {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.interactive:not(.active):hover,
|
||||
.workspace:not(.current):hover {
|
||||
background-color: rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
|
||||
.box {
|
||||
background-color: rgba(255, 255, 255, 0.2);
|
||||
border-radius: 8px;
|
||||
padding-left: 8px;
|
||||
padding-right: 12px;
|
||||
}
|
||||
|
||||
.right > :not(:first-child) {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.audio-source {
|
||||
margin-top: 6px;
|
||||
padding-left: 8px;
|
||||
padding-right: 12px;
|
||||
}
|
||||
|
||||
.audio-source-2 {
|
||||
padding-left: 8px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.volume {
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
.kbd-layout {
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
.control-centre {
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
padding: 16px 32px;
|
||||
|
||||
}
|
||||
|
||||
.media-status {
|
||||
padding-right: 8px;
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
.media-window {
|
||||
.media-cover {
|
||||
border-radius: 8px;
|
||||
border: 2px solid #fff;
|
||||
background-size: contain;
|
||||
|
||||
}
|
||||
|
||||
.media-controls {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.media-button {
|
||||
border-radius: 8px;
|
||||
padding: 32px 0;
|
||||
background-color: rgba(255, 255, 255, 0.4);
|
||||
transition: background-color 0.4s ease;
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
|
||||
(include "./widgets/active-window/active-window.yuck")
|
||||
(include "./widgets/audio/audio.yuck")
|
||||
; (include "./widgets/brightness/brightness.yuck")
|
||||
(include "./widgets/clock/clock.yuck")
|
||||
(include "./widgets/kbd-layout/kbd-layout.yuck")
|
||||
(include "./widgets/media/media.yuck")
|
||||
(include "./widgets/workspaces/workspaces.yuck")
|
||||
|
||||
|
||||
(defwidget right []
|
||||
(box :class "box right"
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
:halign "end"
|
||||
(systray :hexpand true :class "systray" :icon-size 18 :spacing 4)
|
||||
(kbd-layout)
|
||||
(audio)
|
||||
(media)
|
||||
; (brightness)
|
||||
(clock)
|
||||
))
|
||||
|
||||
|
||||
(defwindow bar
|
||||
:monitor 0
|
||||
:geometry (geometry :x "0%"
|
||||
:y "4px"
|
||||
:width "99.7%"
|
||||
:height "32px"
|
||||
:anchor "top center"
|
||||
)
|
||||
:exclusive true
|
||||
:windowtype "dock"
|
||||
:wm-ignore false
|
||||
:focusable false
|
||||
(box :class "bar" :orientation "h"
|
||||
(workspaces :monitor-workspaces "[1, 2]")
|
||||
(active-window)
|
||||
(right)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defwindow bar2
|
||||
:monitor 1
|
||||
:geometry (geometry :x "0%"
|
||||
:y "4px"
|
||||
:width "99.7%"
|
||||
:height "32px"
|
||||
:anchor "top center"
|
||||
)
|
||||
:exclusive true
|
||||
:windowtype "dock"
|
||||
:wm-ignore false
|
||||
:focusable false
|
||||
(box :class "bar" :orientation "h"
|
||||
(workspaces :monitor-workspaces "[3, 4]")
|
||||
(active-window)
|
||||
(right)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
; (defvar r_bar_systray false)
|
||||
|
||||
; (defwidget w_bar_tray[] (revealer
|
||||
; :reveal r_bar_systray
|
||||
; :transition "slideleft"
|
||||
; (eventbox :class "tray" :spacing 20 :space-evenly false
|
||||
; (box :class "widget" :spacing 0 :space-evenly false
|
||||
; (systray :icon-size 18)
|
||||
; )
|
||||
; )
|
||||
; )
|
||||
; )
|
||||
Binary file not shown.
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from hyprsocket import run_on_line
|
||||
|
||||
|
||||
def get_kb_layout(line):
|
||||
print(line)
|
||||
|
||||
|
||||
run_on_line(get_kb_layout)
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from hyprsocket import run_on_line
|
||||
|
||||
|
||||
def get_kb_layout(line):
|
||||
if "activelayout" in line:
|
||||
res = line.split(">>")[1]
|
||||
language = res.split(",")[1]
|
||||
lang_short = language[0:2]
|
||||
print("bg" if lang_short == "Bu" else "en", flush=True)
|
||||
|
||||
|
||||
run_on_line(get_kb_layout)
|
||||
@@ -0,0 +1,24 @@
|
||||
import socket
|
||||
import os, os.path
|
||||
|
||||
|
||||
def get_socket_path():
|
||||
XDG_RUNTIME_DIR = os.getenv("XDG_RUNTIME_DIR")
|
||||
HYPRLAND_INSTANCE_SIGNATURE = os.getenv("HYPRLAND_INSTANCE_SIGNATURE")
|
||||
|
||||
socket_path = os.path.join(
|
||||
XDG_RUNTIME_DIR, "hypr", HYPRLAND_INSTANCE_SIGNATURE, ".socket2.sock"
|
||||
)
|
||||
|
||||
return socket_path
|
||||
|
||||
|
||||
def run_on_line(method):
|
||||
server = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||
server.connect(get_socket_path())
|
||||
|
||||
while True:
|
||||
data_chunk = server.recv(4096)
|
||||
if data_chunk:
|
||||
line = data_chunk.decode("utf-8")
|
||||
method(line)
|
||||
@@ -0,0 +1,7 @@
|
||||
(deflisten window :initial "..." "sh ./widgets/active-window/get-active-window.sh")
|
||||
|
||||
(defwidget active-window []
|
||||
(box
|
||||
(label :class "box" :text "${window}")
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
hyprctl activewindow -j | jq --raw-output .title
|
||||
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | stdbuf -o0 awk -F '>>|,' '/^activewindow>>/{print $3}'
|
||||
@@ -0,0 +1,24 @@
|
||||
(defpoll volume-level :interval "1s" "sh widgets/audio/get-volume-level.sh")
|
||||
|
||||
(defwidget icon []
|
||||
(label :text {volume-level > 66 ? "" : volume-level > 0 ? "" : ""})
|
||||
)
|
||||
|
||||
; TODO figure out the sink IDs dynamically?
|
||||
|
||||
(defwidget audio []
|
||||
(box
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
:halign "end"
|
||||
(eventbox :cursor "pointer" (button :class "audio-source interactive" :onclick "pactl set-default-sink 57" ""))
|
||||
(eventbox :cursor "pointer" (button :class "audio-source-2 interactive" :onclick "pactl set-default-sink 64" ""))
|
||||
(eventbox :cursor "pointer" :class "interactive" :onscroll "sh widgets/audio/change-volume.sh {}"
|
||||
(box :class "volume"
|
||||
(icon)
|
||||
(button :onclick "pavucontrol &"
|
||||
(label :text "${volume-level}%")
|
||||
)
|
||||
))
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
if [[ $1 == "up" ]]; then
|
||||
wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
||||
elif [[ $1 == "down" ]]; then
|
||||
wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
else
|
||||
wpctl set-volume @DEFAULT_AUDIO_SINK@ $1
|
||||
fi
|
||||
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
volume=$(wpctl get-volume @DEFAULT_AUDIO_SINK@)
|
||||
#todo fix 100% case
|
||||
|
||||
volume_value=$(echo $volume | cut -d':' -f2)
|
||||
|
||||
if [ $volume_value == "0.00" ]; then
|
||||
echo "0"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
if [[ $volume_value =~ ^" 1" ]]; then
|
||||
echo "${volume_value//.}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
volume_percent=$(echo $volume_value | cut -d'.' -f2)
|
||||
|
||||
echo $volume_percent
|
||||
@@ -0,0 +1,9 @@
|
||||
; this is taking up too much CPU time
|
||||
|
||||
(defpoll brightness-1 :interval "2s" "ddcutil -d 1 getvcp 10 | awk '{ split($9, a, \",\"); print a[1]}'")
|
||||
|
||||
(defwidget brightness []
|
||||
(eventbox :onscroll "sh widgets/brightness/change-brightness.sh {} ${brightness-1 + 0}"
|
||||
(label :text " ${substring(brightness-1, 0, 2)}")
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
case $1 in
|
||||
up)
|
||||
ddcutil -d 1 setvcp 10 $(($2 + 10))
|
||||
;;
|
||||
down)
|
||||
ddcutil -d 1 setvcp 10 $(($2 - 10))
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,10 @@
|
||||
(defwidget clock []
|
||||
(box :class "clock"
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
:halign "center"
|
||||
date-time)
|
||||
)
|
||||
|
||||
(defpoll date-time :interval "1s"
|
||||
"sh widgets/clock/date-time.sh")
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
DaySuffix() {
|
||||
case `date +%-d` in
|
||||
1|21|31) echo "st";;
|
||||
2|22) echo "nd";;
|
||||
3|23) echo "rd";;
|
||||
*) echo "th";;
|
||||
esac
|
||||
}
|
||||
|
||||
date=$(date "+%a, %b %-d`DaySuffix` · %H:%M")
|
||||
printf "%s" "$date"
|
||||
@@ -0,0 +1,12 @@
|
||||
(defwidget kbd-layout []
|
||||
(box
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
:halign "center"
|
||||
(eventbox :cursor "pointer" :class "interactive" :onclick "hyprctl switchxkblayout usb-hid-keyboard next"
|
||||
(label :text {keyboard-layout} :class "kbd-layout")
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(deflisten keyboard-layout :initial "en" "python ./lib/get-kb-layout.py")
|
||||
@@ -0,0 +1,50 @@
|
||||
(defpoll media-status :interval "1s" "playerctl status")
|
||||
|
||||
|
||||
(defpoll media-artist :interval "1s" "playerctl metadata --format \"{{artist}}\"")
|
||||
(defpoll media-title :interval "1s" "playerctl metadata --format \"{{title}}\"")
|
||||
(defpoll media-album :interval "1s" "playerctl metadata --format \"{{album}}\"")
|
||||
(defpoll media-artUrl :interval "1s" "playerctl metadata --format \"{{mpris:artUrl}}\"")
|
||||
(defpoll media-length :interval "1s" "playerctl metadata --format \"{{duration(mpris:length)}}\"")
|
||||
|
||||
|
||||
(defwidget media []
|
||||
(box
|
||||
(eventbox :cursor "pointer" :onclick "eww open --toggle window_media" :class "interactive" :onmiddleclick "playerctl play-pause"
|
||||
(box :class "media-status"
|
||||
(label :text "${media-status == "Playing" ? "" : media-status == "Paused" ? "" : ""}")
|
||||
)
|
||||
)
|
||||
|
||||
)
|
||||
)
|
||||
|
||||
(defwidget media_full []
|
||||
(box :orientation "v" :space-evenly false :class "media-window"
|
||||
(label :text media-artist :show-truncated false)
|
||||
(label :text media-title :show-truncated false)
|
||||
(label :text media-album :show-truncated false)
|
||||
(box :class "media-cover" :style "background: url('${media-artUrl}')" :width 180 :height 140)
|
||||
(box :class "media-controls" :spacing 16
|
||||
(eventbox :cursor "pointer" :onclick "playerctl previous" :class "media-button" "")
|
||||
(eventbox :cursor "pointer" :class "media-button play" :onclick "playerctl play" "")
|
||||
(eventbox :cursor "pointer" :class "media-button pause" :onclick "playerctl pause" "")
|
||||
(eventbox :cursor "pointer" :class "media-button next" :onclick "playerctl next" "")
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defwindow window_media
|
||||
:monitor 0
|
||||
:geometry (geometry :x "8px"
|
||||
:y "8px"
|
||||
:width "300px"
|
||||
:anchor "top right"
|
||||
)
|
||||
:wm-ignore false
|
||||
:focusable false
|
||||
(box :class "control-centre bar"
|
||||
(media_full)
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
direction=$1
|
||||
current=$2
|
||||
if [[ $direction == "down" ]]; then
|
||||
target=$(($current+1))
|
||||
if [[ $target == 11 ]]; then
|
||||
exit 0
|
||||
fi
|
||||
hyprctl dispatch workspace $target
|
||||
elif [[ $direction == "up" ]]; then
|
||||
target=$(($current-1))
|
||||
hyprctl dispatch workspace $target
|
||||
else
|
||||
target=$1
|
||||
hyprctl dispatch workspace $target
|
||||
fi
|
||||
@@ -0,0 +1,6 @@
|
||||
##!/usr/bin/env sh
|
||||
|
||||
hyprctl monitors -j | jq '.[] | select(.focused) | .activeWorkspace.id'
|
||||
|
||||
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - |
|
||||
stdbuf -o0 awk -F '>>|,' -e '/^workspace>>/ {print $2}' -e '/^focusedmon>>/ {print $3}'
|
||||
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env sh
|
||||
## NOTE: This file is unused currently
|
||||
|
||||
NUMBER_OF_WORKSPACES=6
|
||||
|
||||
window_class() {
|
||||
echo `hyprctl activewindow -j | jq --raw-output .class`
|
||||
}
|
||||
|
||||
window_title() {
|
||||
echo `hyprctl activewindow -j | jq --raw-output .title`
|
||||
}
|
||||
|
||||
workspaces (){
|
||||
WORKSPACE_WINDOWS=$(hyprctl workspaces -j | jq 'map({key: .id | tostring, value: .windows}) | from_entries')
|
||||
seq 1 $NUMBER_OF_WORKSPACES | jq --argjson windows "${WORKSPACE_WINDOWS}" --slurp -Mc 'map(tostring) | map({id: ., windows: ($windows[.]//0)})'
|
||||
}
|
||||
|
||||
if [[ $1 == 'workspaces' ]]; then
|
||||
echo "{ \"workspaces\": $(workspaces), \"active\": 1, \"active_empty\": true }"
|
||||
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do
|
||||
active=$(eww get workspaces | jq .active)
|
||||
if [[ ${line:0:9} == 'workspace' ]]; then
|
||||
active=${line:11:2}
|
||||
fi
|
||||
|
||||
active_empty='true'
|
||||
let "i = $active - 1"
|
||||
if [[ $(workspaces | jq --raw-output .[$i].windows) -gt 0 ]]; then active_empty='false'; fi
|
||||
|
||||
eww update workspaces="{
|
||||
\"workspaces\": $(workspaces),
|
||||
\"active\": $active,
|
||||
\"active_empty\": $active_empty
|
||||
}"
|
||||
|
||||
eww update dock_reveal="$active_empty"
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ $1 == 'window' ]]; then
|
||||
window_class
|
||||
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do
|
||||
window_class
|
||||
done
|
||||
fi
|
||||
@@ -0,0 +1,13 @@
|
||||
(deflisten active-workspace :initial "." "sh widgets/workspaces/get-active-workspace.sh")
|
||||
|
||||
(defwidget workspaces [?monitor-workspaces]
|
||||
(box :class "workspaces"
|
||||
:orientation "h"
|
||||
:space-evenly true
|
||||
:halign "start"
|
||||
:spacing 10
|
||||
(for workspace in monitor-workspaces
|
||||
(button :class "workspace ${active-workspace == workspace ? "current" : ""}" :onclick "hyprctl dispatch workspace ${workspace}" "${workspace}")
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,95 @@
|
||||
####################
|
||||
### KEYBINDINGSS ###
|
||||
####################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||
|
||||
|
||||
windowrulev2=float,class:(floatingTerm)
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
bind = $mainMod, T, exec, $terminal
|
||||
bind = $mainMod, Q, killactive,
|
||||
bind = alt, Q, killactive
|
||||
bind = $mainMod, M, exit,
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = alt, space, exec, $menu --class=floatingTerm
|
||||
bind = alt win shift, e, exec, $emojiMenu
|
||||
# bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, J, togglesplit, # dwindle
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
|
||||
bind = ctrl alt win, left, movewindow, mon:+1
|
||||
bind = ctrl alt win, right, movewindow, mon:-1
|
||||
|
||||
bind = SUPER, S, swapactiveworkspaces, 0 1
|
||||
|
||||
# resize with ctrl win shift hjkl
|
||||
bind = $mainMod ctrl SHIFT, L, resizeactive, 30 0
|
||||
bind = $mainMod ctrl SHIFT, H, resizeactive, -30 0
|
||||
bind = $mainMod ctrl SHIFT, K, resizeactive, 0 30
|
||||
bind = $mainMod ctrl SHIFT, J, resizeactive, 0 -30
|
||||
|
||||
# move with ctrl alt hjkl
|
||||
bind = ctrl win, H, movewindow, l
|
||||
bind = ctrl win, L, movewindow, r
|
||||
bind = ctrl win, K, movewindow, u
|
||||
bind = ctrl win, J, movewindow, d
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = ctrl SHIFT alt, 1, movetoworkspace, 1
|
||||
bind = ctrl SHIFT alt, 2, movetoworkspace, 2
|
||||
bind = ctrl SHIFT alt, 3, movetoworkspace, 3
|
||||
bind = ctrl SHIFT alt, 4, movetoworkspace, 4
|
||||
bind = ctrl SHIFT alt, 5, movetoworkspace, 5
|
||||
bind = ctrl SHIFT alt, 6, movetoworkspace, 6
|
||||
bind = ctrl SHIFT alt, 7, movetoworkspace, 7
|
||||
bind = ctrl SHIFT alt, 8, movetoworkspace, 8
|
||||
bind = ctrl SHIFT alt, 9, movetoworkspace, 9
|
||||
bind = ctrl SHIFT alt, 0, movetoworkspace, 10
|
||||
|
||||
bind = ctrl alt, H, workspace, -1
|
||||
bind = ctrl alt, L, workspace, +1
|
||||
|
||||
bind = ctrl alt SHIFT, H, movetoworkspace, -1
|
||||
bind = ctrl alt SHIFT, L, movetoworkspace, +1
|
||||
|
||||
bind = $mainMod, F, fullscreen
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
# bind = $mainMod, S, togglespecialworkspace, magic
|
||||
# bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# game mode
|
||||
bind = $mainMod, F1, exec, ~/.config/hypr/game-mode.sh
|
||||
|
||||
# eww
|
||||
bind = ctrl SHIFT win, M, exec, eww open --toggle window_media
|
||||
|
||||
bind = ctrl SHIFT win, W, exec, /home/georgi/Scripts/wallpaper
|
||||
@@ -0,0 +1,23 @@
|
||||
#############################
|
||||
### ENVIRONMENT VARIABLES ###
|
||||
#############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
|
||||
env = LIBVA_DRIVER_NAME,nvidia
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = GBM_BACKEND,nvidia-drm
|
||||
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||
|
||||
env = QT_QPA_PLATFORM,wayland;xcb
|
||||
env = GDK_BACKEND,wayland,x11
|
||||
env = QT_QPA_PLATFORMTHEME,qt5ct
|
||||
env = XDG_SESSION_DESKTOP,Hyprland
|
||||
|
||||
exec = gsettings set org.gnome.desktop.interface gtk-theme 'adw-gtk3-dark'
|
||||
exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' # for GTK4 apps
|
||||
|
||||
env = QT_QPA_PLATFORMTHEME,qt6ct # for Qt apps
|
||||
Executable
+15
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
HYPRGAMEMODE=$(hyprctl getoption animations:enabled | awk 'NR==1{print $2}')
|
||||
if [ "$HYPRGAMEMODE" = 1 ] ; then
|
||||
hyprctl --batch "\
|
||||
keyword animations:enabled 0;\
|
||||
keyword decoration:drop_shadow 0;\
|
||||
keyword decoration:blur:enabled 0;\
|
||||
keyword general:gaps_in 0;\
|
||||
keyword general:gaps_out 0;\
|
||||
keyword general:border_size 1;\
|
||||
keyword decoration:rounding 0"
|
||||
exit
|
||||
fi
|
||||
hyprctl reload
|
||||
@@ -0,0 +1,55 @@
|
||||
################
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor=DP-1, 3840x1600@144, 0x0, 1, vrr, 1
|
||||
monitor=DP-2, 2560x1440@144, 0x-1440, 1
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
###################
|
||||
|
||||
$terminal = alacritty
|
||||
$fileManager = nautilus
|
||||
$menu = rofi -show combi -combi-modes "window,run,ssh" -modes combi
|
||||
$emojiMenu = rofi -modi emoji -show emoji
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
|
||||
# exec-once = $terminal
|
||||
# exec-once = nm-applet &
|
||||
# exec-once = waybar & hyprpaper & firefox
|
||||
exec-once = eww open bar &
|
||||
exec-once = eww open bar2 &
|
||||
exec-once = swww-daemon --format xrgb &
|
||||
exec-once = swaync &
|
||||
|
||||
source = ~/.config/hypr/env.conf
|
||||
source = ~/.config/hypr/style.conf
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||
misc {
|
||||
force_default_wallpaper = 0
|
||||
disable_hyprland_logo = true
|
||||
animate_manual_resizes = true
|
||||
mouse_move_focuses_monitor = true
|
||||
}
|
||||
|
||||
workspace = 1, monitor:DP-1
|
||||
workspace = 2, monitor:DP-1
|
||||
workspace = 3, monitor:DP-2
|
||||
workspace = 4, monitor:DP-2
|
||||
|
||||
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
|
||||
|
||||
windowrulev2 = workspace 3,class:(org.telegram.desktop)
|
||||
windowrulev2 = workspace 3,class:(discord)
|
||||
windowrulev2 = workspace 2,class:(steam)
|
||||
windowrulev2 = float,class:(steam),title:(Friends List)
|
||||
windowrulev2 = float,class:(steam),title:(Steam Settings)
|
||||
|
||||
source = ~/.config/hypr/input.conf
|
||||
source = ~/.config/hypr/binds.conf
|
||||
@@ -0,0 +1,31 @@
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
input {
|
||||
kb_layout = us,bg
|
||||
kb_variant = ,phonetic
|
||||
kb_model =
|
||||
kb_options = caps:escape,grp:ctrl_space_toggle
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
sensitivity = 0.2 # -1.0 - 1.0, 0 means no modification.
|
||||
accel_profile = flat
|
||||
|
||||
touchpad {
|
||||
natural_scroll = false
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||
gestures {
|
||||
workspace_swipe = false
|
||||
}
|
||||
|
||||
cursor {
|
||||
no_hardware_cursors = true
|
||||
default_monitor = DP-1
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 3
|
||||
gaps_out = 6
|
||||
|
||||
border_size = 3
|
||||
|
||||
col.active_border = rgba(ca9ee6ff) rgba(f2d5cfff) 45deg
|
||||
col.inactive_border = rgba(b4befecc) rgba(6c7086cc) 45deg
|
||||
|
||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = true
|
||||
|
||||
allow_tearing = false
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 5
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
|
||||
drop_shadow = false
|
||||
shadow_range = 4
|
||||
shadow_render_power = 3
|
||||
col.shadow = rgba(1a1a1aee)
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur {
|
||||
enabled = yes
|
||||
size = 6
|
||||
passes = 3
|
||||
new_optimizations = on
|
||||
ignore_opacity = on
|
||||
xray = false
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||
animations {
|
||||
enabled = true
|
||||
|
||||
# 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
|
||||
animation = windowsOut, 1, 7, default, popin 80%
|
||||
animation = border, 1, 10, default
|
||||
animation = borderangle, 1, 8, default
|
||||
animation = fade, 1, 7, default
|
||||
animation = workspaces, 1, 6, default
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Dwindle-Layout/
|
||||
dwindle {
|
||||
pseudotile = true
|
||||
preserve_split = true
|
||||
}
|
||||
@@ -0,0 +1,207 @@
|
||||
configuration {
|
||||
/* modes: "window,drun,run,ssh"; */
|
||||
font: "Fira Code 12";
|
||||
show-icons: true;
|
||||
/* location: 0;*/
|
||||
/* yoffset: 0;*/
|
||||
/* xoffset: 0;*/
|
||||
/* fixed-num-lines: true;*/
|
||||
/* terminal: "rofi-sensible-terminal";*/
|
||||
/* ssh-client: "ssh";*/
|
||||
/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
|
||||
/* run-command: "{cmd}";*/
|
||||
/* run-list-command: "";*/
|
||||
/* run-shell-command: "{terminal} -e {cmd}";*/
|
||||
/* window-command: "wmctrl -i -R {window}";*/
|
||||
/* window-match-fields: "all";*/
|
||||
/* icon-theme: ;*/
|
||||
/* drun-match-fields: "name,generic,exec,categories,keywords";*/
|
||||
/* drun-categories: ;*/
|
||||
/* drun-show-actions: false;*/
|
||||
/* drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";*/
|
||||
/* drun-url-launcher: "xdg-open";*/
|
||||
/* disable-history: false;*/
|
||||
/* ignored-prefixes: "";*/
|
||||
/* sort: false;*/
|
||||
/* sorting-method: "normal";*/
|
||||
/* case-sensitive: false;*/
|
||||
/* cycle: true;*/
|
||||
/* sidebar-mode: false;*/
|
||||
hover-select: true;
|
||||
/* eh: 1;*/
|
||||
/* auto-select: false;*/
|
||||
/* parse-hosts: false;*/
|
||||
/* parse-known-hosts: true;*/
|
||||
/* combi-modes: "window,run";*/
|
||||
/* matching: "normal";*/
|
||||
/* tokenize: true;*/
|
||||
/* m: "-5";*/
|
||||
/* filter: ;*/
|
||||
/* dpi: -1;*/
|
||||
/* threads: 0;*/
|
||||
/* scroll-method: 0;*/
|
||||
/* window-format: "{w} {c} {t}";*/
|
||||
/* click-to-exit: true;*/
|
||||
/* global-kb: false;*/
|
||||
/* max-history-size: 25;*/
|
||||
/* combi-hide-mode-prefix: false;*/
|
||||
/* combi-display-format: "{mode} {text}";*/
|
||||
/* matching-negate-char: '-' /* unsupported */;*/
|
||||
/* cache-dir: ;*/
|
||||
/* window-thumbnail: false;*/
|
||||
/* drun-use-desktop-cache: false;*/
|
||||
/* drun-reload-desktop-cache: false;*/
|
||||
/* normalize-match: false;*/
|
||||
/* steal-focus: false;*/
|
||||
/* application-fallback-icon: ;*/
|
||||
/* refilter-timeout-limit: 300;*/
|
||||
/* xserver-i300-workaround: false;*/
|
||||
/* completer-mode: "recursivebrowser";*/
|
||||
/* pid: "/run/user/1000/rofi.pid";*/
|
||||
/* display-window: ;*/
|
||||
/* display-run: ;*/
|
||||
/* display-ssh: ;*/
|
||||
/* display-drun: ;*/
|
||||
/* display-combi: ;*/
|
||||
/* display-keys: ;*/
|
||||
/* display-filebrowser: ;*/
|
||||
/* display-recursivebrowser: ;*/
|
||||
/* kb-primary-paste: "Control+V,Shift+Insert";*/
|
||||
/* kb-secondary-paste: "Control+v,Insert";*/
|
||||
/* kb-secondary-copy: "Control+c";*/
|
||||
/* kb-clear-line: "Control+w";*/
|
||||
/* kb-move-front: "Control+a";*/
|
||||
/* kb-move-end: "Control+e";*/
|
||||
/* kb-move-word-back: "Alt+b,Control+Left";*/
|
||||
/* kb-move-word-forward: "Alt+f,Control+Right";*/
|
||||
/* kb-move-char-back: "Left,Control+b";*/
|
||||
/* kb-move-char-forward: "Right,Control+f";*/
|
||||
/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
|
||||
/* kb-remove-word-forward: "Control+Alt+d";*/
|
||||
/* kb-remove-char-forward: "Delete,Control+d";*/
|
||||
/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
|
||||
/* kb-remove-to-eol: "Control+k";*/
|
||||
/* kb-remove-to-sol: "Control+u";*/
|
||||
/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
|
||||
/* kb-accept-custom: "Control+Return";*/
|
||||
/* kb-accept-custom-alt: "Control+Shift+Return";*/
|
||||
/* kb-accept-alt: "Shift+Return";*/
|
||||
/* kb-delete-entry: "Shift+Delete";*/
|
||||
/* kb-mode-next: "Shift+Right,Control+Tab";*/
|
||||
/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
|
||||
/* kb-mode-complete: "Control+l";*/
|
||||
/* kb-row-left: "Control+Page_Up";*/
|
||||
/* kb-row-right: "Control+Page_Down";*/
|
||||
/* kb-row-up: "Up,Control+p";*/
|
||||
/* kb-row-down: "Down,Control+n";*/
|
||||
/* kb-row-tab: "";*/
|
||||
/* kb-element-next: "Tab";*/
|
||||
/* kb-element-prev: "ISO_Left_Tab";*/
|
||||
/* kb-page-prev: "Page_Up";*/
|
||||
/* kb-page-next: "Page_Down";*/
|
||||
/* kb-row-first: "Home,KP_Home";*/
|
||||
/* kb-row-last: "End,KP_End";*/
|
||||
/* kb-row-select: "Control+space";*/
|
||||
/* kb-screenshot: "Alt+S";*/
|
||||
/* kb-ellipsize: "Alt+period";*/
|
||||
/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
|
||||
/* kb-toggle-sort: "Alt+grave";*/
|
||||
/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
|
||||
/* kb-custom-1: "Alt+1";*/
|
||||
/* kb-custom-2: "Alt+2";*/
|
||||
/* kb-custom-3: "Alt+3";*/
|
||||
/* kb-custom-4: "Alt+4";*/
|
||||
/* kb-custom-5: "Alt+5";*/
|
||||
/* kb-custom-6: "Alt+6";*/
|
||||
/* kb-custom-7: "Alt+7";*/
|
||||
/* kb-custom-8: "Alt+8";*/
|
||||
/* kb-custom-9: "Alt+9";*/
|
||||
/* kb-custom-10: "Alt+0";*/
|
||||
/* kb-custom-11: "Alt+exclam";*/
|
||||
/* kb-custom-12: "Alt+at";*/
|
||||
/* kb-custom-13: "Alt+numbersign";*/
|
||||
/* kb-custom-14: "Alt+dollar";*/
|
||||
/* kb-custom-15: "Alt+percent";*/
|
||||
/* kb-custom-16: "Alt+dead_circumflex";*/
|
||||
/* kb-custom-17: "Alt+ampersand";*/
|
||||
/* kb-custom-18: "Alt+asterisk";*/
|
||||
/* kb-custom-19: "Alt+parenleft";*/
|
||||
kb-select-1: "Ctrl+Alt+1";
|
||||
kb-select-2: "Ctrl+Alt+2";
|
||||
kb-select-3: "Ctrl+Alt+3";
|
||||
kb-select-4: "Ctrl+Alt+4";
|
||||
kb-select-5: "Ctrl+Alt+5";
|
||||
kb-select-6: "Ctrl+Alt+6";
|
||||
kb-select-7: "Ctrl+Alt+7";
|
||||
kb-select-8: "Ctrl+Alt+8";
|
||||
kb-select-9: "Ctrl+Alt+9";
|
||||
kb-select-10: "Ctrl+Alt+0";
|
||||
/* kb-entry-history-up: "Control+Up";*/
|
||||
/* kb-entry-history-down: "Control+Down";*/
|
||||
/* ml-row-left: "ScrollLeft";*/
|
||||
/* ml-row-right: "ScrollRight";*/
|
||||
/* ml-row-up: "ScrollUp";*/
|
||||
/* ml-row-down: "ScrollDown";*/
|
||||
/* me-select-entry: "MousePrimary";*/
|
||||
/* me-accept-entry: "MouseDPrimary";*/
|
||||
/* me-accept-custom: "Control+MouseDPrimary";*/
|
||||
timeout {
|
||||
action: "kb-cancel";
|
||||
delay: 0;
|
||||
}
|
||||
filebrowser {
|
||||
directories-first: true;
|
||||
sorting-method: "name";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
* {
|
||||
selected-normal-foreground: rgba ( 249, 249, 249, 100 % );
|
||||
foreground: rgba ( 196, 203, 212, 100 % );
|
||||
normal-foreground: @foreground;
|
||||
alternate-normal-background: @background;
|
||||
red: rgba ( 220, 50, 47, 100 % );
|
||||
selected-urgent-foreground: rgba ( 249, 249, 249, 100 % );
|
||||
blue: rgba ( 38, 139, 210, 100 % );
|
||||
urgent-foreground: rgba ( 204, 102, 102, 100 % );
|
||||
alternate-urgent-background: rgba ( 75, 81, 96, 90 % );
|
||||
active-foreground: rgba ( 101, 172, 255, 100 % );
|
||||
lightbg: rgba ( 238, 232, 213, 100 % );
|
||||
selected-active-foreground: rgba ( 249, 249, 249, 100 % );
|
||||
alternate-active-background: rgba ( 75, 81, 96, 89 % );
|
||||
background: rgba ( 45, 48, 59, 95 % );
|
||||
alternate-normal-foreground: @foreground;
|
||||
normal-background: @background;
|
||||
lightfg: rgba ( 88, 104, 117, 100 % );
|
||||
selected-normal-background: rgba ( 64, 132, 214, 100 % );
|
||||
border-color: rgba ( 124, 131, 137, 100 % );
|
||||
spacing: 2;
|
||||
separatorcolor: rgba ( 0, 0, 0, 0 % );
|
||||
urgent-background: rgba ( 29, 31, 33, 17 % );
|
||||
selected-urgent-background: rgba ( 165, 66, 66, 100 % );
|
||||
alternate-urgent-foreground: @urgent-foreground;
|
||||
background-color: rgba ( 0, 0, 0, 0 % );
|
||||
alternate-active-foreground: @active-foreground;
|
||||
active-background: rgba ( 29, 31, 33, 17 % );
|
||||
selected-active-background: rgba ( 68, 145, 237, 100 % );
|
||||
}
|
||||
window {
|
||||
width: 25%;
|
||||
border-radius: 10;
|
||||
background-color: @background;
|
||||
border: 1;
|
||||
padding: 16;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 8px 16px;
|
||||
}
|
||||
|
||||
element-icon {
|
||||
padding: 0 20px 0 0;
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
/**
|
||||
* rofi -dump-theme output.
|
||||
* Rofi version: 1.7.5+wayland3
|
||||
**/
|
||||
* {
|
||||
red: rgba ( 220, 50, 47, 100 % );
|
||||
selected-active-foreground: rgba ( 249, 249, 249, 100 % );
|
||||
lightfg: rgba ( 88, 104, 117, 100 % );
|
||||
separatorcolor: rgba ( 29, 31, 33, 100 % );
|
||||
urgent-foreground: rgba ( 204, 102, 102, 100 % );
|
||||
alternate-urgent-background: rgba ( 75, 81, 96, 90 % );
|
||||
lightbg: rgba ( 238, 232, 213, 100 % );
|
||||
background-color: transparent;
|
||||
border-color: rgba ( 124, 131, 137, 100 % );
|
||||
normal-background: var(background);
|
||||
selected-urgent-background: rgba ( 165, 66, 66, 100 % );
|
||||
alternate-active-background: rgba ( 75, 81, 96, 89 % );
|
||||
spacing: 2;
|
||||
blue: rgba ( 38, 139, 210, 100 % );
|
||||
alternate-normal-foreground: var(foreground);
|
||||
urgent-background: rgba ( 29, 31, 33, 17 % );
|
||||
selected-normal-foreground: rgba ( 249, 249, 249, 100 % );
|
||||
active-foreground: rgba ( 101, 172, 255, 100 % );
|
||||
background: rgba ( 45, 48, 59, 95 % );
|
||||
selected-active-background: rgba ( 68, 145, 237, 100 % );
|
||||
active-background: rgba ( 29, 31, 33, 17 % );
|
||||
selected-normal-background: rgba ( 64, 132, 214, 100 % );
|
||||
alternate-normal-background: rgba ( 64, 69, 82, 59 % );
|
||||
foreground: rgba ( 196, 203, 212, 100 % );
|
||||
selected-urgent-foreground: rgba ( 249, 249, 249, 100 % );
|
||||
normal-foreground: var(foreground);
|
||||
alternate-urgent-foreground: var(urgent-foreground);
|
||||
alternate-active-foreground: var(active-foreground);
|
||||
}
|
||||
element {
|
||||
padding: 1px ;
|
||||
cursor: pointer;
|
||||
spacing: 5px ;
|
||||
border: 0;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
cursor: inherit;
|
||||
highlight: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
size: 1.0000em ;
|
||||
cursor: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
window {
|
||||
padding: 5;
|
||||
background-color: var(background);
|
||||
border: 1;
|
||||
}
|
||||
mainbox {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
message {
|
||||
padding: 1px ;
|
||||
border-color: var(separatorcolor);
|
||||
border: 2px 0px 0px ;
|
||||
}
|
||||
textbox {
|
||||
text-color: var(foreground);
|
||||
}
|
||||
listview {
|
||||
padding: 2px 0px 0px ;
|
||||
scrollbar: true;
|
||||
border-color: var(separatorcolor);
|
||||
spacing: 2px ;
|
||||
fixed-height: 0;
|
||||
border: 2px 0px 0px ;
|
||||
}
|
||||
scrollbar {
|
||||
width: 4px ;
|
||||
padding: 0;
|
||||
handle-width: 8px ;
|
||||
border: 0;
|
||||
handle-color: var(normal-foreground);
|
||||
}
|
||||
sidebar {
|
||||
border-color: var(separatorcolor);
|
||||
border: 2px dash 0px 0px ;
|
||||
}
|
||||
button {
|
||||
cursor: pointer;
|
||||
spacing: 0;
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
num-filtered-rows {
|
||||
expand: false;
|
||||
text-color: Gray;
|
||||
}
|
||||
num-rows {
|
||||
expand: false;
|
||||
text-color: Gray;
|
||||
}
|
||||
textbox-num-sep {
|
||||
expand: false;
|
||||
str: "/";
|
||||
text-color: Gray;
|
||||
}
|
||||
inputbar {
|
||||
padding: 1px ;
|
||||
spacing: 0;
|
||||
text-color: var(normal-foreground);
|
||||
children: [ "prompt","textbox-prompt-colon","entry","case-indicator" ];
|
||||
}
|
||||
case-indicator {
|
||||
spacing: 0;
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
entry {
|
||||
text-color: var(normal-foreground);
|
||||
cursor: text;
|
||||
spacing: 0;
|
||||
placeholder-color: Gray;
|
||||
placeholder: "Type to filter";
|
||||
}
|
||||
prompt {
|
||||
spacing: 0;
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
margin: 0px 0.3000em 0.0000em 0.0000em ;
|
||||
expand: false;
|
||||
str: ":";
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
mode-switcher {
|
||||
border-color: var(separatorcolor);
|
||||
border: 2px 0px 0px ;
|
||||
}
|
||||
Reference in New Issue
Block a user