migration
This commit is contained in:
10
.gitignore
vendored
Normal file
10
.gitignore
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
scripts/.gitremotetoken.json
|
||||
venv/
|
||||
.env
|
||||
*.pyc
|
||||
__pycache__/
|
||||
instance/
|
||||
.pytest_cache/
|
||||
dist/
|
||||
build/
|
||||
*.egg-info/
|
||||
57
README.md
Normal file
57
README.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# Dotfiles
|
||||
|
||||
This is a work in progress, check back for updates. Might look into making a changelog.
|
||||
Each folder should have a README of some tips.
|
||||
|
||||
## Hyprland Setup (2025) (hyprland/)
|
||||
- Shell: bash
|
||||
* Prompt: Starship
|
||||
- WM: hyprland
|
||||
- Terminal: ghostty
|
||||
- Editor: neovim
|
||||
- Menus: rofi
|
||||
- Lockscreen: hyprlock
|
||||
- Password Manager: pass (syncpass)
|
||||
|
||||
## X11 Setup (~2020) (X11/)
|
||||
- Shell: bash
|
||||
* Prompt: Starship
|
||||
- WM: bspwm
|
||||
- Terminal: kitty
|
||||
* Font: Fira Code
|
||||
- Editor: neovim
|
||||
- Status Bar: polybar
|
||||
- Compositor: picom
|
||||
- Menu: rofi
|
||||
- Theme Stuff: gtk-3.0
|
||||
* Theme: Juno Ocean
|
||||
* Icons: Infinity Lavender Dark Icons
|
||||
- File Explorer: thunar-git
|
||||
- Search: fzf, fd, ripgrep
|
||||
- Misc: exa, bat
|
||||
- Lockscreen: i3lock
|
||||
- Password Manager: pass
|
||||
|
||||
## Commands
|
||||
|
||||
Wifi:
|
||||
- `nmtui`
|
||||
|
||||
Bluetooth:
|
||||
- `blueman-manager`
|
||||
|
||||
Audio:
|
||||
- `alsamixer`: terminal control of volume
|
||||
|
||||
## Some settings
|
||||
- Icons
|
||||
- `~/.config/gtk-3.0/settings.ini`
|
||||
- `/usr/share/icons/*`
|
||||
|
||||
## Useful wikis
|
||||
- NVME storage: https://wiki.archlinux.org/title/Solid_state_drive/NVMe
|
||||
|
||||
## USB Auto Mounting
|
||||
|
||||
- using packages: udisks2 and udiskie (for automatic mounting)
|
||||
- unmounting needs manual: udiskie-umount /run/media/$USER/usb_folder_name
|
||||
9
X11/acpi/README.md
Normal file
9
X11/acpi/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Fn Keys/Backlight
|
||||
|
||||
https://wiki.archlinux.org/title/acpid
|
||||
|
||||
`acpi_listen` and press fn keys to see their names and stuff
|
||||
|
||||
`chmod +x script_file_names`: some scripts will need executable permissions
|
||||
|
||||
- bl = backlight
|
||||
3
X11/acpi/events/anything
Normal file
3
X11/acpi/events/anything
Normal file
@@ -0,0 +1,3 @@
|
||||
# Pass all events to our one handler script
|
||||
event=.*
|
||||
action=/etc/acpi/handler.sh %e
|
||||
2
X11/acpi/events/bl_d
Executable file
2
X11/acpi/events/bl_d
Executable file
@@ -0,0 +1,2 @@
|
||||
event=video/brightnessdown.*
|
||||
action=/etc/acpi/handlers/bl -
|
||||
2
X11/acpi/events/bl_u
Executable file
2
X11/acpi/events/bl_u
Executable file
@@ -0,0 +1,2 @@
|
||||
event=video/brightnessup.*
|
||||
action=/etc/acpi/handlers/bl +
|
||||
2
X11/acpi/events/volume_d
Executable file
2
X11/acpi/events/volume_d
Executable file
@@ -0,0 +1,2 @@
|
||||
event=button/volumedown.*
|
||||
action=/etc/acpi/handlers/volume -
|
||||
2
X11/acpi/events/volume_u
Executable file
2
X11/acpi/events/volume_u
Executable file
@@ -0,0 +1,2 @@
|
||||
event=button/volumeup.*
|
||||
action=/etc/acpi/handlers/volume +
|
||||
77
X11/acpi/handler.sh
Executable file
77
X11/acpi/handler.sh
Executable file
@@ -0,0 +1,77 @@
|
||||
#!/bin/bash
|
||||
# Default acpi script that takes an entry for all actions
|
||||
|
||||
case "$1" in
|
||||
# button/power)
|
||||
# case "$2" in
|
||||
# PBTN|PWRF)
|
||||
# logger 'PowerButton pressed'
|
||||
# ;;
|
||||
# *)
|
||||
# logger "ACPI action undefined: $2"
|
||||
# ;;
|
||||
# esac
|
||||
# ;;
|
||||
# button/sleep)
|
||||
# case "$2" in
|
||||
# SLPB|SBTN)
|
||||
# logger 'SleepButton pressed'
|
||||
# ;;
|
||||
# *)
|
||||
# logger "ACPI action undefined: $2"
|
||||
# ;;
|
||||
# esac
|
||||
# ;;
|
||||
# ac_adapter)
|
||||
# case "$2" in
|
||||
# AC|ACAD|ADP0)
|
||||
# case "$4" in
|
||||
# 00000000)
|
||||
# logger 'AC unpluged'
|
||||
# ;;
|
||||
# 00000001)
|
||||
# logger 'AC pluged'
|
||||
# ;;
|
||||
# esac
|
||||
# ;;
|
||||
# *)
|
||||
# logger "ACPI action undefined: $2"
|
||||
# ;;
|
||||
# esac
|
||||
# ;;
|
||||
# battery)
|
||||
# case "$2" in
|
||||
# BAT0)
|
||||
# case "$4" in
|
||||
# 00000000)
|
||||
# logger 'Battery online'
|
||||
# ;;
|
||||
# 00000001)
|
||||
# logger 'Battery offline'
|
||||
# ;;
|
||||
# esac
|
||||
# ;;
|
||||
# CPU0)
|
||||
# ;;
|
||||
# *) logger "ACPI action undefined: $2" ;;
|
||||
# esac
|
||||
# ;;
|
||||
# button/lid)
|
||||
# case "$3" in
|
||||
# close)
|
||||
# logger 'LID closed'
|
||||
# ;;
|
||||
# open)
|
||||
# logger 'LID opened'
|
||||
# ;;
|
||||
# *)
|
||||
# logger "ACPI action undefined: $3"
|
||||
# ;;
|
||||
# esac
|
||||
# ;;
|
||||
# *)
|
||||
# logger "ACPI group/action undefined: $1 / $2"
|
||||
# ;;
|
||||
esac
|
||||
|
||||
# vim:set ts=4 sw=4 ft=sh et:
|
||||
8
X11/acpi/handlers/bl
Executable file
8
X11/acpi/handlers/bl
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
bl_dev=/sys/class/backlight/intel_backlight
|
||||
step=1900
|
||||
|
||||
case $1 in
|
||||
-) echo $(($(< $bl_dev/brightness) - $step)) >$bl_dev/brightness;;
|
||||
+) echo $(($(< $bl_dev/brightness) + $step)) >$bl_dev/brightness;;
|
||||
esac
|
||||
5
X11/acpi/handlers/volume
Executable file
5
X11/acpi/handlers/volume
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
case $1 in
|
||||
-) runuser - kokopi -c "pamixer -d 5";;
|
||||
+) runuser - kokopi -c "pamixer -i 5";;
|
||||
esac
|
||||
1
X11/bspwm/README.md
Normal file
1
X11/bspwm/README.md
Normal file
@@ -0,0 +1 @@
|
||||
~/.config/bspwm/bspwmrc
|
||||
51
X11/bspwm/bspwmrc
Executable file
51
X11/bspwm/bspwmrc
Executable file
@@ -0,0 +1,51 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# kill for restarting bspwm
|
||||
killall -q picom
|
||||
killall -q fehbg
|
||||
killall -q polybar
|
||||
|
||||
pgrep -x sxhkd > /dev/null || sxhkd &
|
||||
|
||||
# depending on the laptop, it will be either eDP1 or eDP-1
|
||||
# run xrandr --current to check
|
||||
if [[ $(xrandr -q | grep -w connected | grep "DisplayPort-2") ]]
|
||||
then
|
||||
bspc monitor DisplayPort-2 -d 1 2 3 4 5
|
||||
bspc monitor eDP -d 6 7 8 9
|
||||
else
|
||||
bspc monitor eDP -d 1 2 3 4 5 6 7 8 9
|
||||
fi
|
||||
|
||||
# borders
|
||||
bspc config border_width 2
|
||||
bspc config focused_border_color "#E5C38F"
|
||||
bspc config normal_border_color "#423B31"
|
||||
|
||||
bspc config top_padding 0
|
||||
bspc config window_gap 14
|
||||
bspc config split_ratio 0.52
|
||||
bspc config borderless_monocle false
|
||||
bspc config gapless_monocle false
|
||||
bspc config focus_follows_pointer true
|
||||
|
||||
# bspc rule -a Gimp desktop='^8' state=floating follow=on
|
||||
# bspc rule -a Chromium desktop='^2'
|
||||
# bspc rule -a mplayer2 state=floating
|
||||
# bspc rule -a Kupfer.py focus=on
|
||||
# bspc rule -a Screenkey manage=off
|
||||
|
||||
# startup stuff
|
||||
## compositor
|
||||
picom -b
|
||||
## background
|
||||
~/.fehbg &
|
||||
## polybar
|
||||
polybar leftbar &
|
||||
polybar rightbar &
|
||||
udiskie &
|
||||
|
||||
if [[ $(xrandr -q | grep -w connected | grep "DisplayPort-2") ]]
|
||||
then
|
||||
polybar midbar &
|
||||
fi
|
||||
5
X11/gtk-3.0/README.md
Normal file
5
X11/gtk-3.0/README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# GTK3 Config Files
|
||||
|
||||
Add gtk.css and settings.ini to `~/.config/gtk-3.0/`
|
||||
|
||||
Run `GTK_DEBUG=interactive thunar` to check classes on thunar, replace thunar with any gtk applicable app to debug it too
|
||||
32
X11/gtk-3.0/gtk.css
Normal file
32
X11/gtk-3.0/gtk.css
Normal file
@@ -0,0 +1,32 @@
|
||||
.thunar {
|
||||
background: none;
|
||||
}
|
||||
.thunar .sidebar {
|
||||
background: rgba(21,24,40,0.3);
|
||||
}
|
||||
.thunar toolbar {
|
||||
background: rgba(21,24,40,0.3);
|
||||
padding-top: 10px;
|
||||
padding-bottom: 8px;
|
||||
border-top: 1px solid #E5C38F;
|
||||
}
|
||||
/* toolbar back btns and stuff */
|
||||
.thunar toolbar .image-button {
|
||||
color: #E5C38F;
|
||||
}
|
||||
/* input bar */
|
||||
.thunar toolbar toolitem widget box entry {
|
||||
color: #E5C38F;
|
||||
background: rgba(6, 2, 16, 0.75);
|
||||
}
|
||||
.thunar .sidebar .view {
|
||||
background: rgba(6, 2, 16, 0.4);
|
||||
color: #E5C38F;
|
||||
}
|
||||
.thunar notebook .view {
|
||||
background: rgba(6, 2, 16, 0.6);
|
||||
}
|
||||
.thunar statusbar {
|
||||
color: #E5C38F;
|
||||
background: rgba(6, 2, 16, 0.6);
|
||||
}
|
||||
5
X11/gtk-3.0/settings.ini
Normal file
5
X11/gtk-3.0/settings.ini
Normal file
@@ -0,0 +1,5 @@
|
||||
[Settings]
|
||||
gtk-icon-theme-name=Infinity-Lavender-Dark-Icons
|
||||
gtk-theme-name=Juno-ocean
|
||||
gtk-font-name=NotoSans
|
||||
gtk-cursor-theme-name=phinger-cursors
|
||||
1
X11/kitty/README.md
Normal file
1
X11/kitty/README.md
Normal file
@@ -0,0 +1 @@
|
||||
~/.config/kitty/kitty.conf
|
||||
1292
X11/kitty/kitty.conf
Executable file
1292
X11/kitty/kitty.conf
Executable file
File diff suppressed because it is too large
Load Diff
47
X11/kitty/t/navarch_cy
Executable file
47
X11/kitty/t/navarch_cy
Executable file
@@ -0,0 +1,47 @@
|
||||
background #060813
|
||||
foreground #F3F3F3
|
||||
cursor #3DE1CC
|
||||
|
||||
#: The foreground for text selected with the mouse. A value of none
|
||||
#: means to leave the color unchanged.
|
||||
selection_foreground #323232
|
||||
|
||||
#: How much to dim text that has the DIM/FAINT attribute set. One
|
||||
#: means no dimming and zero means fully dimmed (i.e. invisible).
|
||||
selection_background #F5A9E6
|
||||
|
||||
# black
|
||||
color0 #353535
|
||||
color8 #535353
|
||||
|
||||
# red
|
||||
color1 #C44A6B
|
||||
color9 #D06A85
|
||||
|
||||
# green
|
||||
color2 #3FA48E
|
||||
color10 #82DCC0
|
||||
|
||||
# yellow
|
||||
color3 #FFBB53
|
||||
color11 #D3B57B
|
||||
|
||||
# blue
|
||||
color4 #545EC0
|
||||
color12 #6F77D3
|
||||
|
||||
# magenta
|
||||
color5 #C852B7
|
||||
color13 #C763BA
|
||||
|
||||
# cyan
|
||||
color6 #62D8EC
|
||||
color14 #A2E7F2
|
||||
|
||||
# white
|
||||
color7 #E9E9E9
|
||||
color15 #F5F5F5
|
||||
active_tab_foreground #ffffff
|
||||
active_tab_background #535353
|
||||
inactive_tab_foreground #ffffff
|
||||
inactive_tab_background #353535
|
||||
6
X11/lockscreen/README.md
Normal file
6
X11/lockscreen/README.md
Normal file
@@ -0,0 +1,6 @@
|
||||
`i3lockscreen@.service` -> /etc/systemd/system/i3lockscreen@.service
|
||||
`i3-main lock-on-suspend` -> /home/$USER/.local/bin
|
||||
|
||||
## Enable
|
||||
`sudo systemctl enable i3lockscreen@USERNAME.service`
|
||||
test: `sudo systemctl start i3lockscreen@USERNAME.service`
|
||||
27
X11/lockscreen/i3lock-main
Normal file
27
X11/lockscreen/i3lock-main
Normal file
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
###
|
||||
# --keyhl = color of inside the ring when typing
|
||||
# --bshl = color of inside the ring when backspacing
|
||||
###
|
||||
i3lock --image=/home/$USER/pictures/redjuice.png -F \
|
||||
--radius=120 --ring-width=8 \
|
||||
--inside-color=ffffffaa \
|
||||
--ring-color=333333aa \
|
||||
--line-color=00000000 \
|
||||
--separator-color=00000000 \
|
||||
--insidewrong-color=ff000033 \
|
||||
--ringwrong-color=ff0000aa \
|
||||
\
|
||||
--keyhl-color=000000 \
|
||||
--bshl-color=ff4444 \
|
||||
\
|
||||
--clock --indicator \
|
||||
--time-color=333333 \
|
||||
--date-color=555555 \
|
||||
--clock --indicator \
|
||||
--noinput-text="Empty" \
|
||||
\
|
||||
--insidever-color=ffffff22 \
|
||||
--ringver-color=ffffffaa \
|
||||
--verif-color=ffffff
|
||||
|
||||
14
X11/lockscreen/i3lockscreen@.service
Normal file
14
X11/lockscreen/i3lockscreen@.service
Normal file
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Lock screen before suspend
|
||||
Before=sleep.target suspend.target hibernate.target
|
||||
|
||||
[Service]
|
||||
User=%i
|
||||
Type=forking
|
||||
Environment=DISPLAY=:0
|
||||
ExecStart=/bin/bash /home/%i/.local/bin/lock-on-suspend
|
||||
TimeoutSec=10
|
||||
RemainAfterExit=no
|
||||
|
||||
[Install]
|
||||
WantedBy=sleep.target suspend.target hibernate.target
|
||||
38
X11/lockscreen/lock-on-suspend
Normal file
38
X11/lockscreen/lock-on-suspend
Normal file
@@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
# Lock on suspend script
|
||||
# Save as /usr/local/bin/lock-on-suspend
|
||||
|
||||
# Get the user who is logged in to X
|
||||
USER=$(who | grep '(:0)' | awk '{print $1}' | head -n1)
|
||||
|
||||
# If no user found, try alternative method
|
||||
if [[ -z "$USER" ]]; then
|
||||
USER=$(ps aux | grep -E "(xinit|startx)" | grep -v grep | awk '{print $1}' | head -n1)
|
||||
fi
|
||||
|
||||
# Exit if no user found
|
||||
if [[ -z "$USER" ]]; then
|
||||
echo "No X user found"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Get user's home directory
|
||||
USER_HOME=$(getent passwd "$USER" | cut -d: -f6)
|
||||
|
||||
# Set environment variables for the user's X session
|
||||
export DISPLAY=:0
|
||||
export XAUTHORITY="$USER_HOME/.Xauthority"
|
||||
|
||||
# Path to your lock script (adjust this to your actual lock script path)
|
||||
LOCK_SCRIPT="$USER_HOME/.local/bin/i3lock-main"
|
||||
|
||||
# Lock as the user
|
||||
if [[ -f "$LOCK_SCRIPT" ]]; then
|
||||
sudo -u "$USER" "$LOCK_SCRIPT" &
|
||||
else
|
||||
# Fallback to basic i3lock
|
||||
sudo -u "$USER" i3lock --color=1a1a1a --clock --indicator &
|
||||
fi
|
||||
|
||||
# Give lock time to start
|
||||
sleep 1
|
||||
7
X11/picom/README.md
Normal file
7
X11/picom/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Packages
|
||||
|
||||
~/.config/picom/picom.conf
|
||||
|
||||
Git version allows dual_kawase blur:
|
||||
|
||||
`yay -S picom-git`
|
||||
435
X11/picom/picom.conf
Normal file
435
X11/picom/picom.conf
Normal file
@@ -0,0 +1,435 @@
|
||||
#################################
|
||||
# Shadows #
|
||||
#################################
|
||||
|
||||
|
||||
# Enabled client-side shadows on windows. Note desktop windows
|
||||
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
|
||||
# unless explicitly requested using the wintypes option.
|
||||
#
|
||||
# shadow = false
|
||||
shadow = true;
|
||||
|
||||
# The blur radius for shadows, in pixels. (defaults to 12)
|
||||
# shadow-radius = 12
|
||||
shadow-radius = 7;
|
||||
|
||||
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
||||
# shadow-opacity = .75
|
||||
|
||||
# The left offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-x = -15
|
||||
shadow-offset-x = -7;
|
||||
|
||||
# The top offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-y = -15
|
||||
shadow-offset-y = -7;
|
||||
|
||||
# Red color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-red = 0
|
||||
|
||||
# Green color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-green = 0
|
||||
|
||||
# Blue color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-blue = 0
|
||||
|
||||
# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue)
|
||||
# shadow-color = "#000000"
|
||||
|
||||
# Specify a list of conditions of windows that should have no shadow.
|
||||
#
|
||||
# examples:
|
||||
# shadow-exclude = "n:e:Notification";
|
||||
#
|
||||
# shadow-exclude = []
|
||||
shadow-exclude = [
|
||||
"name = 'Notification'",
|
||||
"class_g = 'Conky'",
|
||||
"class_g ?= 'Notify-osd'",
|
||||
"class_g = 'Cairo-clock'",
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
];
|
||||
|
||||
# Specify a list of conditions of windows that should have no shadow painted over, such as a dock window.
|
||||
# clip-shadow-above = []
|
||||
|
||||
# Specify a X geometry that describes the region in which shadow should not
|
||||
# be painted in, such as a dock window region. Use
|
||||
# shadow-exclude-reg = "x10+0+0"
|
||||
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
|
||||
#
|
||||
# shadow-exclude-reg = ""
|
||||
|
||||
# Crop shadow of a window fully on a particular Xinerama screen to the screen.
|
||||
# xinerama-shadow-crop = false
|
||||
|
||||
|
||||
#################################
|
||||
# Fading #
|
||||
#################################
|
||||
|
||||
|
||||
# Fade windows in/out when opening/closing and when opacity changes,
|
||||
# unless no-fading-openclose is used.
|
||||
# fading = false
|
||||
fading = true;
|
||||
|
||||
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
|
||||
# fade-in-step = 0.028
|
||||
fade-in-step = 0.07;
|
||||
|
||||
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
|
||||
# fade-out-step = 0.03
|
||||
fade-out-step = 0.05;
|
||||
|
||||
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
|
||||
# fade-delta = 10
|
||||
|
||||
# Specify a list of conditions of windows that should not be faded.
|
||||
# fade-exclude = []
|
||||
|
||||
# Do not fade on window open/close.
|
||||
# no-fading-openclose = false
|
||||
|
||||
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
|
||||
# no-fading-destroyed-argb = false
|
||||
|
||||
|
||||
#################################
|
||||
# Transparency / Opacity #
|
||||
#################################
|
||||
|
||||
|
||||
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
||||
# inactive-opacity = 1
|
||||
inactive-opacity = 1;
|
||||
active-opacity = 1;
|
||||
|
||||
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
||||
# frame-opacity = 1.0
|
||||
frame-opacity = 0.8;
|
||||
|
||||
# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows.
|
||||
# inactive-opacity-override = true
|
||||
inactive-opacity-override = false;
|
||||
|
||||
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
|
||||
# active-opacity = 1.0
|
||||
|
||||
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
|
||||
# inactive-dim = 0.0
|
||||
|
||||
# Specify a list of conditions of windows that should never be considered focused.
|
||||
# focus-exclude = []
|
||||
focus-exclude = [ "class_g = 'Cairo-clock'" ];
|
||||
|
||||
# Use fixed inactive dim value, instead of adjusting according to window opacity.
|
||||
# inactive-dim-fixed = 1.0
|
||||
|
||||
# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
|
||||
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
|
||||
# Note we don't make any guarantee about possible conflicts with other
|
||||
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
|
||||
# example:
|
||||
# opacity-rule = [ "80:class_g = 'URxvt'" ];
|
||||
#
|
||||
# opacity-rule = []
|
||||
|
||||
|
||||
#################################
|
||||
# Corners #
|
||||
#################################
|
||||
|
||||
# Sets the radius of rounded window corners. When > 0, the compositor will
|
||||
# round the corners of windows. Does not interact well with
|
||||
# `transparent-clipping`.
|
||||
corner-radius = 8.0;
|
||||
rounded-borders = 1;
|
||||
|
||||
# Exclude conditions for rounded corners.
|
||||
rounded-corners-exclude = [
|
||||
"window_type = 'dock'",
|
||||
"window_type = 'desktop'"
|
||||
];
|
||||
|
||||
|
||||
#################################
|
||||
# Background-Blurring #
|
||||
#################################
|
||||
|
||||
|
||||
# Parameters for background blurring, see the *BLUR* section for more information.
|
||||
# blur-method =
|
||||
# blur-size = 12
|
||||
#
|
||||
# blur-deviation = false
|
||||
#
|
||||
# blur-strength = 5
|
||||
|
||||
# Blur background of semi-transparent / ARGB windows.
|
||||
# Bad in performance, with driver-dependent behavior.
|
||||
# The name of the switch may change without prior notifications.
|
||||
#
|
||||
# blur-background = false
|
||||
|
||||
# Blur background of windows when the window frame is not opaque.
|
||||
# Implies:
|
||||
# blur-background
|
||||
# Bad in performance, with driver-dependent behavior. The name may change.
|
||||
#
|
||||
# blur-background-frame = false
|
||||
|
||||
|
||||
# Use fixed blur strength rather than adjusting according to window opacity.
|
||||
# blur-background-fixed = false
|
||||
|
||||
|
||||
# Specify the blur convolution kernel, with the following format:
|
||||
# example:
|
||||
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
|
||||
#
|
||||
# blur-kern = ""
|
||||
blur-kern = "3x3box";
|
||||
blur-method = "dual_kawase"
|
||||
blur-strength = 4;
|
||||
blur-background = true;
|
||||
blur-background-fixed = true;
|
||||
|
||||
|
||||
# Exclude conditions for background blur.
|
||||
# blur-background-exclude = []
|
||||
blur-background-exclude = [
|
||||
"window_type = 'dock'",
|
||||
"window_type = 'desktop'",
|
||||
"_GTK_FRAME_EXTENTS@:c",
|
||||
"class_g = 'Peek'"
|
||||
];
|
||||
|
||||
#################################
|
||||
# General Settings #
|
||||
#################################
|
||||
|
||||
# Enable remote control via D-Bus. See the man page for more details.
|
||||
# dbus = true
|
||||
|
||||
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
|
||||
# daemon = false
|
||||
|
||||
# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
|
||||
# `xrender` is the default one.
|
||||
#
|
||||
backend = "glx"
|
||||
#backend = "";
|
||||
|
||||
# Enable/disable VSync.
|
||||
# vsync = false
|
||||
vsync = true;
|
||||
|
||||
# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
|
||||
# dbus = false
|
||||
|
||||
# Try to detect WM windows (a non-override-redirect window with no
|
||||
# child that has 'WM_STATE') and mark them as active.
|
||||
#
|
||||
# mark-wmwin-focused = false
|
||||
mark-wmwin-focused = true;
|
||||
|
||||
# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
|
||||
# mark-ovredir-focused = false
|
||||
mark-ovredir-focused = true;
|
||||
|
||||
# Try to detect windows with rounded corners and don't consider them
|
||||
# shaped windows. The accuracy is not very high, unfortunately.
|
||||
#
|
||||
# detect-rounded-corners = false
|
||||
detect-rounded-corners = true;
|
||||
|
||||
# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers
|
||||
# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows.
|
||||
#
|
||||
# detect-client-opacity = false
|
||||
detect-client-opacity = true;
|
||||
|
||||
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
|
||||
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
|
||||
# provided that the WM supports it.
|
||||
#
|
||||
# use-ewmh-active-win = false
|
||||
|
||||
# Unredirect all windows if a full-screen opaque window is detected,
|
||||
# to maximize performance for full-screen windows. Known to cause flickering
|
||||
# when redirecting/unredirecting windows.
|
||||
#
|
||||
# unredir-if-possible = false
|
||||
|
||||
# Delay before unredirecting the window, in milliseconds. Defaults to 0.
|
||||
# unredir-if-possible-delay = 0
|
||||
|
||||
# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
|
||||
# unredir-if-possible-exclude = []
|
||||
|
||||
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
|
||||
# in the same group focused at the same time.
|
||||
#
|
||||
# detect-transient = false
|
||||
detect-transient = true;
|
||||
|
||||
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
|
||||
# group focused at the same time. This usually means windows from the same application
|
||||
# will be considered focused or unfocused at the same time.
|
||||
# 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too.
|
||||
#
|
||||
# detect-client-leader = false
|
||||
|
||||
# Resize damaged region by a specific number of pixels.
|
||||
# A positive value enlarges it while a negative one shrinks it.
|
||||
# If the value is positive, those additional pixels will not be actually painted
|
||||
# to screen, only used in blur calculation, and such. (Due to technical limitations,
|
||||
# with use-damage, those pixels will still be incorrectly painted to screen.)
|
||||
# Primarily used to fix the line corruption issues of blur,
|
||||
# in which case you should use the blur radius value here
|
||||
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
|
||||
# with a 5x5 one you use `--resize-damage 2`, and so on).
|
||||
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
|
||||
#
|
||||
# resize-damage = 1
|
||||
|
||||
# Specify a list of conditions of windows that should be painted with inverted color.
|
||||
# Resource-hogging, and is not well tested.
|
||||
#
|
||||
# invert-color-include = []
|
||||
|
||||
# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
|
||||
# Might cause incorrect opacity when rendering transparent content (but never
|
||||
# practically happened) and may not work with blur-background.
|
||||
# My tests show a 15% performance boost. Recommended.
|
||||
#
|
||||
glx-no-stencil = true;
|
||||
|
||||
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||
# Probably could improve performance on rapid window content changes,
|
||||
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
|
||||
# Recommended if it works.
|
||||
#
|
||||
# glx-no-rebind-pixmap = false
|
||||
|
||||
# Disable the use of damage information.
|
||||
# This cause the whole screen to be redrawn every time, instead of the part of the screen
|
||||
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
|
||||
# The opposing option is use-damage
|
||||
#
|
||||
# no-use-damage = false
|
||||
use-damage = true;
|
||||
|
||||
# Use X Sync fence to sync clients' draw calls, to make sure all draw
|
||||
# calls are finished before picom starts drawing. Needed on nvidia-drivers
|
||||
# with GLX backend for some users.
|
||||
#
|
||||
# xrender-sync-fence = false
|
||||
|
||||
# GLX backend: Use specified GLSL fragment shader for rendering window
|
||||
# contents. Read the man page for a detailed explanation of the interface.
|
||||
#
|
||||
# window-shader-fg = "default"
|
||||
|
||||
# Use rules to set per-window shaders. Syntax is SHADER_PATH:PATTERN, similar
|
||||
# to opacity-rule. SHADER_PATH can be "default". This overrides window-shader-fg.
|
||||
#
|
||||
# window-shader-fg-rule = [
|
||||
# "my_shader.frag:window_type != 'dock'"
|
||||
# ]
|
||||
|
||||
# Force all windows to be painted with blending. Useful if you
|
||||
# have a glx-fshader-win that could turn opaque pixels transparent.
|
||||
#
|
||||
# force-win-blend = false
|
||||
|
||||
# Do not use EWMH to detect fullscreen windows.
|
||||
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
|
||||
#
|
||||
# no-ewmh-fullscreen = false
|
||||
|
||||
# Dimming bright windows so their brightness doesn't exceed this set value.
|
||||
# Brightness of a window is estimated by averaging all pixels in the window,
|
||||
# so this could comes with a performance hit.
|
||||
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
|
||||
#
|
||||
# max-brightness = 1.0
|
||||
|
||||
# Make transparent windows clip other windows like non-transparent windows do,
|
||||
# instead of blending on top of them.
|
||||
#
|
||||
# transparent-clipping = false
|
||||
|
||||
# Specify a list of conditions of windows that should never have transparent
|
||||
# clipping applied. Useful for screenshot tools, where you need to be able to
|
||||
# see through transparent parts of the window.
|
||||
#
|
||||
# transparent-clipping-exclude = []
|
||||
|
||||
# Set the log level. Possible values are:
|
||||
# "trace", "debug", "info", "warn", "error"
|
||||
# in increasing level of importance. Case doesn't matter.
|
||||
# If using the "TRACE" log level, it's better to log into a file
|
||||
# using *--log-file*, since it can generate a huge stream of logs.
|
||||
#
|
||||
# log-level = "debug"
|
||||
log-level = "warn";
|
||||
|
||||
# Set the log file.
|
||||
# If *--log-file* is never specified, logs will be written to stderr.
|
||||
# Otherwise, logs will to written to the given file, though some of the early
|
||||
# logs might still be written to the stderr.
|
||||
# When setting this option from the config file, it is recommended to use an absolute path.
|
||||
#
|
||||
# log-file = "/path/to/your/log/file"
|
||||
|
||||
# Show all X errors (for debugging)
|
||||
# show-all-xerrors = false
|
||||
|
||||
# Write process ID to a file.
|
||||
# write-pid-path = "/path/to/your/log/file"
|
||||
|
||||
# Window type settings
|
||||
#
|
||||
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
|
||||
# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
|
||||
# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
|
||||
# "tooltip", "notification", "combo", and "dnd".
|
||||
#
|
||||
# Following per window-type options are available: ::
|
||||
#
|
||||
# fade, shadow:::
|
||||
# Controls window-type-specific shadow and fade settings.
|
||||
#
|
||||
# opacity:::
|
||||
# Controls default opacity of the window type.
|
||||
#
|
||||
# focus:::
|
||||
# Controls whether the window of this type is to be always considered focused.
|
||||
# (By default, all window types except "normal" and "dialog" has this on.)
|
||||
#
|
||||
# full-shadow:::
|
||||
# Controls whether shadow is drawn under the parts of the window that you
|
||||
# normally won't be able to see. Useful when the window has parts of it
|
||||
# transparent, and you want shadows in those areas.
|
||||
#
|
||||
# clip-shadow-above:::
|
||||
# Controls whether shadows that would have been drawn above the window should
|
||||
# be clipped. Useful for dock windows that should have no shadow painted on top.
|
||||
#
|
||||
# redir-ignore:::
|
||||
# Controls whether this type of windows should cause screen to become
|
||||
# redirected again after been unredirected. If you have unredir-if-possible
|
||||
# set, and doesn't want certain window to cause unnecessary screen redirection,
|
||||
# you can set this to `true`.
|
||||
#
|
||||
wintypes:
|
||||
{
|
||||
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
|
||||
dock = { shadow = false; clip-shadow-above = true; }
|
||||
dnd = { shadow = false; }
|
||||
popup_menu = { opacity = 0.8; }
|
||||
dropdown_menu = { opacity = 0.8; }
|
||||
};
|
||||
1
X11/polybar/README.md
Normal file
1
X11/polybar/README.md
Normal file
@@ -0,0 +1 @@
|
||||
~/.config/polybar/config.ini
|
||||
260
X11/polybar/config.ini
Normal file
260
X11/polybar/config.ini
Normal file
@@ -0,0 +1,260 @@
|
||||
;executable note:
|
||||
;%{A<button>:<command>:}text to make clickable%{A}
|
||||
|
||||
[colors]
|
||||
background = #0A0418
|
||||
foreground = #E5C38F
|
||||
brand-accent = #BF9FD8
|
||||
brand-secondary = #87409F
|
||||
alert = #711a26
|
||||
bspwm-occupied-fg = #82DCC0
|
||||
bspwm-focused-fg = #97325e
|
||||
bspwm-focused-bg = #d3b57b
|
||||
|
||||
; the semicolon after size is to indicate vertical alignment
|
||||
[fonts]
|
||||
font0 = "Noto Sans Mono:style=Regular:pixelsize=12;2"
|
||||
font1 = "Font Awesome 6 Brands Regular:style=Regular:pixelsize=12;2"
|
||||
font2 = "Noto Sans Mono:style=Regular:pixelsize=12;2"
|
||||
font3 = "Font Awesome 6 Free:pixelsize=12;3"
|
||||
font4 = "Font Awesome 6 Free Solid:pixelsize=12;3"
|
||||
|
||||
[vars]
|
||||
bar-radius = 8
|
||||
bar-height = 3.2%
|
||||
bar-left-width = 25%
|
||||
bar-mid-width = 23%
|
||||
bar-right-width = 26%
|
||||
bar-y = 11
|
||||
bar-left-x = 12
|
||||
bar-mid-x = 1000
|
||||
bar-right-x = 1658
|
||||
|
||||
[bar/leftbar]
|
||||
border-size = 2px
|
||||
border-color = ${colors.brand-accent}
|
||||
modules-left = date bspwm
|
||||
width = ${vars.bar-left-width}
|
||||
height = ${vars.bar-height}
|
||||
radius = ${vars.bar-radius}
|
||||
padding-left = 2
|
||||
module-margin-left = 1
|
||||
module-margin-right = 1
|
||||
offset-y = ${vars.bar-y}
|
||||
offset-x = ${vars.bar-left-x}
|
||||
wm-restack = bspwm
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
font-0 = ${fonts.font0}
|
||||
font-1 = ${fonts.font1}
|
||||
font-2 = ${fonts.font2}
|
||||
font-3 = ${fonts.font3}
|
||||
font-4 = ${fonts.font4}
|
||||
|
||||
; [bar/midbar]
|
||||
; modules-center = date bspwm
|
||||
; width = ${vars.bar-mid-width}
|
||||
; height = ${vars.bar-height}
|
||||
; radius = ${vars.bar-radius}
|
||||
; offset-y = ${vars.bar-y}
|
||||
; offset-x = ${vars.bar-mid-x}
|
||||
; module-margin-left = 1
|
||||
; module-margin-right = 1
|
||||
; background = ${colors.background}
|
||||
; foreground = ${colors.foreground}
|
||||
; scroll-up = bspwm-desknext
|
||||
; scroll-down = bspwm-deskprev
|
||||
; font-0 = ${fonts.font0}
|
||||
; font-1 = ${fonts.font1}
|
||||
; font-2 = ${fonts.font2}
|
||||
; font-3 = ${fonts.font3}
|
||||
; font-4 = ${fonts.font4}
|
||||
|
||||
[bar/rightbar]
|
||||
border-size = 2px
|
||||
border-color = ${colors.brand-accent}
|
||||
modules-right = wlan eth cpu memory bluetooth pulseaudio xkeyboard battery
|
||||
padding-right = 2
|
||||
radius = ${vars.bar-radius}
|
||||
width = ${vars.bar-right-width}
|
||||
height = ${vars.bar-height}
|
||||
offset-y = ${vars.bar-y}
|
||||
offset-x = ${vars.bar-right-x}
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
; cursor shape when hovering and scrolling over bar icons
|
||||
cursor-click = pointer
|
||||
eursor-scroll = ns-resize
|
||||
module-margin-left = 1
|
||||
module-margin-right = 1
|
||||
font-0 = ${fonts.font0}
|
||||
font-1 = ${fonts.font1}
|
||||
font-2 = ${fonts.font2}
|
||||
font-3 = ${fonts.font3}
|
||||
font-4 = ${fonts.font4}
|
||||
|
||||
[bar/midbar]
|
||||
monitor = DisplayPort-2
|
||||
modules-center = date bspwm
|
||||
width = ${vars.bar-mid-width}
|
||||
height = ${vars.bar-height}
|
||||
radius = ${vars.bar-radius}
|
||||
offset-y = ${vars.bar-y}
|
||||
offset-x = ${vars.bar-mid-x}
|
||||
module-margin-left = 1
|
||||
module-margin-right = 1
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
scroll-up = bspwm-desknext
|
||||
scroll-down = bspwm-deskprev
|
||||
font-0 = ${fonts.font0}
|
||||
font-1 = ${fonts.font1}
|
||||
font-2 = ${fonts.font2}
|
||||
font-3 = ${fonts.font3}
|
||||
font-4 = ${fonts.font4}
|
||||
|
||||
; [module/xwindow]
|
||||
; type = internal/xwindow
|
||||
; format = <label>
|
||||
; label = %title%
|
||||
; label-foreground = ${colors.foreground}
|
||||
; format-prefix = " "
|
||||
; format-prefix-foreground = ${colors.xwindow-prefix-fg}
|
||||
; label-maxlen = 60
|
||||
|
||||
[module/xkeyboard]
|
||||
type = internal/xkeyboard
|
||||
format-prefix = %{A1:ibus-setup:}%{A}
|
||||
format-prefix-foreground = ${colors.brand-accent}
|
||||
label-layout = %icon% %layout%
|
||||
format = <label-layout>
|
||||
blacklist-0 = caps lock
|
||||
click-left-exec = ibus-setup
|
||||
|
||||
[module/bspwm]
|
||||
type = internal/bspwm
|
||||
pin-workspaces = true
|
||||
enable-scroll = false
|
||||
;label-focused =
|
||||
label-focused =
|
||||
label-focused-foreground = ${colors.brand-secondary}
|
||||
label-focused-background = ${colors.brand-accent}
|
||||
label-focused-padding = 1
|
||||
; set label properties
|
||||
;label-occupied =
|
||||
label-occupied =
|
||||
label-occupied-padding = 1
|
||||
label-occupied-foreground = ${colors.brand-accent}
|
||||
label-urgent = !
|
||||
label-urgent-background = ${colors.alert}
|
||||
label-urgent-padding = 1
|
||||
label-empty =
|
||||
|
||||
[module/bluetooth]
|
||||
type = custom/text
|
||||
content = ""
|
||||
format = <label>
|
||||
content-foreground = ${colors.brand-accent}
|
||||
; click-middle = bspc rule -a '*' -o state=floating rectangle=400x120+775+48 && kitty -e sudo polybarblue.sh
|
||||
; click-left = blueman-manager
|
||||
|
||||
;clicking requires polybarcal.sh in your /bin
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
date = %Y-%m-%d%
|
||||
time = %H:%M
|
||||
label = %{A1:bspc rule -a '*' -o state=floating rectangle=250x250+775+45 && kitty -e polybarcal.sh:}%time% | %date%%{A}
|
||||
label-foreground = ${colors.foreground}
|
||||
|
||||
[module/pulseaudio]
|
||||
type = internal/pulseaudio
|
||||
sink = alsa_output.pci-0000_12_00.3.analog-stereo
|
||||
use-ui-max = true
|
||||
interval = 5
|
||||
format-volume = <bar-volume>
|
||||
bar-volume-width = 5
|
||||
bar-volume-foreground-0 = ${colors.brand-accent}
|
||||
bar-volume-gradient = false
|
||||
bar-volume-indicator =
|
||||
bar-volume-indicator-foreground = ${colors.brand-accent}
|
||||
bar-volume-indicator-font = 2
|
||||
bar-volume-fill = ─
|
||||
bar-volume-fill-font = 2
|
||||
bar-volume-empty = ─
|
||||
bar-volume-empty-font = 2
|
||||
label-muted =
|
||||
label-muted-foreground = ${colors.volume-muted-fg}
|
||||
; click-middle = bspc rule -a '*' -o state=floating && pavucontrol
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
;/sys/class/power_supply
|
||||
battery = BAT1
|
||||
adapter = ACAD
|
||||
poll-interval = 5
|
||||
full-at = 99
|
||||
format-charging = <animation-charging> <label-charging>
|
||||
label-charging = %percentage%%
|
||||
animation-charging-foreground = ${colors.brand-accent}
|
||||
label-discharging = %percentage%%
|
||||
format-discharging = <ramp-capacity> <label-discharging>
|
||||
ramp-capacity-foreground = ${colors.brand-accent}
|
||||
;label-charging =
|
||||
format-full = <label-full>
|
||||
label-full =
|
||||
label-full-foreground = ${colors.brand-accent}
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-3 =
|
||||
ramp-capacity-4 =
|
||||
animation-charging-0 =
|
||||
animation-charging-1 =
|
||||
animation-charging-2 =
|
||||
animation-charging-3 =
|
||||
animation-charging-4 =
|
||||
animation-charging-framerate = 750
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
interval = 5
|
||||
label = %percentage_used%%
|
||||
label-padding-left = 1
|
||||
format-prefix = ""
|
||||
format-prefix-foreground = ${colors.brand-accent}
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 5
|
||||
format-prefix = ""
|
||||
format-prefix-foreground = ${colors.brand-accent}
|
||||
label = %percentage:2%%
|
||||
|
||||
[module/wlan]
|
||||
type = internal/network
|
||||
;get interface via `ip link`, starts with wl
|
||||
interface = wlp1s0
|
||||
interval = 3
|
||||
format-connected-prefix = %{A1:nm-connection-editor:}%{A}
|
||||
format-connected-prefix-foreground = ${colors.brand-accent}
|
||||
format-connected = <label-connected>
|
||||
label-connected = %essid%
|
||||
label-connected-maxlen = 9
|
||||
label-connected-font = 0
|
||||
label-connected-padding-left = 1
|
||||
format-disconnected =
|
||||
|
||||
[module/eth]
|
||||
type = internal/network
|
||||
interface = net0
|
||||
interval = 3
|
||||
format-connected-prefix =
|
||||
label-connected = %local_ip%
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
|
||||
[global/wm]
|
||||
margin-top = 4
|
||||
margin-bottom = 4
|
||||
119
X11/rofi/config.rasi
Normal file
119
X11/rofi/config.rasi
Normal file
@@ -0,0 +1,119 @@
|
||||
configuration {
|
||||
show-icons: true;
|
||||
font: "Fira Code Retina 12";
|
||||
display-drun: "";
|
||||
}
|
||||
|
||||
* {
|
||||
text-color: #E9E9E9;
|
||||
spacing: 0;
|
||||
}
|
||||
|
||||
window {
|
||||
background-color: #00000050;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
padding: 450px 550px;
|
||||
enabled: true;
|
||||
location: center;
|
||||
anchor: center;
|
||||
transparency: "real";
|
||||
children: ["mainbox"];
|
||||
}
|
||||
|
||||
mainbox {
|
||||
border-radius: 10px;
|
||||
border: 2px;
|
||||
border-color: #BF9FD8;
|
||||
location: center;
|
||||
background-color: #0A041835;
|
||||
enabled: true;
|
||||
padding: 1.25em;
|
||||
spacing: 1.25em;
|
||||
children: [ "imageBox", "rightbox" ];
|
||||
orientation: horizontal;
|
||||
background-color: transparent;
|
||||
}
|
||||
rightbox {
|
||||
background-color: #0A041835;
|
||||
width: 45%;
|
||||
children: [ "inputbar", "listview" ];
|
||||
border-radius: 0.65em;
|
||||
border: 1px;
|
||||
border-color: #E5C38F;
|
||||
expand: true;
|
||||
}
|
||||
|
||||
imageBox {
|
||||
width: 45%;
|
||||
padding: 5px;
|
||||
expand: true;
|
||||
background-image: url("/home/kokopi/pictures/rofi-sqrs/sgsqr5.png", height);
|
||||
border-radius: 0.65em; // Optional, for rounded corners
|
||||
}
|
||||
|
||||
inputbar {
|
||||
border: 0 0 1px 0;
|
||||
children: [prompt,entry];
|
||||
border-color: #E5C38F;
|
||||
border-radius: 0px;
|
||||
background-color: #0A041835;
|
||||
}
|
||||
|
||||
prompt {
|
||||
padding: 16px 16px 16px 16px;
|
||||
border-radius:0px;
|
||||
border: 0 1px 0 0;
|
||||
border-color: #060813;
|
||||
text-color: #E5C38F;
|
||||
background-color: #0A041835;
|
||||
}
|
||||
|
||||
/* search bar */
|
||||
entry {
|
||||
padding: 16px;
|
||||
border: 0px;
|
||||
text-color: #BF9FD8;
|
||||
cursor: text;
|
||||
background-color: #0A041835;
|
||||
}
|
||||
|
||||
textbox {
|
||||
background-color: #2e343f;
|
||||
border: 0 0 1px 0;
|
||||
border-color: #282C33;
|
||||
padding: 8px 16px;
|
||||
background-color: #0A041835;
|
||||
}
|
||||
|
||||
listview {
|
||||
cycle: false;
|
||||
margin: 0 0 -1px 0;
|
||||
scrollbar: false;
|
||||
dynamic: true;
|
||||
border-radius: 0px;
|
||||
border: 0;
|
||||
background-color: #0A041835;
|
||||
}
|
||||
|
||||
element {
|
||||
border: 0;
|
||||
padding: 20px;
|
||||
border-radius: 0px;
|
||||
spacing: 1em; /* gap between element-text and element-icon */
|
||||
background-color: #0A041835;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: #0A041800;
|
||||
color: #E5C38F;
|
||||
}
|
||||
element-icon {
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: #BF9FD830;
|
||||
border-radius:0px;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
73
X11/rofi/quickapps.rasi
Normal file
73
X11/rofi/quickapps.rasi
Normal file
@@ -0,0 +1,73 @@
|
||||
// Config //
|
||||
configuration {
|
||||
modi: "drun";
|
||||
show-icons: true;
|
||||
}
|
||||
|
||||
@theme "~/.config/rofi/theme.rasi"
|
||||
|
||||
|
||||
// Main //
|
||||
window {
|
||||
transparency: "real";
|
||||
fullscreen: false;
|
||||
enabled: true;
|
||||
cursor: "default";
|
||||
spacing: 0em;
|
||||
padding: 0em;
|
||||
background-color: @main-bg;
|
||||
}
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 0em;
|
||||
padding: 0em;
|
||||
orientation: horizontal;
|
||||
children: [ "listbox" ];
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
|
||||
// Lists //
|
||||
listbox {
|
||||
padding: 0em;
|
||||
spacing: 0em;
|
||||
orientation: horizontal;
|
||||
children: [ "listview" ];
|
||||
background-color: transparent;
|
||||
}
|
||||
listview {
|
||||
padding: 2px;
|
||||
spacing: 0em;
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
flow: horizontal;
|
||||
reverse: false;
|
||||
fixed-height: false;
|
||||
fixed-columns: false;
|
||||
cursor: "default";
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
|
||||
// Elements //
|
||||
element {
|
||||
orientation: vertical;
|
||||
enabled: true;
|
||||
spacing: 0em;
|
||||
padding: 0em;
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: @main-fg;
|
||||
}
|
||||
element-icon {
|
||||
cursor: inherit;
|
||||
background-color: transparent;
|
||||
}
|
||||
element-text {
|
||||
enabled: false;
|
||||
}
|
||||
19
X11/rofi/runrofi.sh
Executable file
19
X11/rofi/runrofi.sh
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
IMAGE_DIR=~/pictures/rofi-sqrs
|
||||
THEME_FILE=~/.config/rofi/config.rasi
|
||||
LOG_FILE=~/.config/rofi/.randomized_image.log
|
||||
|
||||
IMAGE=$(find "$IMAGE_DIR" -type f | sort -R | head -n 1)
|
||||
LAST_IMAGE=$(cat ~/.config/rofi/.randomized_image.log)
|
||||
|
||||
while true; do
|
||||
if [[ "$IMAGE" != "$LAST_IMAGE" ]]; then
|
||||
echo "$IMAGE" > $LOG_FILE
|
||||
break
|
||||
fi
|
||||
IMAGE=$(find "$IMAGE_DIR" -type f | sort -R | head -n 1)
|
||||
done
|
||||
|
||||
sed -i "s|background-image: url(\".*\", height);|background-image: url(\"$IMAGE\", height);|" $THEME_FILE
|
||||
|
||||
rofi -show drun -theme $THEME_FILE
|
||||
85
X11/rofi/selector.rasi
Normal file
85
X11/rofi/selector.rasi
Normal file
@@ -0,0 +1,85 @@
|
||||
// Config //
|
||||
configuration {
|
||||
modi: "drun";
|
||||
show-icons: true;
|
||||
drun-display-format: "{name}";
|
||||
font: "JetBrainsMono Nerd Font 10";
|
||||
}
|
||||
|
||||
@theme "~/.config/rofi/theme.rasi"
|
||||
|
||||
|
||||
// Main //
|
||||
window {
|
||||
enabled: true;
|
||||
fullscreen: false;
|
||||
transparency: "real";
|
||||
cursor: "default";
|
||||
spacing: 0em;
|
||||
padding: 0em;
|
||||
border: 0em;
|
||||
border-radius: 0em;
|
||||
border-color: transparent;
|
||||
background-color: @main-bg;
|
||||
}
|
||||
mainbox {
|
||||
enabled: true;
|
||||
orientation: horizontal;
|
||||
children: [ "dummy", "frame", "dummy" ];
|
||||
background-color: transparent;
|
||||
}
|
||||
frame {
|
||||
children: [ "listview" ];
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
|
||||
// Lists //
|
||||
listview {
|
||||
enabled: true;
|
||||
spacing: 4em;
|
||||
padding: 4em;
|
||||
columns: 10;
|
||||
lines: 1;
|
||||
dynamic: false;
|
||||
fixed-height: false;
|
||||
fixed-columns: true;
|
||||
reverse: true;
|
||||
cursor: "default";
|
||||
background-color: transparent;
|
||||
text-color: @main-fg;
|
||||
}
|
||||
dummy {
|
||||
width: 2em;
|
||||
expand: false;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
|
||||
// Elements //
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 0em;
|
||||
padding: 0em;
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
text-color: @main-fg;
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: @select-bg;
|
||||
text-color: @select-fg;
|
||||
}
|
||||
element-icon {
|
||||
cursor: inherit;
|
||||
size: 10em;
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
expand: false;
|
||||
}
|
||||
element-text {
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
cursor: inherit;
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
}
|
||||
10
X11/rofi/theme.rasi
Normal file
10
X11/rofi/theme.rasi
Normal file
@@ -0,0 +1,10 @@
|
||||
* {
|
||||
main-bg: #11111be6;
|
||||
main-fg: #cdd6f4ff;
|
||||
main-br: #cba6f7ff;
|
||||
main-ex: #f5e0dcff;
|
||||
select-bg: #b4befeff;
|
||||
select-fg: #11111bff;
|
||||
separatorcolor: transparent;
|
||||
border-color: transparent;
|
||||
}
|
||||
1
X11/starship/README.md
Normal file
1
X11/starship/README.md
Normal file
@@ -0,0 +1 @@
|
||||
~/.config/starship.toml
|
||||
58
X11/starship/starship.toml
Executable file
58
X11/starship/starship.toml
Executable file
@@ -0,0 +1,58 @@
|
||||
add_newline = false
|
||||
|
||||
[character]
|
||||
# Prompt format
|
||||
vicmd_symbol = "[V](bold green) "
|
||||
format = """
|
||||
[┌──────────────────────────────────────────────](fg:#CC59B0)
|
||||
[└─>](fg:#CC59B0) """
|
||||
|
||||
[username]
|
||||
style_user = "fg:#CC99CC"
|
||||
style_root = "white"
|
||||
format = " [$user]($style)[@](bold yellow)"
|
||||
disabled = false
|
||||
show_always = true
|
||||
|
||||
[hostname]
|
||||
ssh_only = false
|
||||
format = "[$hostname](bold fg:#CC59B0): "
|
||||
disabled = false
|
||||
|
||||
[directory]
|
||||
read_only = "🔒"
|
||||
read_only_style= "bold white"
|
||||
style = "fg:#E5C38F"
|
||||
|
||||
[docker_context]
|
||||
format = "via [🐋 $context](blue bold)"
|
||||
|
||||
[cmd_duration]
|
||||
disabled = true
|
||||
|
||||
[aws]
|
||||
format = "on [$symbol$profile]($style) "
|
||||
style = "bold cyan"
|
||||
symbol = "🅰 "
|
||||
|
||||
[aws.region_aliases]
|
||||
us-east-1 = "est-1"
|
||||
|
||||
# Git
|
||||
[git_branch]
|
||||
style = "fg:white bg:black"
|
||||
|
||||
[git_status]
|
||||
style = "fg:#E29191"
|
||||
|
||||
# Language Environments
|
||||
[package]
|
||||
style = "bold fg:#5E5E5E"
|
||||
|
||||
[python]
|
||||
style = "bold fg:#5E5E5E"
|
||||
symbol = "[](bold yellow) "
|
||||
|
||||
[nodejs]
|
||||
style = "bold fg:#5E5E5E"
|
||||
symbol = "[⬢](bold green) "
|
||||
5
X11/sxhkd/README.md
Normal file
5
X11/sxhkd/README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
~/.config/sxhkd/sxhkdrc
|
||||
|
||||
# Setup
|
||||
- Move `scripts/` stuff into `/bin`
|
||||
- Run `sudo chmod 777` on all the scripts
|
||||
37
X11/sxhkd/scripts/bspwm_resize
Normal file
37
X11/sxhkd/scripts/bspwm_resize
Normal file
@@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
#++ requirements:
|
||||
#+ sudo pacman -S xdo
|
||||
size=${2:-'10'}
|
||||
dir=$1
|
||||
|
||||
is_tiled() {
|
||||
bspc query -T -n | grep -q '"state":"tiled"'
|
||||
}
|
||||
if ! is_tiled; then
|
||||
case "$dir" in
|
||||
west) switch="-w"
|
||||
sign="-"
|
||||
;;
|
||||
east) switch="-w"
|
||||
sign="+"
|
||||
;;
|
||||
north) switch="-h"
|
||||
sign="-"
|
||||
;;
|
||||
south) switch="-h"
|
||||
sign="+"
|
||||
;;
|
||||
esac
|
||||
xdo resize ${switch} ${sign}${size}
|
||||
else
|
||||
case "$dir" in
|
||||
west) bspc node @west -r -$size || bspc node @east -r -${size}
|
||||
;;
|
||||
east) bspc node @west -r +$size || bspc node @east -r +${size}
|
||||
;;
|
||||
north) bspc node @south -r -$size || bspc node @north -r -${size}
|
||||
;;
|
||||
south) bspc node @south -r +$size || bspc node @north -r +${size}
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
85
X11/sxhkd/scripts/euclid_mover
Normal file
85
X11/sxhkd/scripts/euclid_mover
Normal file
@@ -0,0 +1,85 @@
|
||||
#!/bin/bash
|
||||
# Originally by https://github.com/windelicato/
|
||||
|
||||
size=${2:-'20'}
|
||||
dir=$1
|
||||
|
||||
transplanter() {
|
||||
bspc node ${dir} -p south && bspc node -n ${dir}
|
||||
}
|
||||
|
||||
northplanter() {
|
||||
bspc node north -p north && bspc node -n north
|
||||
}
|
||||
|
||||
rootplanter() {
|
||||
bspc node @/ -p ${dir} && bspc node -n @/ || bspc node -s next.local && bspc node -n @/
|
||||
bspc node @/ -p cancel
|
||||
}
|
||||
|
||||
bspc config pointer_follows_focus true
|
||||
# Find current window mode
|
||||
is_floating() {
|
||||
bspc query -T -n | grep -q '"state":"floating"'
|
||||
}
|
||||
# If the window is floating, move it
|
||||
if is_floating; then
|
||||
#only parse input if window is floating,tiled windows accept input as is
|
||||
case "$dir" in
|
||||
west) switch="-x"
|
||||
sign="-"
|
||||
;;
|
||||
east) switch="-x"
|
||||
sign="+"
|
||||
;;
|
||||
north) switch="-y"
|
||||
sign="-"
|
||||
;;
|
||||
*) switch="-y"
|
||||
sign="+"
|
||||
;;
|
||||
esac
|
||||
xdo move ${switch} ${sign}${size}
|
||||
|
||||
# Otherwise, window is tiled: switch with window in given direction
|
||||
else
|
||||
if [[ $(bspc query -N -n .local.\!floating | wc -l) != 2 ]]; then
|
||||
case "$dir" in
|
||||
north) northplanter || rootplanter
|
||||
;;
|
||||
*) transplanter || rootplanter
|
||||
;;
|
||||
esac
|
||||
else
|
||||
case "$dir" in
|
||||
east) bspc node -s east || bspc query -N -n west.local || \
|
||||
if bspc query -N -n south.local ; then
|
||||
bspc node @/ -R 90
|
||||
else
|
||||
bspc node @/ -R 270
|
||||
fi
|
||||
;;
|
||||
west) bspc node -s west || bspc query -N -n east.local || \
|
||||
if bspc query -N -n north.local ; then
|
||||
bspc node @/ -R 90
|
||||
else
|
||||
bspc node @/ -R 270
|
||||
fi
|
||||
;;
|
||||
south) bspc node -s south || bspc query -N -n north.local || \
|
||||
if bspc query -N -n west.local ; then
|
||||
bspc node @/ -R 90
|
||||
else
|
||||
bspc node @/ -R 270
|
||||
fi
|
||||
;;
|
||||
*) bspc node -s north || bspc query -N -n south.local || \
|
||||
if bspc query -N -n west.local ; then
|
||||
bspc node @/ -R 270
|
||||
else
|
||||
bspc node @/ -R 90
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
13
X11/sxhkd/scripts/focusmover
Normal file
13
X11/sxhkd/scripts/focusmover
Normal file
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
#Focus windows by direction, works with multihead
|
||||
#called like this in sxhkdrc:
|
||||
#super + {a,s,w,d}
|
||||
# focusmover {west,south,north,east}
|
||||
bspc config pointer_follows_monitor true; \
|
||||
bspc config pointer_follows_focus true; \
|
||||
dir=$@; \
|
||||
if ! bspc node -f $dir; then \
|
||||
bspc monitor -f $dir; \
|
||||
fi; \
|
||||
bspc config pointer_follows_monitor false; \
|
||||
bspc config pointer_follows_focus false
|
||||
165
X11/sxhkd/sxhkdrc
Normal file
165
X11/sxhkd/sxhkdrc
Normal file
@@ -0,0 +1,165 @@
|
||||
#
|
||||
# wm independent hotkeys
|
||||
#
|
||||
|
||||
# terminal emulator
|
||||
super + Return
|
||||
kitty
|
||||
|
||||
super + d
|
||||
~/.config/rofi/runrofi.sh
|
||||
|
||||
# program launcher
|
||||
super + @space
|
||||
dmenu_run
|
||||
|
||||
# make sxhkd reload its configuration files:
|
||||
super + Escape
|
||||
pkill -USR1 -x sxhkd
|
||||
|
||||
# screenshot
|
||||
Print
|
||||
flameshot gui
|
||||
super + Print
|
||||
flameshot full -c
|
||||
|
||||
super + e
|
||||
thunar
|
||||
|
||||
#
|
||||
# bspwm hotkeys
|
||||
#
|
||||
|
||||
# quit/restart bspwm
|
||||
# super + alt + {q,r}
|
||||
# bspc {quit,wm -r}
|
||||
|
||||
super + alt + r
|
||||
bspc wm -r
|
||||
|
||||
# close and kill
|
||||
super + shift + q
|
||||
bspc node -c
|
||||
|
||||
# alternate between the tiled and monocle layout
|
||||
super + m
|
||||
bspc desktop -l next
|
||||
|
||||
# send the newest marked node to the newest preselected node
|
||||
super + y
|
||||
bspc node newest.marked.local -n newest.!automatic.local
|
||||
|
||||
# swap the current node and the biggest window
|
||||
super + g
|
||||
bspc node -s biggest.window
|
||||
|
||||
# cycle workspaces
|
||||
super + alt + {Left,Right}
|
||||
bspc desktop -f {prev,next}
|
||||
#bspc desltop -f {prev,next}.local
|
||||
#
|
||||
# state/flags
|
||||
#
|
||||
|
||||
# set the window state
|
||||
# super + {t,shift + t,s,f}
|
||||
# bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
|
||||
|
||||
super + t
|
||||
{bspc node -t floating && window-placer $(bspc query -T -d | grep -o '"state":"floating"' | wc -l),bspc node -t tiled}
|
||||
|
||||
# set the node flags
|
||||
super + ctrl + {m,x,y,z}
|
||||
bspc node -g {marked,locked,sticky,private}
|
||||
|
||||
#
|
||||
# focus/swap
|
||||
#
|
||||
|
||||
# focus the node in the given direction
|
||||
super + {_,shift + }{h,j,k,l}
|
||||
bspc node -{f,s} {west,south,north,east}
|
||||
|
||||
# focus the node for the given path jump
|
||||
super + {p,b,comma,period}
|
||||
bspc node -f @{parent,brother,first,second}
|
||||
|
||||
# focus the next/previous window in the current desktop
|
||||
super + {_,shift + }c
|
||||
bspc node -f {next,prev}.local.!hidden.window
|
||||
|
||||
# focus the next/previous desktop in the current monitor
|
||||
super + bracket{left,right}
|
||||
bspc desktop -f {prev,next}.local
|
||||
|
||||
# focus the last node/desktop
|
||||
super + {grave,Tab}
|
||||
bspc {node,desktop} -f last
|
||||
|
||||
# focus the older or newer node in the focus history
|
||||
super + {o,i}
|
||||
bspc wm -h off; \
|
||||
bspc node {older,newer} -f; \
|
||||
bspc wm -h on
|
||||
|
||||
# focus or send to the given desktop
|
||||
super + {_,shift + }{1-9,0}
|
||||
bspc {desktop -f,node -d} '^{1-9,10}'
|
||||
|
||||
#
|
||||
# preselect
|
||||
#
|
||||
|
||||
# preselect the direction
|
||||
super + ctrl + {h,j,k,l}
|
||||
bspc node -p {west,south,north,east}
|
||||
|
||||
# preselect the ratio
|
||||
super + ctrl + {1-9}
|
||||
bspc node -o 0.{1-9}
|
||||
|
||||
# cancel the preselection for the focused node
|
||||
super + ctrl + space
|
||||
bspc node -p cancel
|
||||
|
||||
# cancel the preselection for the focused desktop
|
||||
super + ctrl + shift + space
|
||||
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
|
||||
|
||||
#
|
||||
# move/resize
|
||||
#
|
||||
|
||||
# expand a window by moving one of its side outward
|
||||
super + alt + {h,j,k,l}
|
||||
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
|
||||
|
||||
# contract a window by moving one of its side inward
|
||||
super + alt + shift + {h,j,k,l}
|
||||
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
|
||||
|
||||
# Scripts below require chown of root:root and chmod 777, and put them in /bin folder
|
||||
# move focus in direction
|
||||
super + {Left,Down,Up,Right}
|
||||
focusmover {west,south,north,east}
|
||||
# force window into direction
|
||||
super + shift + {Left,Down,Up,Right}
|
||||
euclid_mover {west,south,north,east}
|
||||
# resize window
|
||||
super + ctrl + {Left,Down,Up,Right}
|
||||
bspwm_resize {west,south,north,east}
|
||||
|
||||
# framework brightness
|
||||
XF86MonBrightnessUp
|
||||
python ~/00/framework_arch_tools/brightness.py +
|
||||
XF86MonBrightnessDown
|
||||
python ~/00/framework_arch_tools/brightness.py -
|
||||
|
||||
XF86AudioRaiseVolume
|
||||
sh ~/00/framework_arch_tools/volume.sh up
|
||||
|
||||
XF86AudioLowerVolume
|
||||
sh ~/00/framework_arch_tools/volume.sh down
|
||||
|
||||
XF86AudioMute
|
||||
sh ~/00/framework_arch_tools/volume.sh mute
|
||||
14
X11/systemd/root/README.md
Normal file
14
X11/systemd/root/README.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Root Systemd
|
||||
|
||||
Put services in `/etc/systemd/system/*`
|
||||
|
||||
Run:
|
||||
|
||||
```
|
||||
sudo systemctl enable myservice@USERNAME.service
|
||||
sudo systemctl start myservice@USERNAME.service
|
||||
```
|
||||
|
||||
Files:
|
||||
|
||||
Check the service file for where the scripts should be located
|
||||
15
X11/systemd/root/betterlockscreen.service
Normal file
15
X11/systemd/root/betterlockscreen.service
Normal file
@@ -0,0 +1,15 @@
|
||||
[Unit]
|
||||
Description=Lockscreen
|
||||
Before=sleep.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=kokopi
|
||||
Environment=DISPLAY=:0
|
||||
ExecStart=/bin/betterlockscreen -l
|
||||
ExecStartPost=/bin/sleep 1
|
||||
|
||||
[Install]
|
||||
WantedBy=sleep.target
|
||||
WantedBy=suspend.target
|
||||
WantedBy=hibernate.target
|
||||
26
X11/systemd/root/i3lock-main
Executable file
26
X11/systemd/root/i3lock-main
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
###
|
||||
# --keyhl = color of inside the ring when typing
|
||||
# --bshl = color of inside the ring when backspacing
|
||||
###
|
||||
i3lock --image=/home/kokopi/pictures/redjuice.png -F \
|
||||
--radius=120 --ring-width=8 \
|
||||
--inside-color=ffffffaa \
|
||||
--ring-color=333333aa \
|
||||
--line-color=00000000 \
|
||||
--separator-color=00000000 \
|
||||
--insidewrong-color=ff000033 \
|
||||
--ringwrong-color=ff0000aa \
|
||||
\
|
||||
--keyhl-color=000000 \
|
||||
--bshl-color=ff4444 \
|
||||
\
|
||||
--clock --indicator \
|
||||
--time-color=333333 \
|
||||
--date-color=555555 \
|
||||
--clock --indicator \
|
||||
--noinput-text="Empty" \
|
||||
\
|
||||
--insidever-color=ffffff22 \
|
||||
--ringver-color=ffffffaa \
|
||||
--verif-color=ffffff
|
||||
14
X11/systemd/root/i3lockscreen@.service
Normal file
14
X11/systemd/root/i3lockscreen@.service
Normal file
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Lock screen before suspend
|
||||
Before=sleep.target suspend.target hibernate.target
|
||||
|
||||
[Service]
|
||||
User=%i
|
||||
Type=forking
|
||||
Environment=DISPLAY=:0
|
||||
ExecStart=/bin/bash /home/%i/.local/bin/lock-on-suspend
|
||||
TimeoutSec=10
|
||||
RemainAfterExit=no
|
||||
|
||||
[Install]
|
||||
WantedBy=sleep.target suspend.target hibernate.target
|
||||
38
X11/systemd/root/lock-on-suspend
Executable file
38
X11/systemd/root/lock-on-suspend
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
# Lock on suspend script
|
||||
# Save as /usr/local/bin/lock-on-suspend
|
||||
|
||||
# Get the user who is logged in to X
|
||||
USER=$(who | grep '(:0)' | awk '{print $1}' | head -n1)
|
||||
|
||||
# If no user found, try alternative method
|
||||
if [[ -z "$USER" ]]; then
|
||||
USER=$(ps aux | grep -E "(xinit|startx)" | grep -v grep | awk '{print $1}' | head -n1)
|
||||
fi
|
||||
|
||||
# Exit if no user found
|
||||
if [[ -z "$USER" ]]; then
|
||||
echo "No X user found"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Get user's home directory
|
||||
USER_HOME=$(getent passwd "$USER" | cut -d: -f6)
|
||||
|
||||
# Set environment variables for the user's X session
|
||||
export DISPLAY=:0
|
||||
export XAUTHORITY="$USER_HOME/.Xauthority"
|
||||
|
||||
# Path to your lock script (adjust this to your actual lock script path)
|
||||
LOCK_SCRIPT="$USER_HOME/.local/bin/i3lock-main"
|
||||
|
||||
# Lock as the user
|
||||
if [[ -f "$LOCK_SCRIPT" ]]; then
|
||||
sudo -u "$USER" "$LOCK_SCRIPT" &
|
||||
else
|
||||
# Fallback to basic i3lock
|
||||
sudo -u "$USER" i3lock --color=1a1a1a --clock --indicator &
|
||||
fi
|
||||
|
||||
# Give lock time to start
|
||||
sleep 1
|
||||
10
X11/systemd/user/README.md
Normal file
10
X11/systemd/user/README.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# User Systemd
|
||||
|
||||
Put services in `~/.config/systemd/user/*`
|
||||
|
||||
Run:
|
||||
|
||||
```
|
||||
systemctl --user enable myservice.service
|
||||
systemctl --user start myservice
|
||||
```
|
||||
9
X11/systemd/user/ibus-env.service
Normal file
9
X11/systemd/user/ibus-env.service
Normal file
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=ibus environment initialization
|
||||
Before=xorg.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/systemctl --user set-environment XMODIFIERS=@im=ibus
|
||||
ExecStart=/usr/bin/systemctl --user set-environment GTK_IM_MODULE=ibus
|
||||
ExecStart=/usr/bin/systemctl --user set-environment QT_IM_MODULE=ibus
|
||||
11
X11/systemd/user/ibus.service
Normal file
11
X11/systemd/user/ibus.service
Normal file
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=ibus daemon
|
||||
Wants=ibus-env.service
|
||||
After=xorg.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/ibus-daemon
|
||||
Restart=on-abort
|
||||
|
||||
[Install]
|
||||
WantedBy=xorg.target
|
||||
19
X11/xorg/README.md
Normal file
19
X11/xorg/README.md
Normal file
@@ -0,0 +1,19 @@
|
||||
Files:
|
||||
- `Xresources` -> `~/.Xresources`
|
||||
- `.xinitrc` -> `~/.xinitrc`
|
||||
- `.xserverrc` -> `~/.xserverrc`
|
||||
- `xorg.conf.d/30-touchpad.conf` -> `/etc/X11/xorg.conf.d/30-touchpad.conf`
|
||||
- `xorg.conf.d/40-libinput.conf` -> `/etc/X11/xorg.conf.d/40-libinput.conf`
|
||||
- `xorg.conf` -> `/etc/X11/xorg.conf`
|
||||
|
||||
---
|
||||
|
||||
Xorg conf generation:
|
||||
https://wiki.archlinux.org/title/xorg : 3.2
|
||||
|
||||
---
|
||||
Test keystrokes with command:
|
||||
```
|
||||
xinput list
|
||||
xinput test <device>
|
||||
```
|
||||
3
X11/xorg/Xresources
Normal file
3
X11/xorg/Xresources
Normal file
@@ -0,0 +1,3 @@
|
||||
Xcursor.theme: phinger-cursors-dark
|
||||
Xcursor.size: 24
|
||||
Xft.dpi: 120
|
||||
45
X11/xorg/xinitrc
Normal file
45
X11/xorg/xinitrc
Normal file
@@ -0,0 +1,45 @@
|
||||
#!/bin/sh
|
||||
|
||||
userresources=$HOME/.Xresources
|
||||
usermodmap=$HOME/.Xmodmap
|
||||
sysresources=/etc/X11/xinit/.Xresources
|
||||
sysmodmap=/etc/X11/xinit/.Xmodmap
|
||||
|
||||
# merge in defaults and keymaps
|
||||
|
||||
if [ -f $sysresources ]; then
|
||||
xrdb -merge $sysresources
|
||||
fi
|
||||
|
||||
if [ -f $sysmodmap ]; then
|
||||
xmodmap $sysmodmap
|
||||
fi
|
||||
|
||||
if [ -f "$userresources" ]; then
|
||||
xrdb -merge "$userresources"
|
||||
fi
|
||||
|
||||
if [ -f "$usermodmap" ]; then
|
||||
xmodmap "$usermodmap"
|
||||
fi
|
||||
|
||||
# start some nice programs
|
||||
|
||||
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
|
||||
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
|
||||
[ -x "$f" ] && . "$f"
|
||||
done
|
||||
unset f
|
||||
fi
|
||||
|
||||
# japanese keyboard
|
||||
ibus-daemon -rxRd
|
||||
|
||||
# fix X cursor issue with bspwm
|
||||
xsetroot -cursor_name left_ptr
|
||||
|
||||
# TODO find a way to lock on tty and still have the option for tty
|
||||
betterlockscreen -l
|
||||
|
||||
# exec runs last
|
||||
exec bspwm
|
||||
109
X11/xorg/xorg.conf
Normal file
109
X11/xorg/xorg.conf
Normal file
@@ -0,0 +1,109 @@
|
||||
Section "ServerLayout"
|
||||
Identifier "X.org Configured"
|
||||
Screen 0 "Screen0" 0 0
|
||||
InputDevice "Mouse0" "CorePointer"
|
||||
InputDevice "Keyboard0" "CoreKeyboard"
|
||||
EndSection
|
||||
|
||||
Section "Files"
|
||||
ModulePath "/usr/lib/xorg/modules"
|
||||
FontPath "/usr/share/fonts/misc"
|
||||
FontPath "/usr/share/fonts/TTF"
|
||||
FontPath "/usr/share/fonts/OTF"
|
||||
FontPath "/usr/share/fonts/Type1"
|
||||
FontPath "/usr/share/fonts/100dpi"
|
||||
FontPath "/usr/share/fonts/75dpi"
|
||||
EndSection
|
||||
|
||||
Section "Module"
|
||||
Load "glx"
|
||||
EndSection
|
||||
|
||||
Section "InputDevice"
|
||||
Identifier "Keyboard0"
|
||||
Driver "kbd"
|
||||
EndSection
|
||||
|
||||
Section "InputDevice"
|
||||
Identifier "Mouse0"
|
||||
Driver "mouse"
|
||||
Option "Protocol" "auto"
|
||||
Option "Device" "/dev/input/mice"
|
||||
Option "ZAxisMapping" "4 5 6 7"
|
||||
EndSection
|
||||
|
||||
Section "Monitor"
|
||||
Identifier "Monitor0"
|
||||
VendorName "Monitor Vendor"
|
||||
ModelName "Monitor Model"
|
||||
EndSection
|
||||
|
||||
Section "Device"
|
||||
### Available Driver options are:-
|
||||
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
|
||||
### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
|
||||
### <percent>: "<f>%"
|
||||
### [arg]: arg optional
|
||||
#Option "Accel" # [<bool>]
|
||||
#Option "AccelMethod" # <str>
|
||||
#Option "Backlight" # <str>
|
||||
#Option "CustomEDID" # <str>
|
||||
#Option "DRI" # <str>
|
||||
#Option "Present" # [<bool>]
|
||||
#Option "ColorKey" # <i>
|
||||
#Option "VideoKey" # <i>
|
||||
#Option "Tiling" # [<bool>]
|
||||
#Option "LinearFramebuffer" # [<bool>]
|
||||
#Option "HWRotation" # [<bool>]
|
||||
#Option "VSync" # [<bool>]
|
||||
#Option "PageFlip" # [<bool>]
|
||||
#Option "SwapbuffersWait" # [<bool>]
|
||||
#Option "TripleBuffer" # [<bool>]
|
||||
#Option "XvPreferOverlay" # [<bool>]
|
||||
#Option "HotPlug" # [<bool>]
|
||||
#Option "ReprobeOutputs" # [<bool>]
|
||||
#Option "XvMC" # [<bool>]
|
||||
#Option "ZaphodHeads" # <str>
|
||||
#Option "VirtualHeads" # <i>
|
||||
#Option "TearFree" # [<bool>]
|
||||
#Option "PerCrtcPixmaps" # [<bool>]
|
||||
#Option "FallbackDebug" # [<bool>]
|
||||
#Option "DebugFlushBatches" # [<bool>]
|
||||
#Option "DebugFlushCaches" # [<bool>]
|
||||
#Option "DebugWait" # [<bool>]
|
||||
#Option "BufferCache" # [<bool>]
|
||||
Identifier "Card0"
|
||||
Driver "intel"
|
||||
BusID "PCI:0:2:0"
|
||||
EndSection
|
||||
|
||||
Section "Screen"
|
||||
Identifier "Screen0"
|
||||
Device "Card0"
|
||||
Monitor "Monitor0"
|
||||
SubSectionSub "Display"
|
||||
Viewport 0 0
|
||||
Depth 1
|
||||
EndSubSection
|
||||
SubSectionSub "Display"
|
||||
Viewport 0 0
|
||||
Depth 4
|
||||
EndSubSection
|
||||
SubSectionSub "Display"
|
||||
Viewport 0 0
|
||||
Depth 8
|
||||
EndSubSection
|
||||
SubSectionSub "Display"
|
||||
Viewport 0 0
|
||||
Depth 15
|
||||
EndSubSection
|
||||
SubSectionSub "Display"
|
||||
Viewport 0 0
|
||||
Depth 16
|
||||
EndSubSection
|
||||
SubSectionSub "Display"
|
||||
Viewport 0 0
|
||||
Depth 24
|
||||
EndSubSection
|
||||
EndSection
|
||||
|
||||
10
X11/xorg/xorg.conf.d/30-touchpad.conf
Normal file
10
X11/xorg/xorg.conf.d/30-touchpad.conf
Normal file
@@ -0,0 +1,10 @@
|
||||
Section "InputClass"
|
||||
Identifier "touchpad"
|
||||
Driver "libinput"
|
||||
MatchIsTouchpad "on"
|
||||
Option "Tapping" "on"
|
||||
Option "ScrollMethod" "two-finger"
|
||||
Option "TapButton1" "1"
|
||||
Option "TapButton2" "2"
|
||||
Option "TapButton3" "3"
|
||||
EndSection
|
||||
52
X11/xorg/xorg.conf.d/40-libinput.conf
Normal file
52
X11/xorg/xorg.conf.d/40-libinput.conf
Normal file
@@ -0,0 +1,52 @@
|
||||
# Match on all types of devices but joysticks
|
||||
#
|
||||
# If you want to configure your devices, do not copy this file.
|
||||
# Instead, use a config snippet that contains something like this:
|
||||
#
|
||||
# Section "InputClass"
|
||||
# Identifier "something or other"
|
||||
# MatchDriver "libinput"
|
||||
#
|
||||
# MatchIsTouchpad "on"
|
||||
# ... other Match directives ...
|
||||
# Option "someoption" "value"
|
||||
# EndSection
|
||||
#
|
||||
# This applies the option any libinput device also matched by the other
|
||||
# directives. See the xorg.conf(5) man page for more info on
|
||||
# matching devices.
|
||||
|
||||
Section "InputClass"
|
||||
Identifier "libinput pointer catchall"
|
||||
MatchIsPointer "on"
|
||||
MatchDevicePath "/dev/input/event*"
|
||||
Driver "libinput"
|
||||
EndSection
|
||||
|
||||
Section "InputClass"
|
||||
Identifier "libinput keyboard catchall"
|
||||
MatchIsKeyboard "on"
|
||||
MatchDevicePath "/dev/input/event*"
|
||||
Driver "libinput"
|
||||
EndSection
|
||||
|
||||
Section "InputClass"
|
||||
Identifier "libinput touchpad catchall"
|
||||
MatchIsTouchpad "on"
|
||||
MatchDevicePath "/dev/input/event*"
|
||||
Driver "libinput"
|
||||
EndSection
|
||||
|
||||
Section "InputClass"
|
||||
Identifier "libinput touchscreen catchall"
|
||||
MatchIsTouchscreen "on"
|
||||
MatchDevicePath "/dev/input/event*"
|
||||
Driver "libinput"
|
||||
EndSection
|
||||
|
||||
Section "InputClass"
|
||||
Identifier "libinput tablet catchall"
|
||||
MatchIsTablet "on"
|
||||
MatchDevicePath "/dev/input/event*"
|
||||
Driver "libinput"
|
||||
EndSection
|
||||
4
X11/xorg/xserverrc
Normal file
4
X11/xorg/xserverrc
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
# logging
|
||||
# exec /usr/bin/Xorg -nolisten tcp "$@" vt$XDG_VTNR > /home/kokopi/xorg_log.txt 2>&1
|
||||
exec /usr/bin/Xorg -nolisten tcp "$@" vt$XDG_VTNR
|
||||
124
arch/install_ref
Normal file
124
arch/install_ref
Normal file
@@ -0,0 +1,124 @@
|
||||
# USE AS REFERENCE, DONT RUN
|
||||
|
||||
# SSD maintenance
|
||||
sudo systemctl enable fstrim.timer
|
||||
sudo systemctl start fstrim.timer
|
||||
|
||||
# needed packages after installing arch
|
||||
# make sure your'e not root when running
|
||||
sudo pacman -S git firefox xorg-server xorg-xinput xorg-xinit xorg-xset xorg-xsetroot neofetch feh rofi pass rsync bat ripgrep fd polybar man-db xclip flameshot peek screenkey tumbler thunar unzip polkit openssh
|
||||
|
||||
# https://wiki.archlinux.org/title/backlight
|
||||
# intel screen brightness control
|
||||
sudo pacman -S xorg-xbacklight
|
||||
|
||||
# fn keys, check dotfiles/acpid
|
||||
sudo pacman -S acpid
|
||||
sudo systemctl start acpid
|
||||
sudo systemctl enable acpid
|
||||
|
||||
# xrandr GUI
|
||||
sudo pacman -S arandr
|
||||
|
||||
# audio
|
||||
## i think sof-firmware is required for asus zenbook UX325E
|
||||
## audio should just work after installing
|
||||
## run alsamixer to change volume in terminal
|
||||
sudo pacman -S pulseaudio pulseaudio-bluetooth pulseaudio-alsa sof-firmware
|
||||
|
||||
#audio GUI
|
||||
sudo pacman -S pavucontrol
|
||||
|
||||
# bluetooth
|
||||
## bluetooth audio should automatically switch sinks
|
||||
## blueman is the GUI, rofi or blueman-manager in terminal
|
||||
sudo pacman -S bluez bluez-utils blueman
|
||||
sudo systemctl start bluetooth.service
|
||||
sudo systemctl enable bluetooth.service
|
||||
|
||||
# dev stuff
|
||||
sudo pacman -S neovim kitty npm rust
|
||||
## python
|
||||
sudo pacman -S tk
|
||||
curl https://pyenv.run | bash
|
||||
|
||||
# japanese fonts
|
||||
sudo pacman -S adobe-source-han-sans-jp-fonts adobe-source-han-serif-jp-fonts otf-ipafont
|
||||
|
||||
# japanese input
|
||||
## https://wiki.archlinux.org/title/Input_Japanese_using_ibus
|
||||
## check docs for setting up the systemd services
|
||||
## user systemctl control: systemctl --user enable ibus.service
|
||||
## ibus-setup will need to use the system python
|
||||
## run: PYTHON=/usr/bin/python ibus-setup
|
||||
## clicking the keyboard icon on current polybar will open it
|
||||
## PC will need to reboot after setting up
|
||||
sudo pacman -S ibus-anthy
|
||||
|
||||
# fonts and symbols for nvim
|
||||
sudo pacman -S ttf-nerd-fonts-symbols ttf-fira-code
|
||||
# emojis
|
||||
sudo pacman -S noto-fonts-emoji
|
||||
# cache fonts
|
||||
fc-cache
|
||||
|
||||
yay -S picom-git
|
||||
|
||||
sudo pacman -S bspwm xdo sxhkd
|
||||
|
||||
# check https://wiki.archlinux.org/title/Xorg : driver installation
|
||||
## amd
|
||||
sudo pacman -S xf86-video-amdgpu mesa vulkan-radeon
|
||||
## intel
|
||||
sudo pacman -S xf86-video-intel mesa vulkan-intel
|
||||
|
||||
# installing yay
|
||||
sudo git clone https://aur.archlinux.org/yay.git /opt
|
||||
sudo chown -R username:username /opt/yay
|
||||
cd /opt/yay;makepkg -si
|
||||
|
||||
# after setting up X
|
||||
|
||||
# https://wiki.archlinux.org/title/Desktop_notifications
|
||||
## setup the service in /usr/share/dbus-1/services
|
||||
sudo pacman -S notification-daemon
|
||||
|
||||
## test with exa -la, set this in bashrc alias for ll and stuff
|
||||
sudo pacman -S exa
|
||||
sudo pacman -S starship
|
||||
|
||||
# database
|
||||
sudo pacman -S postgresql dbeaver
|
||||
|
||||
# gtk3.0 theme
|
||||
# https://github.com/phisch/phinger-cursors
|
||||
# gtk themes are in /usr/share/themes
|
||||
# gtk cursor themes are in /usr/share/icons
|
||||
# systemwide cursor settings are in /usr/share/icons/default/index.theme
|
||||
yay -S juno-ocean-gtk-theme-git phinger-cursors
|
||||
|
||||
# lockscreen
|
||||
# https://github.com/betterlockscreen/betterlockscreen
|
||||
yay -S betterlockscreen
|
||||
|
||||
# bash auto complete
|
||||
# https://github.com/scop/bash-completion
|
||||
sudo pacman -S bash-completion
|
||||
|
||||
# fzf, ctrl+t in term
|
||||
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
|
||||
~/.fzf/install
|
||||
|
||||
# bun
|
||||
curl -fsSL https://bun.sh/install | bash
|
||||
|
||||
#hugo latest extended
|
||||
sudo pacman -S hugo
|
||||
|
||||
# bazecor
|
||||
# install bazecor
|
||||
# chmod u+x Bazecor...
|
||||
# ./Bazecor... --appimage-extract
|
||||
# sudo cp -r usr/* /usr
|
||||
# move the icon into applications folder
|
||||
# move Bazecor.Desktop to .local/share/applications
|
||||
10
bashrc/.bash_profile
Normal file
10
bashrc/.bash_profile
Normal file
@@ -0,0 +1,10 @@
|
||||
#
|
||||
# ~/.bash_profile
|
||||
#
|
||||
|
||||
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
||||
|
||||
# bspwm with X startup
|
||||
# exec startx
|
||||
export XCURSOR_THEME=Cappuccin-Mocha-Dark
|
||||
exec Hyprland
|
||||
29
bashrc/.bashrc
Normal file
29
bashrc/.bashrc
Normal file
@@ -0,0 +1,29 @@
|
||||
# base commands to be copied
|
||||
|
||||
# basic
|
||||
alias ls='ls --color=auto'
|
||||
alias ll='ls -l'
|
||||
alias lll='ls -la'
|
||||
alias v='nvim'
|
||||
alias ..='cd ..'
|
||||
alias ux='chmod u+x'
|
||||
alias venva='source venv/bin/activate'
|
||||
alias mkdir='mkdir -p'
|
||||
function fsize() {
|
||||
du -sh "$1"
|
||||
}
|
||||
|
||||
# basic enhanced
|
||||
alias ll='exa -lg --icons'
|
||||
alias lll='exa -lga'
|
||||
alias cat='bat --style=header,grid'
|
||||
|
||||
# git
|
||||
alias gadd='git add'
|
||||
alias gdiff='git diff'
|
||||
alias mpush='git push origin master'
|
||||
alias gstat='git status'
|
||||
function gcom() {
|
||||
GITMESSAGE="$*"
|
||||
git commit -m "$GITMESSAGE"
|
||||
}
|
||||
7
grub/README.md
Normal file
7
grub/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Grub
|
||||
|
||||
Current kernel parameters are specifically for the zenbook
|
||||
|
||||
`default.grub` -> `/etc/default/grub`
|
||||
|
||||
`sudo grub-mkconfig -o /boot/grub/grub.cfg` -> save config changes/kernel params
|
||||
64
grub/default.grub
Normal file
64
grub/default.grub
Normal file
@@ -0,0 +1,64 @@
|
||||
# GRUB boot loader configuration
|
||||
|
||||
GRUB_DEFAULT=0
|
||||
GRUB_TIMEOUT=5
|
||||
GRUB_DISTRIBUTOR="Arch"
|
||||
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet splash resume=UUID=73516262-7c1a-4fcf-946d-e8ff434cab26 iommu=soft"
|
||||
GRUB_CMDLINE_LINUX=""
|
||||
GRUB_WALLPAPER="/grub/abs8.png"
|
||||
|
||||
# Preload both GPT and MBR modules so that they are not missed
|
||||
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
|
||||
|
||||
# Uncomment to enable booting from LUKS encrypted devices
|
||||
#GRUB_ENABLE_CRYPTODISK=y
|
||||
|
||||
# Set to 'countdown' or 'hidden' to change timeout behavior,
|
||||
# press ESC key to display menu.
|
||||
GRUB_TIMEOUT_STYLE=menu
|
||||
|
||||
# Uncomment to use basic console
|
||||
GRUB_TERMINAL_INPUT=console
|
||||
|
||||
# Uncomment to disable graphical terminal
|
||||
#GRUB_TERMINAL_OUTPUT=console
|
||||
|
||||
# The resolution used on graphical terminal
|
||||
# note that you can use only modes which your graphic card supports via VBE
|
||||
# you can see them in real GRUB with the command `videoinfo'
|
||||
GRUB_GFXMODE=1920x1080x32,auto
|
||||
|
||||
# Uncomment to allow the kernel use the same resolution used by grub
|
||||
GRUB_GFXPAYLOAD_LINUX=keep
|
||||
|
||||
# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
|
||||
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
|
||||
#GRUB_DISABLE_LINUX_UUID=true
|
||||
|
||||
# Uncomment to disable generation of recovery mode menu entries
|
||||
GRUB_DISABLE_RECOVERY=true
|
||||
|
||||
# Uncomment and set to the desired menu colors. Used by normal and wallpaper
|
||||
# modes only. Entries specified as foreground/background.
|
||||
#GRUB_COLOR_NORMAL="light-blue/black"
|
||||
#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
|
||||
|
||||
# Uncomment one of them for the gfx desired, a image background or a gfxtheme
|
||||
#GRUB_BACKGROUND="/path/to/wallpaper"
|
||||
#GRUB_THEME="/path/to/gfxtheme"
|
||||
|
||||
# Uncomment to get a beep at GRUB start
|
||||
#GRUB_INIT_TUNE="480 440 1"
|
||||
|
||||
# Uncomment to make GRUB remember the last selection. This requires
|
||||
# setting 'GRUB_DEFAULT=saved' above.
|
||||
#GRUB_SAVEDEFAULT=true
|
||||
|
||||
# Uncomment to disable submenus in boot menu
|
||||
#GRUB_DISABLE_SUBMENU=y
|
||||
|
||||
# Probing for other operating systems is disabled for security reasons. Read
|
||||
# documentation on GRUB_DISABLE_OS_PROBER, if still want to enable this
|
||||
# functionality install os-prober and uncomment to detect and include other
|
||||
# operating systems.
|
||||
GRUB_DISABLE_OS_PROBER=false
|
||||
257
hyprland/btop/btop.conf
Normal file
257
hyprland/btop/btop.conf
Normal file
@@ -0,0 +1,257 @@
|
||||
#? Config file for btop v. 1.4.5
|
||||
|
||||
#* 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 = "catppuccin_mocha"
|
||||
|
||||
#* 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 = 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 = "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 = False
|
||||
|
||||
#* 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
|
||||
|
||||
#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
|
||||
show_cpu_watts = 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 " ".
|
||||
#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", 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 = ""
|
||||
|
||||
#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
|
||||
base_10_bitrate = "Auto"
|
||||
|
||||
#* 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
|
||||
|
||||
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
|
||||
rsmi_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 = ""
|
||||
83
hyprland/btop/themes/catppuccin_mocha.theme
Normal file
83
hyprland/btop/themes/catppuccin_mocha.theme
Normal file
@@ -0,0 +1,83 @@
|
||||
# Main background, empty for terminal default, need to be empty if you want transparent background
|
||||
theme[main_bg]=""
|
||||
|
||||
# Main text color
|
||||
theme[main_fg]="#cdd6f4"
|
||||
|
||||
# Title color for boxes
|
||||
theme[title]="#cdd6f4"
|
||||
|
||||
# Highlight color for keyboard shortcuts
|
||||
theme[hi_fg]="#89b4fa"
|
||||
|
||||
# Background color of selected item in processes box
|
||||
theme[selected_bg]="#45475a"
|
||||
|
||||
# Foreground color of selected item in processes box
|
||||
theme[selected_fg]="#89b4fa"
|
||||
|
||||
# Color of inactive/disabled text
|
||||
theme[inactive_fg]="#7f849c"
|
||||
|
||||
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
|
||||
theme[graph_text]="#f5e0dc"
|
||||
|
||||
# Background color of the percentage meters
|
||||
theme[meter_bg]="#45475a"
|
||||
|
||||
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
||||
theme[proc_misc]="#f5e0dc"
|
||||
|
||||
# CPU, Memory, Network, Proc box outline colors
|
||||
theme[cpu_box]="#cba6f7" #Mauve
|
||||
theme[mem_box]="#a6e3a1" #Green
|
||||
theme[net_box]="#eba0ac" #Maroon
|
||||
theme[proc_box]="#89b4fa" #Blue
|
||||
|
||||
# Box divider line and small boxes line color
|
||||
theme[div_line]="#6c7086"
|
||||
|
||||
# Temperature graph color (Green -> Yellow -> Red)
|
||||
theme[temp_start]="#a6e3a1"
|
||||
theme[temp_mid]="#f9e2af"
|
||||
theme[temp_end]="#f38ba8"
|
||||
|
||||
# CPU graph colors (Teal -> Lavender)
|
||||
theme[cpu_start]="#94e2d5"
|
||||
theme[cpu_mid]="#74c7ec"
|
||||
theme[cpu_end]="#b4befe"
|
||||
|
||||
# Mem/Disk free meter (Mauve -> Lavender -> Blue)
|
||||
theme[free_start]="#cba6f7"
|
||||
theme[free_mid]="#b4befe"
|
||||
theme[free_end]="#89b4fa"
|
||||
|
||||
# Mem/Disk cached meter (Sapphire -> Lavender)
|
||||
theme[cached_start]="#74c7ec"
|
||||
theme[cached_mid]="#89b4fa"
|
||||
theme[cached_end]="#b4befe"
|
||||
|
||||
# Mem/Disk available meter (Peach -> Red)
|
||||
theme[available_start]="#fab387"
|
||||
theme[available_mid]="#eba0ac"
|
||||
theme[available_end]="#f38ba8"
|
||||
|
||||
# Mem/Disk used meter (Green -> Sky)
|
||||
theme[used_start]="#a6e3a1"
|
||||
theme[used_mid]="#94e2d5"
|
||||
theme[used_end]="#89dceb"
|
||||
|
||||
# Download graph colors (Peach -> Red)
|
||||
theme[download_start]="#fab387"
|
||||
theme[download_mid]="#eba0ac"
|
||||
theme[download_end]="#f38ba8"
|
||||
|
||||
# Upload graph colors (Green -> Sky)
|
||||
theme[upload_start]="#a6e3a1"
|
||||
theme[upload_mid]="#94e2d5"
|
||||
theme[upload_end]="#89dceb"
|
||||
|
||||
# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
|
||||
theme[process_start]="#74c7ec"
|
||||
theme[process_mid]="#b4befe"
|
||||
theme[process_end]="#cba6f7"
|
||||
26
hyprland/fastfetch/config.jsonc
Normal file
26
hyprland/fastfetch/config.jsonc
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"modules": [
|
||||
"title",
|
||||
"separator",
|
||||
"os",
|
||||
"kernel",
|
||||
"uptime",
|
||||
"packages",
|
||||
"shell",
|
||||
"de",
|
||||
"wm",
|
||||
{
|
||||
"type": "theme",
|
||||
"key": "Theme"
|
||||
},
|
||||
{
|
||||
"type": "icons",
|
||||
"key": "Icons"
|
||||
},
|
||||
"terminal",
|
||||
"cpu",
|
||||
"gpu",
|
||||
"memory",
|
||||
"colors"
|
||||
]
|
||||
}
|
||||
52
hyprland/ghostty/config
Normal file
52
hyprland/ghostty/config
Normal file
@@ -0,0 +1,52 @@
|
||||
# This is the configuration file for Ghostty.
|
||||
#
|
||||
# This template file has been automatically created at the following
|
||||
# path since Ghostty couldn't find any existing config files on your system:
|
||||
#
|
||||
# /home/kokopi/.config/ghostty/config
|
||||
#
|
||||
# The template does not set any default options, since Ghostty ships
|
||||
# with sensible defaults for all options. Users should only need to set
|
||||
# options that they want to change from the default.
|
||||
#
|
||||
# Run `ghostty +show-config --default --docs` to view a list of
|
||||
# all available config options and their default values.
|
||||
#
|
||||
# Additionally, each config option is also explained in detail
|
||||
# on Ghostty's website, at https://ghostty.org/docs/config.
|
||||
|
||||
theme = navarch
|
||||
|
||||
font-size = 12.5
|
||||
font-family = "Geist Mono"
|
||||
window-padding-x = 10
|
||||
window-padding-y = 10
|
||||
window-padding-color = background
|
||||
window-title-font-family = "Geist"
|
||||
window-theme = ghostty
|
||||
window-inherit-working-directory = true
|
||||
window-inherit-font-size = true
|
||||
focus-follows-mouse = true
|
||||
gtk-tabs-location = bottom
|
||||
background = #14111C
|
||||
background-opacity = 0.35
|
||||
background-blur = true
|
||||
foreground = #E6DDD1
|
||||
cursor-style = bar
|
||||
# # Any line beginning with a # is a comment. It's not possible to put
|
||||
# # a comment after a config option, since it would be interpreted as a
|
||||
# # part of the value. For example, this will have a value of "#123abc":
|
||||
# background = #123abc
|
||||
#
|
||||
# # Empty values are used to reset config keys to default.
|
||||
# key =
|
||||
#
|
||||
# # Some config options have unique syntaxes for their value,
|
||||
# # which is explained in the docs for that config option.
|
||||
# # Just for example:
|
||||
# resize-overlay-duration = 4s 200ms
|
||||
#
|
||||
keybind = ctrl+shift+.=move_tab:1
|
||||
keybind = ctrl+shift+,=move_tab:-1
|
||||
|
||||
app-notifications = no-clipboard-copy
|
||||
8
hyprland/ghostty/themes/cheatsheet
Normal file
8
hyprland/ghostty/themes/cheatsheet
Normal file
@@ -0,0 +1,8 @@
|
||||
0=#1e1f21 # Black - terminal background color
|
||||
1=#bf6b69 # Red - error messages and warnings
|
||||
2=#b7bd73 # Green - success messages
|
||||
3=#e9c880 # Yellow - warnings and highlights
|
||||
4=#88a1bb # Blue - links and info
|
||||
5=#ad95b8 # Purple - special syntax
|
||||
6=#95bdb7 # Cyan - comments in code
|
||||
7=#c5c8c6 # White - normal text
|
||||
22
hyprland/ghostty/themes/navarch
Normal file
22
hyprland/ghostty/themes/navarch
Normal file
@@ -0,0 +1,22 @@
|
||||
palette = 0=#3d3555
|
||||
palette = 1=#d18585
|
||||
palette = 2=#8ab88a
|
||||
palette = 3=#e0cd93
|
||||
palette = 4=#8aade0
|
||||
palette = 5=#d093d1
|
||||
palette = 6=#8acaca
|
||||
palette = 7=#d0b5d2
|
||||
palette = 8=#594d67
|
||||
palette = 9=#db9a9a
|
||||
palette = 10=#a5c5a5
|
||||
palette = 11=#e2d0a3
|
||||
palette = 12=#9dbae6
|
||||
palette = 13=#d6aad7
|
||||
palette = 14=#9dd2d2
|
||||
palette = 15=#dfced9
|
||||
background = #211C2E
|
||||
foreground = #ddced8
|
||||
cursor-color = #d5aed6
|
||||
cursor-text = #211C2E
|
||||
selection-background = #d5aed6
|
||||
selection-foreground = #211C2E
|
||||
125
hyprland/gtk-3.0/gtk.css
Normal file
125
hyprland/gtk-3.0/gtk.css
Normal file
@@ -0,0 +1,125 @@
|
||||
@define-color hl_text_color #e0cd93;
|
||||
@define-color cover_bg rgba(27, 22, 38, 0.9);
|
||||
@define-color border_color rgb(113, 142, 184);
|
||||
@define-color text_color #ddced8;
|
||||
|
||||
/* global */
|
||||
.view:hover, iconview:hover, .view:hover:focus, iconview:hover:focus, .view text:hover, iconview text:hover, textview text:hover, iconview text:hover:focus, textview text:hover:focus, flowbox flowboxchild:hover, row:hover, .view:selected, iconview:selected, .view:selected:focus, iconview:selected:focus, .view text:selected, iconview text:selected, textview text:selected, iconview text:selected:focus, textview text:selected:focus, .view text selection:focus, iconview text selection:focus, .view text selection, iconview text selection, textview text selection:focus, textview text selection, flowbox flowboxchild:selected, entry selection, entry selection:focus, row:selected {
|
||||
color: @cover_bg;
|
||||
background-color: #8aade0;
|
||||
}
|
||||
check:checked,
|
||||
check:indeterminate,
|
||||
radio:checked,
|
||||
radio:indeterminate,
|
||||
switch:checked {
|
||||
background-color: #d093d1;
|
||||
}
|
||||
menubar {
|
||||
background-color: #211c2e;
|
||||
}
|
||||
window.background headerbar {
|
||||
background-color: #211c2e;
|
||||
}
|
||||
.background {
|
||||
background: rgba(33, 28, 46, 0.8);
|
||||
color: @text_color;
|
||||
}
|
||||
|
||||
/* most inputs */
|
||||
entry:focus {
|
||||
box-shadow: inset 0 0 0 2px @border_color;
|
||||
}
|
||||
|
||||
treeview.view {
|
||||
color: #8aade0;
|
||||
background-color: transparent;
|
||||
}
|
||||
treeview.view:selected {
|
||||
color: #d093d1;
|
||||
background-color: rgba(208, 181, 210, 0.2);
|
||||
}
|
||||
toolbar.primary-toolbar {
|
||||
background: rgba(21, 24, 40, 0.3);
|
||||
}
|
||||
|
||||
/* firefox */
|
||||
firefox headerbar {
|
||||
background: rgba(33, 28, 46, 0.5);
|
||||
color: @text_color;
|
||||
}
|
||||
|
||||
/* global dropdowns, target: thunar menu item text hover */
|
||||
menu menuitem:hover {
|
||||
transition: none;
|
||||
background-color: rgba(233, 233, 237, 0.04);
|
||||
}
|
||||
menu menuitem label {
|
||||
color: #8aade0;
|
||||
}
|
||||
|
||||
/* menu item right label */
|
||||
menu menuitem:hover accelerator {
|
||||
color: #d093d1;
|
||||
}
|
||||
menu {
|
||||
background-color: #211c2e;
|
||||
}
|
||||
|
||||
/* icon styles */
|
||||
.thunar .view .cell:hover {
|
||||
color: @hl_text_color;
|
||||
}
|
||||
.thunar .view .cell {
|
||||
border-radius: 8px;
|
||||
background: rgba(33, 28, 46, 0.15);
|
||||
color: @text_color;
|
||||
}
|
||||
|
||||
.thunar {
|
||||
background: none;
|
||||
}
|
||||
.thunar toolbar {
|
||||
background: @cover_bg;
|
||||
padding: 8px 10px;
|
||||
border-top: 1px solid @border_color;
|
||||
}
|
||||
/* toolbar back btns and stuff */
|
||||
.thunar toolbar .image-button {
|
||||
color: @hl_text_color;
|
||||
}
|
||||
/* input bar */
|
||||
.thunar toolbar toolitem widget box entry {
|
||||
color: @hl_text_color;
|
||||
background: linear-gradient(35deg, rgb(68, 59, 79), rgb(33, 28, 46));
|
||||
}
|
||||
/* sidebar */
|
||||
.thunar .sidebar .view {
|
||||
background: @cover_bg;
|
||||
color: @hl_text_color;
|
||||
border-radius: 0px;
|
||||
}
|
||||
/* main body */
|
||||
.thunar notebook .view {
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(35, 34, 56, 0.8),
|
||||
rgba(54, 33, 52, 0.8),
|
||||
rgba(33, 28, 46, 0.8)
|
||||
);
|
||||
}
|
||||
/* bottom right section */
|
||||
.thunar statusbar {
|
||||
color: @hl_text_color;
|
||||
background: @cover_bg;
|
||||
}
|
||||
|
||||
/* dbeaver */
|
||||
/* partial label text */
|
||||
.image-button.flat.text-button box:dir(ltr).horizontal label:dir(ltr) {
|
||||
color: @text_color;
|
||||
}
|
||||
/* dropdown arrow icon */
|
||||
.flat.toggle.popup image {
|
||||
color: @hl_text_color;
|
||||
}
|
||||
7
hyprland/gtk-3.0/settings.ini
Normal file
7
hyprland/gtk-3.0/settings.ini
Normal file
@@ -0,0 +1,7 @@
|
||||
[Settings]
|
||||
gtk-application-prefer-dark-theme=1
|
||||
gtk-icon-theme-name=catppuccin-mocha
|
||||
gtk-theme-name=tokyonight-dark
|
||||
gtk-font-name=Geist
|
||||
gtk-cursor-theme-name=catppuccin-mocha-dark-cursors
|
||||
gtk-im-module=fcitx
|
||||
61
hyprland/gtk-4.0/gtk.css
Normal file
61
hyprland/gtk-4.0/gtk.css
Normal file
@@ -0,0 +1,61 @@
|
||||
@define-color cover_bg rgba(27, 22, 38, 0.9);
|
||||
@define-color hl_text_color #e0cd93;
|
||||
* {
|
||||
color: #ddced8;
|
||||
}
|
||||
tab label {
|
||||
color: @hl_text_color;
|
||||
}
|
||||
slider {
|
||||
box-shadow: inset 0 0 0 2px @hl_text_color;
|
||||
}
|
||||
button.toggle:checked:not(:hover):not(:focus):not(.flat),
|
||||
button.toggle:checked:not(:hover):not(:focus):not(.flat) label {
|
||||
background-color: #8aade0;
|
||||
color: @cover_bg;
|
||||
}
|
||||
|
||||
combobox button:active, combobox button:checked {
|
||||
background: #8aade0;
|
||||
}
|
||||
combobox button:active cellview, combobox button:checked cellview {
|
||||
color: @cover_bg;
|
||||
}
|
||||
|
||||
window {
|
||||
background: @cover_bg;
|
||||
}
|
||||
header {
|
||||
background: @cover_bg;
|
||||
}
|
||||
scrolledwindow {
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(35, 34, 56, 0.6),
|
||||
rgba(43, 26, 42, 0.6),
|
||||
rgba(33, 28, 46, 0.6)
|
||||
);
|
||||
color: #ddced8;
|
||||
}
|
||||
|
||||
/* ghostty */
|
||||
.terminal-window box notebook header {
|
||||
background-color: #1a1b26;
|
||||
margin: 2px;
|
||||
}
|
||||
.terminal-window box notebook header tab {
|
||||
font-family: "Octal";
|
||||
background-color: #1a1b26;
|
||||
color: #e6ddd1;
|
||||
padding: 0.5px 8px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.terminal-window box notebook header tab:hover {
|
||||
background-color: #24283b;
|
||||
}
|
||||
|
||||
.terminal-window box notebook header tab:checked {
|
||||
color: #bf9fd8;
|
||||
background-color: #414868;
|
||||
}
|
||||
6
hyprland/gtk-4.0/settings.ini
Normal file
6
hyprland/gtk-4.0/settings.ini
Normal file
@@ -0,0 +1,6 @@
|
||||
[Settings]
|
||||
gtk-icon-theme-name=catppuccin-mocha
|
||||
gtk-theme-name=tokyonight-dark
|
||||
gtk-font-name=Geist 12
|
||||
gtk-cursor-theme-name=catppuccin-mocha-dark-cursors
|
||||
gtk-im-module=fcitx
|
||||
12
hyprland/hypr/hypridle.conf
Normal file
12
hyprland/hypr/hypridle.conf
Normal file
@@ -0,0 +1,12 @@
|
||||
general {
|
||||
lock_cmd = pidof hyprlock || ~/.config/hypr/run-hyprlock.sh
|
||||
before_sleep_cmd = loginctl lock-session # lock before suspend
|
||||
after_sleep_cmd = hyprctl dispatch dpms on
|
||||
inhibit_sleep = 2
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 600 # 10 minutes
|
||||
on-timeout = hyprctl dispatch dpms off # screen off
|
||||
on-resume = hyprctl dispatch dpms on # screen on when activity detected
|
||||
}
|
||||
382
hyprland/hypr/hyprland.conf
Normal file
382
hyprland/hypr/hyprland.conf
Normal file
@@ -0,0 +1,382 @@
|
||||
# This is an example Hyprland config file.
|
||||
# Refer to the wiki for more information.
|
||||
# https://wiki.hypr.land/Configuring/
|
||||
|
||||
# Please note not all available settings / options are set here.
|
||||
# For a full list, see the wiki
|
||||
|
||||
# You can split this configuration into multiple files
|
||||
# Create your files separately and then link them to this file like this:
|
||||
# source = ~/.config/hypr/myColors.conf
|
||||
|
||||
|
||||
################
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Monitors/
|
||||
monitor=eDP-1,2256x1504@60,auto,1.33
|
||||
monitor=DP-3,2560x1080@60,auto,1.0 # at home dock
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Keywords/
|
||||
|
||||
# Set programs that you use
|
||||
$terminal = ghostty
|
||||
$fileManager = thunar
|
||||
$menu = ~/.local/bin/rofi-app-manager.sh
|
||||
$configMenu = ~/.local/bin/rofi-config-manager.sh
|
||||
$helpMenu = ~/.local/bin/rofi-help-manager.sh
|
||||
$settingsMenu = ~/.local/bin/rofi-settings-manager.sh
|
||||
$powerMenu = ~/.local/bin/rofi-power-manager.sh
|
||||
# $menu = rofi -show drun -theme ~/.config/rofi/config.rasi
|
||||
|
||||
|
||||
# https://github.com/catppuccin/cursors
|
||||
env = XCURSOR_THEME,catppuccin-mocha-dark-cursors
|
||||
env = GTK_THEME=tokyonight-dark
|
||||
env = XCURSOR_SIZE,24
|
||||
# for discord
|
||||
env = GDK_SCALE,1.33
|
||||
env = GDK_DPI_SCALE,1.0
|
||||
# env = HYPRCURSOR_SIZE,24
|
||||
|
||||
# styling qt ui to gtk3 style
|
||||
env = QT_QPA_PLATFORMTHEME,gtk3
|
||||
|
||||
env = GTK_IM_MODULE,fcitx
|
||||
env = QT_IM_MODULE,fcitx
|
||||
env = XMODIFIERS,@im=fcitx
|
||||
env = INPUT_METHOD,fcitx
|
||||
env = SDL_IM_MODULE,fcitx
|
||||
env = GLFW_IM_MODULE,fcitx
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
|
||||
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
# Or execute your favorite apps at launch like this:
|
||||
|
||||
exec-once = fcitx5 -d
|
||||
exec-once = hyprpaper & hypridle & mako
|
||||
exec-once = gsettings set org.gnome.desktop.interface gtk-theme 'tokyonight-dark'
|
||||
exec-once = gsettings set org.gnome.desktop.interface icon-theme 'catppuccin-mocha'
|
||||
exec-once = gsettings set org.gnome.desktop.interface font-name 'Geist 11'
|
||||
exec-once = ~/.config/hypr/reload-monitors.sh # contains waybar
|
||||
exec-once = ~/.config/wlsunset/run-wlsunset.sh init
|
||||
exec-once = ~/.config/waybar/scripts/fcitx5-monitor.sh &
|
||||
|
||||
# so far, for bazecor
|
||||
exec-once = /usr/lib/hyprpolkitagent/hyprpolkitagent & disown
|
||||
|
||||
source = /tmp/hyprland-workspaces.conf
|
||||
#############################
|
||||
### ENVIRONMENT VARIABLES ###
|
||||
#############################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Environment-variables/
|
||||
|
||||
# for discord
|
||||
xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
|
||||
###################
|
||||
### PERMISSIONS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Permissions/
|
||||
# Please note permission changes here require a Hyprland restart and are not applied on-the-fly
|
||||
# for security reasons
|
||||
|
||||
ecosystem {
|
||||
no_update_news = true
|
||||
# enforce_permissions = 1
|
||||
}
|
||||
|
||||
# permission = /usr/(bin|local/bin)/grim, screencopy, allow
|
||||
# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
|
||||
# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
|
||||
|
||||
|
||||
#####################
|
||||
### LOOK AND FEEL ###
|
||||
#####################
|
||||
|
||||
# Refer to https://wiki.hypr.land/Configuring/Variables/
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 3
|
||||
gaps_out = 15
|
||||
|
||||
border_size = 2
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors
|
||||
col.active_border = rgb(d093d1) rgb(8aade0) rgb(e0cd93) 45deg
|
||||
col.inactive_border = rgba(C9C5BB4d)
|
||||
|
||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = false
|
||||
|
||||
# Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 8
|
||||
rounding_power = 2
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 4
|
||||
render_power = 3
|
||||
color = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#blur
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 2
|
||||
new_optimizations = true
|
||||
vibrancy = 0.1696
|
||||
}
|
||||
}
|
||||
layerrule = blur, waybar
|
||||
layerrule = blur, rofi
|
||||
layerrule = blur, notifications
|
||||
layerrule = ignorezero, notifications
|
||||
|
||||
### animatons ###
|
||||
# https://wiki.hypr.land/Configuring/Variables/#animations
|
||||
animations {
|
||||
enabled = yes, please :)
|
||||
|
||||
# Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves
|
||||
# NAME, X0, Y0, X1, Y1
|
||||
bezier = easeOutQuint, 0.23, 1, 0.32, 1
|
||||
bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1
|
||||
bezier = linear, 0, 0, 1, 1
|
||||
bezier = almostLinear, 0.5, 0.5, 0.75, 1
|
||||
bezier = quick, 0.15, 0, 0.1, 1
|
||||
|
||||
# Default animations, see https://wiki.hypr.land/Configuring/Animations/
|
||||
# NAME, ONOFF, SPEED, CURVE, [STYLE]
|
||||
animation = global, 1, 10, default
|
||||
animation = border, 1, 5.39, easeOutQuint
|
||||
animation = windows, 1, 4.79, easeOutQuint
|
||||
animation = windowsIn, 1, 1.94, almostLinear, popin 55%
|
||||
animation = windowsOut, 1, 1.49, linear, popin 82%
|
||||
animation = fadeIn, 1, 1.73, almostLinear
|
||||
animation = fadeOut, 1, 1.46, almostLinear
|
||||
animation = fade, 1, 3.03, quick
|
||||
animation = layers, 1, 3.81, easeOutQuint
|
||||
animation = layersIn, 1, 4, easeOutQuint, fade
|
||||
animation = layersOut, 1, 1.5, linear, fade
|
||||
animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||
animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||
animation = workspacesIn, 1, 1.01, almostLinear, slidefade
|
||||
animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||
animation = zoomFactor, 1, 7, quick
|
||||
animation = specialWorkspaceIn, 1, 3, easeInOutCubic, slidevertfade -50%
|
||||
animation = specialWorkspaceOut, 1, 3, easeInOutCubic, slidevertfade -50%
|
||||
}
|
||||
|
||||
# specific animations for programs
|
||||
layerrule = animation popin 88%, rofi
|
||||
layerrule = animation slide top, waybar
|
||||
layerrule = noanim, notifications
|
||||
|
||||
# Ref https://wiki.hypr.land/Configuring/Workspace-Rules/
|
||||
# "Smart gaps" / "No gaps when only"
|
||||
# uncomment all if you wish to use that.
|
||||
# workspace = w[tv1], gapsout:0, gapsin:0
|
||||
# workspace = f[1], gapsout:0, gapsin:0
|
||||
# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrule = bordersize 0, floating:0, onworkspace:f[1]
|
||||
# windowrule = rounding 0, floating:0, onworkspace:f[1]
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true # You probably want this
|
||||
}
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Master-Layout/ for more
|
||||
master {
|
||||
new_status = master
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#misc
|
||||
misc {
|
||||
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
|
||||
|
||||
new_window_takes_over_fullscreen = 1
|
||||
}
|
||||
|
||||
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#input
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad {
|
||||
natural_scroll = false
|
||||
}
|
||||
}
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Gestures
|
||||
# gesture = 3, horizontal, workspace
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more
|
||||
device {
|
||||
name = epic-mouse-v1
|
||||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
|
||||
###################
|
||||
### KEYBINDINGS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Keywords/
|
||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||
|
||||
# Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more
|
||||
bind = , Print, exec, grim -g "$(slurp)" - | wl-copy && notify-send "📸 Screenshot" "Region copied to clipboard"
|
||||
bind = $mainMod, Print, exec, bash -c 'file=~/pictures/$(date +"%Y-%m-%d_%H-%M-%S").png; if grim -g "$(slurp)" "$file"; then notify-send "📸 Screenshot" "Saved: $file"; else notify-send "❌ Screenshot Failed" "Could not save screenshot"; fi'
|
||||
bind = $mainMod, Return, exec, $terminal
|
||||
# bind = $mainMod, M, exit,
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, T, togglefloating, # float window
|
||||
bind = $mainMod, D, exec, $menu
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, J, togglesplit, # dwindle
|
||||
|
||||
bind = $mainMod SHIFT, Q, killactive,
|
||||
bind = $mainMod SHIFT, P, exec, $powerMenu
|
||||
bind = $mainMod SHIFT, X, exec, $settingsMenu
|
||||
bind = $mainMod SHIFT, C, exec, $configMenu
|
||||
bind = $mainMod SHIFT, H, exec, $helpMenu
|
||||
|
||||
|
||||
# overlay workspace (scratchpad)
|
||||
bind = $mainMod, S, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
# 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 = $mainMod, h, movefocus, l
|
||||
bind = $mainMod, l, movefocus, r
|
||||
bind = $mainMod, j, movefocus, u
|
||||
bind = $mainMod, k, movefocus, 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 = $mainMod SHIFT, 1, movetoworkspacesilent, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# 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 # left click
|
||||
bindm = $mainMod, mouse:273, resizewindow # right click
|
||||
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindel = ,XF86MonBrightnessUp, exec, python ~/00/framework_arch_tools/brightness.py +
|
||||
bindel = ,XF86MonBrightnessDown, exec, python ~/00/framework_arch_tools/brightness.py -
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
# resize
|
||||
binde = SUPER ALT, right, resizeactive, 10 0
|
||||
binde = SUPER ALT, left, resizeactive, -10 0
|
||||
binde = SUPER ALT, up, resizeactive, 0 -10
|
||||
binde = SUPER ALT, down, resizeactive, 0 10
|
||||
|
||||
# reorder
|
||||
bind = SUPER SHIFT, left, movewindow, l
|
||||
bind = SUPER SHIFT, right, movewindow, r
|
||||
bind = SUPER SHIFT, up, movewindow, u
|
||||
bind = SUPER SHIFT, down, movewindow, d
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Window-Rules/ for more
|
||||
# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
|
||||
|
||||
# Example windowrule
|
||||
# windowrule = float,class:^(kitty)$,title:^(kitty)$
|
||||
|
||||
# Ignore maximize requests from apps. You'll probably like this.
|
||||
windowrule = suppressevent maximize, class:.*
|
||||
|
||||
# Fix some dragging issues with XWayland
|
||||
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
|
||||
windowrulev2 = stayfocused, class:^(Rofi)$
|
||||
windowrulev2 = minsize 1 1, class:^(Rofi)$
|
||||
|
||||
debug {
|
||||
disable_logs = true # if need logs, enable this
|
||||
}
|
||||
121
hyprland/hypr/hyprlock.conf
Normal file
121
hyprland/hypr/hyprlock.conf
Normal file
@@ -0,0 +1,121 @@
|
||||
# BACKGROUND
|
||||
background {
|
||||
monitor =
|
||||
path = ~/pictures/bgs/lockscreen/neco2.png
|
||||
blur_passes = 1
|
||||
blur_size = 3
|
||||
noise = 0.075
|
||||
contrast = 1.0
|
||||
brightness = 0.25
|
||||
vibrancy = 0.1
|
||||
vibrancy_darkness = 0.0
|
||||
}
|
||||
|
||||
# GENERAL
|
||||
general {
|
||||
}
|
||||
animations {
|
||||
enabled = true
|
||||
animation = fadeIn, 1, 5, linear
|
||||
animation = fadeOut, 1, 7, linear
|
||||
}
|
||||
|
||||
# small box background
|
||||
shape {
|
||||
position = 0, 30
|
||||
monitor =
|
||||
size = 380, 400
|
||||
color = rgba(44, 39, 61, 0.5)
|
||||
rounding = 8
|
||||
border_size = 2
|
||||
border_color = rgba(243, 226, 169, 0.60) rgba(213, 174, 214, 0.80) 45deg
|
||||
rotate = 0
|
||||
xray = false
|
||||
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
# border for small box
|
||||
shape {
|
||||
position = 0, 120
|
||||
monitor =
|
||||
size = 330, 0
|
||||
border_size = 1
|
||||
rounding = 1
|
||||
border_color = rgba(213, 174, 214, 0.80) rgba(243, 226, 169, 0.80) 145deg
|
||||
}
|
||||
|
||||
# date
|
||||
label {
|
||||
position = 0, 172
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "$(date +"%m/%d - %H:%M:%S")"
|
||||
color = rgb(219, 218, 215)
|
||||
font_size = 28
|
||||
font_family = Octal
|
||||
halign = center
|
||||
valign = center
|
||||
shadow_passes = 1
|
||||
shadow_size = 5
|
||||
shadow_boost = 0.5
|
||||
}
|
||||
|
||||
# display pic
|
||||
image {
|
||||
position = 0, 45
|
||||
path = ~/pictures/profile_pics/biyo.png
|
||||
size = 100
|
||||
halign = center
|
||||
valign = center
|
||||
border_size = 0
|
||||
shadow_passes = 1
|
||||
shadow_size = 5
|
||||
shadow_boost = 0.5
|
||||
}
|
||||
shape {
|
||||
position = -1, 45
|
||||
size = 68, 68
|
||||
rounding = 100
|
||||
border_size = 16
|
||||
border_color = rgb(213, 174, 214) rgba(122, 127, 222, 0.8) 145deg
|
||||
}
|
||||
|
||||
# username
|
||||
label {
|
||||
position = 0, -45
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "$USER@$HOSTNAME"
|
||||
color = rgb(219, 218, 215)
|
||||
font_size = 16
|
||||
font_family = Octal Medium
|
||||
halign = center
|
||||
valign = center
|
||||
shadow_passes = 1
|
||||
shadow_size = 5
|
||||
shadow_boost = 0.5
|
||||
}
|
||||
|
||||
input-field {
|
||||
position = 0, -100
|
||||
monitor =
|
||||
size = 256, 48
|
||||
outline_thickness = 2
|
||||
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.5 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
outer_color = rgba(243, 226, 169, 0.75) rgba(213, 174, 214, 0.85) 0deg
|
||||
inner_color = rgba(57, 51, 66, 0.8)
|
||||
font_color = rgba(243, 226, 169, 0.75)
|
||||
fail_color = rgba(192, 149, 149, 0.75)
|
||||
check_color = rgba(149, 203, 173, 0.75)
|
||||
capslock_color = rgba(149, 182, 203, 0.5)
|
||||
fade_on_empty = false
|
||||
font_family = Noto Sans
|
||||
placeholder_text = ...... #text for input password
|
||||
hide_input = false
|
||||
halign = center
|
||||
valign = center
|
||||
shadow_passes = 1
|
||||
shadow_size = 5
|
||||
shadow_boost = 0.5
|
||||
}
|
||||
4
hyprland/hypr/hyprpaper.conf
Normal file
4
hyprland/hypr/hyprpaper.conf
Normal file
@@ -0,0 +1,4 @@
|
||||
preload = ~/pictures/bgs/redjuice-alt-2.png
|
||||
preload = ~/pictures/bgs/wide-neco-1.png
|
||||
wallpaper = eDP-1,~/pictures/bgs/redjuice-alt-2.png
|
||||
wallpaper = DP-3,~/pictures/bgs/wide-neco-1.png
|
||||
48
hyprland/hypr/reload-monitors.sh
Executable file
48
hyprland/hypr/reload-monitors.sh
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
move_all_windows_to_workspace1() {
|
||||
# Get window count for feedback
|
||||
window_count=$(hyprctl clients -j | jq '. | length')
|
||||
# echo "Found $window_count windows to move"
|
||||
|
||||
# Move all windows using xargs
|
||||
hyprctl clients -j | jq -r '.[].address' | xargs -I {} hyprctl dispatch movetoworkspacesilent "1,address:{}"
|
||||
|
||||
# Switch to workspace 1 to make it active
|
||||
hyprctl dispatch workspace 1
|
||||
}
|
||||
home_dock=$(hyprctl monitors | grep -E "(DP-3|eDP-1)" | wc -l)
|
||||
|
||||
workspace_file="/tmp/hyprland-workspaces.conf"
|
||||
|
||||
echo "" > $workspace_file
|
||||
|
||||
if [[ $home_dock == 2 ]]; then
|
||||
move_all_windows_to_workspace1
|
||||
echo "workspace = 1,monitor:DP-3,default:true,persistent:true" >> $workspace_file
|
||||
echo "workspace = 2,monitor:DP-3,persistent:true" >> $workspace_file
|
||||
echo "workspace = 3,monitor:DP-3,persistent:true" >> $workspace_file
|
||||
echo "workspace = 4,monitor:DP-3,persistent:true" >> $workspace_file
|
||||
echo "workspace = 5,monitor:DP-3,persistent:true" >> $workspace_file
|
||||
|
||||
echo "workspace = 6,monitor:eDP-1,default:true,persistent:true" >> $workspace_file
|
||||
echo "workspace = 7,monitor:eDP-1,persistent:true" >> $workspace_file
|
||||
echo "workspace = 8,monitor:eDP-1,persistent:true" >> $workspace_file
|
||||
echo "workspace = 9,monitor:eDP-1,persistent:true" >> $workspace_file
|
||||
echo "workspace = 10,monitor:eDP-1,persistent:true" >> $workspace_file
|
||||
notify-send "Monitor Reload" "Detected Home Dock Settings"
|
||||
else
|
||||
move_all_windows_to_workspace1
|
||||
# default
|
||||
for i in {1..8}; do
|
||||
echo "workspace = $i,monitor:auto,persistent:true" >> $workspace_file
|
||||
done
|
||||
notify-send "Monitor Reload" "Detected Default Settings"
|
||||
fi
|
||||
|
||||
hyprctl reload
|
||||
|
||||
if pidof waybar >/dev/null; then
|
||||
killall waybar && waybar & disown
|
||||
else
|
||||
waybar & disown
|
||||
fi
|
||||
16
hyprland/hypr/run-hyprlock.sh
Executable file
16
hyprland/hypr/run-hyprlock.sh
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
post_unlock() {
|
||||
local image_dir="$HOME/pictures/bgs/lockscreen"
|
||||
local current_image=$(grep "path =" ~/.config/hypr/hyprlock.conf | cut -d'=' -f2 | tr -d ' ' | head -1)
|
||||
local new_image=$(find "$image_dir" -type f | sort -R | head -n 1 | sed "s|^$HOME|~|")
|
||||
while true; do
|
||||
if [[ "$new_image" != "$current_image" ]]; then
|
||||
sed -i '0,/path =/{s|path =.*|path = '"$new_image"'|}' ~/.config/hypr/hyprlock.conf
|
||||
break
|
||||
fi
|
||||
new_image=$(find "$image_dir" -type f | sort -R | head -n 1 | sed "s|^$HOME|~|")
|
||||
done
|
||||
}
|
||||
|
||||
post_unlock
|
||||
hyprlock
|
||||
41
hyprland/hyprland_setup_manual
Normal file
41
hyprland/hyprland_setup_manual
Normal file
@@ -0,0 +1,41 @@
|
||||
# Hyprland notes
|
||||
|
||||
main config: ~/.config/hypr/hyprland.conf
|
||||
|
||||
* mako (toasts)
|
||||
- config: ~/.config/mako/config
|
||||
* hyprpaper (wallpaper, used in hyprland config)
|
||||
* hypridle (auto lock watcher + screen off timer)
|
||||
- config: ~/.config/hypr/hypridle.conf
|
||||
* hyprlock (lock on laptop lid close)
|
||||
- config: ~/.config/hypr/hyprlock.conf
|
||||
* waybar
|
||||
- configs: ~/.config/waybar/config.jsonc + style.css
|
||||
|
||||
* ability to use clipboard:
|
||||
- sudo pacman -S wl-clipboard
|
||||
|
||||
* hyprmon (monitor manager) (https://github.com/erans/hyprmon/)
|
||||
- yay -S hyprmon-bin
|
||||
|
||||
* sudo pacman -S xdg-desktop-portal-hyprland xdg-desktop-portal-gtk
|
||||
- this helps with obs having a screen capture source
|
||||
- this also helps with general screen capturing on most apps
|
||||
|
||||
* sudo pacman -S obs-studio
|
||||
* sudo pacman -S mpv (lightweight video player/image viewer)
|
||||
|
||||
---
|
||||
## Non config settings
|
||||
|
||||
Thunar custom action Open Terminal Here:
|
||||
- command: ghostty -e bash -c "cd %f && exec bash" & disown
|
||||
Thunar default image viewer:
|
||||
- mpv with custom command: mpv --image-display-duration=inf
|
||||
---
|
||||
master settings:
|
||||
|
||||
## Fonts
|
||||
- Geist (sans) (https://github.com/vercel/geist-font/releases/tag/1.5.1)
|
||||
- Geist (mono) (https://github.com/vercel/geist-font/releases/tag/1.5.1)
|
||||
- Octal (self-bought)
|
||||
38
hyprland/mako/config
Normal file
38
hyprland/mako/config
Normal file
@@ -0,0 +1,38 @@
|
||||
border-size=1
|
||||
border-radius=8
|
||||
font=Geist 10
|
||||
max-visible=3
|
||||
|
||||
width=330
|
||||
padding=8
|
||||
margin=14,15,0,0
|
||||
anchor=top-right
|
||||
|
||||
default-timeout=5000
|
||||
ignore-timeout=0
|
||||
|
||||
icons=1
|
||||
max-icon-size=48
|
||||
icon-path=/usr/share/icons/Adwaita
|
||||
|
||||
markup=1
|
||||
actions=1
|
||||
format=<b>%s</b>\n%b
|
||||
|
||||
background-color=#3D344580
|
||||
|
||||
[urgency=low]
|
||||
default-timeout=3000
|
||||
border-color=#6c7086
|
||||
text-color=#B1B4C7
|
||||
|
||||
[urgency=normal]
|
||||
border-color=#e1b4e2
|
||||
text-color=#E6D4E6
|
||||
|
||||
[urgency=critical]
|
||||
border-color=#f38ba8
|
||||
background-color=#f38ba81a
|
||||
text-color=#f38ba8
|
||||
default-timeout=0
|
||||
|
||||
39
hyprland/manual-updaters/update-discord.sh
Executable file
39
hyprland/manual-updaters/update-discord.sh
Executable file
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: $0 <string_to_check>"
|
||||
echo "Example: $0 discord-0.0.20.tar.gz"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
func_validate_filename() {
|
||||
# Convert to lowercase for case-insensitive matching
|
||||
local lower_input=$(echo "$1" | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
# Check if both "discord" and ".deb" are present
|
||||
if [[ "$lower_input" == *"discord"* ]] && [[ "$lower_input" == *".tar.gz"* ]]; then
|
||||
echo "✓ Updated Discord with file: '$1'"
|
||||
return 0
|
||||
else
|
||||
echo "✗ No match: '$1' does not contain both 'discord' and '.tar.gz'"
|
||||
|
||||
# Provide specific feedback
|
||||
if [[ "$lower_input" != *"discord"* ]]; then
|
||||
echo " - Missing 'discord' ✗"
|
||||
fi
|
||||
|
||||
if [[ "$lower_input" != *".deb"* ]]; then
|
||||
echo " - Missing '.deb' ✗"
|
||||
fi
|
||||
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
if func_validate_filename "$1"; then
|
||||
sudo tar -xzf "$1"
|
||||
sudo rm -rf /opt/discord
|
||||
sudo mv Discord /opt/discord
|
||||
sudo ln -sf /opt/discord/Discord /usr/bin/discord
|
||||
fi
|
||||
|
||||
#TODO check for .desktop file and create if not exists
|
||||
154
hyprland/rofi/app-manager/app-manager-wide.rasi
Normal file
154
hyprland/rofi/app-manager/app-manager-wide.rasi
Normal file
@@ -0,0 +1,154 @@
|
||||
configuration {
|
||||
hover-select: true;
|
||||
me-select-entry: "MousePrimary";
|
||||
me-accept-entry: "!MousePrimary";
|
||||
font: "Geist 12";
|
||||
show-icons: true;
|
||||
icon-theme: "Papirus";
|
||||
display-drun: " ";
|
||||
}
|
||||
|
||||
@theme "~/.config/rofi/theme.rasi"
|
||||
|
||||
// Main //
|
||||
window {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
transparency: "real";
|
||||
fullscreen: false;
|
||||
enabled: true;
|
||||
spacing: 0em;
|
||||
padding: 0em;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 0em;
|
||||
orientation: horizontal;
|
||||
children: [ "imageBoxOverlay" , "listbox", "rightTab" ];
|
||||
background-color: @base-200-opa;
|
||||
margin: 24% 27.5%;
|
||||
border-color: @primary-opa;
|
||||
border: 1px;
|
||||
border-radius: 1em;
|
||||
}
|
||||
|
||||
rightTab {
|
||||
background-color: transparent;
|
||||
background-image: linear-gradient(135deg,#B37ADE26,#d5aed6d9);
|
||||
expand: false;
|
||||
width: 3.5em;
|
||||
}
|
||||
|
||||
imageBoxOverlay {
|
||||
children: ["imageBox"];
|
||||
background-color: rgba(0,0,0,0.9);
|
||||
margin: 1.4em 0.8em 1.4em 1.4em;
|
||||
border-radius: 1em;
|
||||
padding: 0.6em;
|
||||
background-image: linear-gradient(135deg,#B37ADE,#f3e2a9,#DE7AB9,#7A7FDE);
|
||||
}
|
||||
imageBox {
|
||||
enabled: true;
|
||||
background-image: url("~/.config/rofi/images/neco/25.jpg", width);
|
||||
border-radius: 1em;
|
||||
}
|
||||
// Lists //
|
||||
listbox {
|
||||
spacing: 0em;
|
||||
padding: 1.4em 0.8em 1.4em 0em;
|
||||
children: [ "inputbar" , "listview" ];
|
||||
background-color: transparent;
|
||||
}
|
||||
// Inputs //
|
||||
inputbar {
|
||||
enabled: true;
|
||||
margin: 0.2em 0.8em 0.8em 0.8em;
|
||||
children: [ "prompt", "entry" ];
|
||||
background-color: transparent;
|
||||
border-radius: 0.5em;
|
||||
}
|
||||
prompt {
|
||||
font: "Geist 14";
|
||||
text-color: #E5C38F;
|
||||
background-color: transparent;
|
||||
padding: 0.8em 0.5em 0em 0.5em;
|
||||
}
|
||||
entry {
|
||||
font: "Fira Code Retina 11";
|
||||
text-color: #f5e0dcff;
|
||||
background-color: #1E1B21;
|
||||
background-image: linear-gradient(135deg,#2E2A33,#1E1B21);
|
||||
border-radius: 0.5em;
|
||||
border-color: @secondary;
|
||||
placeholder: "Search...";
|
||||
placeholder-color: #BF9FD875;
|
||||
border: 1px;
|
||||
padding: 0.7em 0.9em 0.7em 0.7em;
|
||||
enabled: true;
|
||||
}
|
||||
listview {
|
||||
enabled: true;
|
||||
spacing: 0.6em;
|
||||
padding: 0em 1em;
|
||||
columns: 1;
|
||||
lines: 8;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
expand: true;
|
||||
fixed-height: false;
|
||||
fixed-columns: true;
|
||||
cursor: "default";
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
|
||||
// Elements //
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 1em;
|
||||
padding: 0.4em 0.5em 0.4em 1.5em;
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
text-color: #E6D5E6;
|
||||
}
|
||||
element selected.normal {
|
||||
border-radius: 0.5em;
|
||||
background-image: linear-gradient(135deg,#d5aed666,#7866C44d,#7A7FDE66);
|
||||
text-color: @secondary;
|
||||
border-color: @primary-opa;
|
||||
border: 1px;
|
||||
}
|
||||
element-icon {
|
||||
size: 1.5em;
|
||||
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;
|
||||
highlight: bold;
|
||||
}
|
||||
|
||||
// Error message //
|
||||
error-message {
|
||||
text-color: #cdd6f4ff;
|
||||
background-color: #11111be6;
|
||||
text-transform: capitalize;
|
||||
children: [ "textbox" ];
|
||||
}
|
||||
|
||||
textbox {
|
||||
text-color: inherit;
|
||||
background-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
154
hyprland/rofi/app-manager/app-manager.rasi
Normal file
154
hyprland/rofi/app-manager/app-manager.rasi
Normal file
@@ -0,0 +1,154 @@
|
||||
configuration {
|
||||
hover-select: true;
|
||||
me-select-entry: "MousePrimary";
|
||||
me-accept-entry: "!MousePrimary";
|
||||
font: "Geist 12";
|
||||
show-icons: true;
|
||||
icon-theme: "Papirus";
|
||||
display-drun: " ";
|
||||
}
|
||||
|
||||
@theme "~/.config/rofi/theme.rasi"
|
||||
|
||||
// Main //
|
||||
window {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
transparency: "real";
|
||||
fullscreen: false;
|
||||
enabled: true;
|
||||
spacing: 0em;
|
||||
padding: 0em;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 0em;
|
||||
orientation: horizontal;
|
||||
children: [ "imageBoxOverlay" , "listbox", "rightTab" ];
|
||||
background-color: @base-200-opa;
|
||||
margin: 25% 17%;
|
||||
border-color: @primary-opa;
|
||||
border: 1px;
|
||||
border-radius: 1em;
|
||||
}
|
||||
|
||||
rightTab {
|
||||
background-color: transparent;
|
||||
background-image: linear-gradient(135deg,#B37ADE26,#d5aed6d9);
|
||||
expand: false;
|
||||
width: 3.5em;
|
||||
}
|
||||
|
||||
imageBoxOverlay {
|
||||
children: ["imageBox"];
|
||||
background-color: rgba(0,0,0,0.9);
|
||||
margin: 1.4em 0.8em 1.4em 1.4em;
|
||||
border-radius: 1em;
|
||||
padding: 0.6em;
|
||||
background-image: linear-gradient(135deg,#B37ADE,#f3e2a9,#DE7AB9,#7A7FDE);
|
||||
}
|
||||
imageBox {
|
||||
enabled: true;
|
||||
background-image: url("~/.config/rofi/images/neco/25.jpg", width);
|
||||
border-radius: 1em;
|
||||
}
|
||||
// Lists //
|
||||
listbox {
|
||||
spacing: 0em;
|
||||
padding: 1.4em 0.8em 1.4em 0em;
|
||||
children: [ "inputbar" , "listview" ];
|
||||
background-color: transparent;
|
||||
}
|
||||
// Inputs //
|
||||
inputbar {
|
||||
enabled: true;
|
||||
margin: 0.2em 0.8em 0.8em 0.8em;
|
||||
children: [ "prompt", "entry" ];
|
||||
background-color: transparent;
|
||||
border-radius: 0.5em;
|
||||
}
|
||||
prompt {
|
||||
font: "Geist 14";
|
||||
text-color: #E5C38F;
|
||||
background-color: transparent;
|
||||
padding: 0.8em 0.5em 0em 0.5em;
|
||||
}
|
||||
entry {
|
||||
font: "Fira Code Retina 11";
|
||||
text-color: #f5e0dcff;
|
||||
background-color: #1E1B21;
|
||||
background-image: linear-gradient(135deg,#2E2A33,#1E1B21);
|
||||
border-radius: 0.5em;
|
||||
border-color: @secondary;
|
||||
placeholder: "Search...";
|
||||
placeholder-color: #BF9FD875;
|
||||
border: 1px;
|
||||
padding: 0.7em 0.9em 0.7em 0.7em;
|
||||
enabled: true;
|
||||
}
|
||||
listview {
|
||||
enabled: true;
|
||||
spacing: 0.6em;
|
||||
padding: 0em 1em;
|
||||
columns: 1;
|
||||
lines: 8;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
expand: true;
|
||||
fixed-height: false;
|
||||
fixed-columns: true;
|
||||
cursor: "default";
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
|
||||
// Elements //
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 1em;
|
||||
padding: 0.4em 0.5em 0.4em 1.5em;
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
text-color: #E6D5E6;
|
||||
}
|
||||
element selected.normal {
|
||||
border-radius: 0.5em;
|
||||
background-image: linear-gradient(135deg,#d5aed666,#7866C44d,#7A7FDE66);
|
||||
text-color: @secondary;
|
||||
border-color: @primary-opa;
|
||||
border: 1px;
|
||||
}
|
||||
element-icon {
|
||||
size: 1.5em;
|
||||
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;
|
||||
highlight: bold;
|
||||
}
|
||||
|
||||
// Error message //
|
||||
error-message {
|
||||
text-color: #cdd6f4ff;
|
||||
background-color: #11111be6;
|
||||
text-transform: capitalize;
|
||||
children: [ "textbox" ];
|
||||
}
|
||||
|
||||
textbox {
|
||||
text-color: inherit;
|
||||
background-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
50
hyprland/rofi/app-manager/rofi-app-manager.sh
Executable file
50
hyprland/rofi/app-manager/rofi-app-manager.sh
Executable file
@@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
|
||||
get_current_monitor_width() {
|
||||
# Get cursor position from Hyprland
|
||||
local pos=$(hyprctl cursorpos 2>/dev/null | head -n 1)
|
||||
|
||||
if [ -z "$pos" ]; then
|
||||
echo "Error: Could not get cursor position from Hyprland" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Extract coordinates (hyprctl cursorpos returns: "x, y")
|
||||
local x=$(echo "$pos" | awk -F',' '{print $1}' | tr -d ' ')
|
||||
local y=$(echo "$pos" | awk -F',' '{print $2}' | tr -d ' ')
|
||||
|
||||
# Get the width of the monitor containing the cursor
|
||||
local width=$(hyprctl monitors -j | jq -r --argjson x "$x" --argjson y "$y" '
|
||||
.[] | select(
|
||||
.x <= $x and
|
||||
.y <= $y and
|
||||
(.x + .width) > $x and
|
||||
(.y + .height) > $y
|
||||
) | .width' | head -n 1)
|
||||
|
||||
echo "$width"
|
||||
}
|
||||
|
||||
post_rofi() {
|
||||
local image_dir="$HOME/.config/rofi/images/neco"
|
||||
local current_image=$(grep "background-image: url" "$THEME_FILE" | cut -d'"' -f2)
|
||||
local new_image=$(find "$image_dir" -type f | sort -R | head -n 1 | sed "s|^$HOME|~|")
|
||||
while true; do
|
||||
if [[ "$new_image" != "$current_image" ]]; then
|
||||
sed -i 's|url("[^"]*"|url("'"$new_image"'"|' "$THEME_FILE"
|
||||
break
|
||||
fi
|
||||
new_image=$(find "$image_dir" -type f | sort -R | head -n 1 | sed "s|^$HOME|~|")
|
||||
done
|
||||
}
|
||||
|
||||
width=$(get_current_monitor_width)
|
||||
if [ "$width" -gt 2256 ]; then
|
||||
#is wider than laptop monitor
|
||||
THEME_FILE=~/.config/rofi/app-manager/app-manager-wide.rasi
|
||||
else
|
||||
#laptop monitor
|
||||
THEME_FILE=~/.config/rofi/app-manager/app-manager.rasi
|
||||
fi
|
||||
rofi -show drun -theme $THEME_FILE
|
||||
post_rofi &
|
||||
129
hyprland/rofi/config-manager/config-manager.rasi
Normal file
129
hyprland/rofi/config-manager/config-manager.rasi
Normal file
@@ -0,0 +1,129 @@
|
||||
configuration {
|
||||
font: "Geist 12";
|
||||
hover-select: true;
|
||||
me-select-entry: "MousePrimary";
|
||||
me-accept-entry: "!MousePrimary";
|
||||
click-to-exit: true;
|
||||
}
|
||||
|
||||
@theme "~/.config/rofi/theme.rasi"
|
||||
|
||||
// Main //
|
||||
window {
|
||||
width: 20.3em;
|
||||
height: 13.5em;
|
||||
fullscreen: false;
|
||||
enabled: true;
|
||||
cursor: "default";
|
||||
spacing: 0em;
|
||||
opacity: 0;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 0em;
|
||||
orientation: vertical;
|
||||
children: [ "message", "mainContent" ];
|
||||
border: 1px;
|
||||
border-color: @primary-opa;
|
||||
border-radius: 1em;
|
||||
background-color: transparent;
|
||||
}
|
||||
// decorative text at top
|
||||
message {
|
||||
enabled: true;
|
||||
background-color: @base-200;
|
||||
text-color: @primary;
|
||||
border: none;
|
||||
}
|
||||
textbox {
|
||||
padding: 12px 1em 12px 0px;
|
||||
font: "Octal Light 18";
|
||||
letter-spacing: 5px;
|
||||
horizontal-align: 0.0;
|
||||
vertical-align: 0.5;
|
||||
}
|
||||
mainContent {
|
||||
orientation: horizontal;
|
||||
children: [ "listview", "imageBoxOverlay" ];
|
||||
background-color: @base-200-opa;
|
||||
padding: 1em 0 1em 0;
|
||||
}
|
||||
imageBoxOverlay {
|
||||
children: ["imageBox"];
|
||||
margin: 0em 1em 0em 0em;
|
||||
border-radius: 1em;
|
||||
padding: 0.4em;
|
||||
background-image: linear-gradient(135deg,#B37ADE,#F59FD5,#7A7FDE);
|
||||
}
|
||||
imageBox {
|
||||
enabled: true;
|
||||
background-image: url("~/.config/rofi/images/sg/12.jpg", width);
|
||||
border-radius: 1em;
|
||||
}
|
||||
|
||||
// Lists //
|
||||
listview {
|
||||
enabled: true;
|
||||
spacing: 0.6em;
|
||||
padding: 0em 1em;
|
||||
columns: 1;
|
||||
lines: 3;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
expand: true;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
cursor: "default";
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
// Elements //
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 1em;
|
||||
padding: 0.4em 0.5em 0.4em 1.5em;
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
text-color: #E6D5E6;
|
||||
}
|
||||
element selected.normal {
|
||||
border-radius: 0.5em;
|
||||
background-image: linear-gradient(135deg,#d5aed666,#7866C44d,#7A7FDE66);
|
||||
text-color: @secondary;
|
||||
border-color: @primary-opa;
|
||||
border: 1px;
|
||||
}
|
||||
element-icon {
|
||||
size: 1.5em;
|
||||
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;
|
||||
highlight: bold;
|
||||
}
|
||||
|
||||
// Error message //
|
||||
error-message {
|
||||
text-color: #cdd6f4ff;
|
||||
background-color: #11111be6;
|
||||
text-transform: capitalize;
|
||||
children: [ "textbox" ];
|
||||
}
|
||||
|
||||
textbox {
|
||||
text-color: inherit;
|
||||
background-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
78
hyprland/rofi/config-manager/rofi-config-manager.sh
Executable file
78
hyprland/rofi/config-manager/rofi-config-manager.sh
Executable file
@@ -0,0 +1,78 @@
|
||||
#!/bin/bash
|
||||
# ln -s ~/.config/rofi/config-manager/rofi-config-manager.sh ~/.local/bin/rofi-config-manager.sh
|
||||
THEME_FILE=~/.config/rofi/config-manager/config-manager.rasi
|
||||
|
||||
post_rofi() {
|
||||
local image_dir="$HOME/.config/rofi/images/sg"
|
||||
local current_image=$(grep "background-image: url" "$THEME_FILE" | cut -d'"' -f2)
|
||||
local new_image=$(find "$image_dir" -type f | sort -R | head -n 1 | sed "s|^$HOME|~|")
|
||||
while true; do
|
||||
if [[ "$new_image" != "$current_image" ]]; then
|
||||
sed -i 's|url("[^"]*"|url("'"$new_image"'"|' "$THEME_FILE"
|
||||
break
|
||||
fi
|
||||
new_image=$(find "$image_dir" -type f | sort -R | head -n 1 | sed "s|^$HOME|~|")
|
||||
done
|
||||
}
|
||||
|
||||
NVIM=" Neovim"
|
||||
HYPRLAND=" Hyprland"
|
||||
WAYBAR=" Waybar"
|
||||
GHOSTTY=" Ghostty"
|
||||
ROFI_APP=" Rofi App"
|
||||
ROFI_SETT=" Rofi Sett"
|
||||
ROFI_CONF=" Rofi Conf"
|
||||
ROFI_POW=" Rofi Pow"
|
||||
HYPRLOCK=" Hyprlock"
|
||||
HYPRIDLE=" Hypridle"
|
||||
HYPRPAPER=" Hyprpaper"
|
||||
MAKO=" Mako"
|
||||
chosen=$(echo -e "$NVIM\n$HYPRLAND\n$WAYBAR\n$GHOSTTY\n$ROFI_APP\n$ROFI_SETT\n$ROFI_CONF\n$ROFI_POW\n$HYPRLOCK\n$HYPRIDLE\n$MAKO\n$HYPRPAPER" | rofi -mesg " Configs" -dmenu -p "Action:" -config ~/.config/rofi/config-manager/config-manager.rasi)
|
||||
|
||||
case $chosen in
|
||||
"$NVIM")
|
||||
ghostty -e nvim ~/.config/nvim/init.lua & disown
|
||||
ghostty -e nvim ~/.config/nvim/lua/settings.lua & disown
|
||||
;;
|
||||
"$HYPRLAND")
|
||||
ghostty -e nvim ~/.config/hypr/hyprland.conf & disown
|
||||
;;
|
||||
"$HYPRLOCK")
|
||||
ghostty -e nvim ~/.config/hypr/hyprlock.conf & disown
|
||||
;;
|
||||
"$HYPRIDLE")
|
||||
ghostty -e nvim ~/.config/hypr/hypridle.conf & disown
|
||||
;;
|
||||
"$WAYBAR")
|
||||
ghostty -e nvim ~/.config/waybar/config.jsonc & disown
|
||||
ghostty -e nvim ~/.config/waybar/style.css & disown
|
||||
;;
|
||||
"$GHOSTTY")
|
||||
ghostty -e nvim ~/.config/ghostty/config & disown
|
||||
ghostty -e nvim ~/.config/ghostty/themes/navarch & disown
|
||||
;;
|
||||
"$MAKO")
|
||||
ghostty -e nvim ~/.config/mako/config & disown
|
||||
;;
|
||||
"$ROFI_APP")
|
||||
ghostty -e nvim ~/.config/rofi/app-manager/app-manager.rasi & disown
|
||||
ghostty -e nvim ~/.config/rofi/app-manager/rofi-app-manager.sh & disown
|
||||
;;
|
||||
"$ROFI_SETT")
|
||||
ghostty -e nvim ~/.config/rofi/settings-manager/settings-manager.rasi & disown
|
||||
ghostty -e nvim ~/.config/rofi/settings-manager/rofi-settings-manager.sh & disown
|
||||
;;
|
||||
"$ROFI_CONF")
|
||||
ghostty -e nvim ~/.config/rofi/config-manager/config-manager.rasi & disown
|
||||
ghostty -e nvim ~/.config/rofi/config-manager/rofi-config-manager.sh & disown
|
||||
;;
|
||||
"$ROFI_POW")
|
||||
ghostty -e nvim ~/.config/rofi/power-manager/power-manager.rasi & disown
|
||||
ghostty -e nvim ~/.config/rofi/power-manager/rofi-power-manager.sh & disown
|
||||
;;
|
||||
"$HYPRPAPER")
|
||||
ghostty -e nvim ~/.config/hypr/hyprpaper.conf & disown
|
||||
;;
|
||||
esac
|
||||
|
||||
post_rofi &
|
||||
152
hyprland/rofi/help-manager/help-manager-wide.rasi
Normal file
152
hyprland/rofi/help-manager/help-manager-wide.rasi
Normal file
@@ -0,0 +1,152 @@
|
||||
configuration {
|
||||
hover-select: true;
|
||||
font: "Geist 12";
|
||||
show-icons: true;
|
||||
icon-theme: "Papirus";
|
||||
display-drun: " ";
|
||||
}
|
||||
|
||||
@theme "~/.config/rofi/theme.rasi"
|
||||
|
||||
// Main //
|
||||
window {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
transparency: "real";
|
||||
fullscreen: false;
|
||||
enabled: true;
|
||||
spacing: 0em;
|
||||
padding: 0em;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 0em;
|
||||
orientation: horizontal;
|
||||
children: [ "imageBoxOverlay" , "listbox", "rightTab" ];
|
||||
background-color: @base-200-opa;
|
||||
margin: 19% 22.5%;
|
||||
border-color: @primary-opa;
|
||||
border: 1px;
|
||||
border-radius: 1em;
|
||||
}
|
||||
|
||||
rightTab {
|
||||
background-color: transparent;
|
||||
background-image: linear-gradient(135deg,#B37ADE26,#d5aed6d9);
|
||||
expand: false;
|
||||
width: 3.5em;
|
||||
}
|
||||
|
||||
imageBoxOverlay {
|
||||
children: ["imageBox"];
|
||||
background-color: rgba(0,0,0,0.9);
|
||||
margin: 1.4em 0.8em 1.4em 1.4em;
|
||||
border-radius: 1em;
|
||||
padding: 0.6em;
|
||||
background-image: linear-gradient(135deg,#B37ADE,#f3e2a9,#DE7AB9,#7A7FDE);
|
||||
}
|
||||
imageBox {
|
||||
enabled: true;
|
||||
background-image: url("~/.config/rofi/images/neco/11.jpg", width);
|
||||
border-radius: 1em;
|
||||
}
|
||||
// Lists //
|
||||
listbox {
|
||||
spacing: 0em;
|
||||
padding: 1.4em 0.8em 1.4em 0em;
|
||||
children: [ "inputbar" , "listview" ];
|
||||
background-color: transparent;
|
||||
}
|
||||
// Inputs //
|
||||
inputbar {
|
||||
enabled: true;
|
||||
margin: 0.2em 0.8em 0.8em 0.8em;
|
||||
children: [ "prompt", "entry" ];
|
||||
background-color: transparent;
|
||||
border-radius: 0.5em;
|
||||
}
|
||||
prompt {
|
||||
font: "Geist 14";
|
||||
text-color: #E5C38F;
|
||||
background-color: transparent;
|
||||
padding: 0.8em 0.5em 0em 0.5em;
|
||||
}
|
||||
entry {
|
||||
font: "Fira Code Retina 11";
|
||||
text-color: #f5e0dcff;
|
||||
background-color: #1E1B21;
|
||||
background-image: linear-gradient(135deg,#2E2A33,#1E1B21);
|
||||
border-radius: 0.5em;
|
||||
border-color: @secondary;
|
||||
placeholder: "Search...";
|
||||
placeholder-color: #BF9FD875;
|
||||
border: 1px;
|
||||
padding: 0.7em 0.9em 0.7em 0.7em;
|
||||
enabled: true;
|
||||
}
|
||||
listview {
|
||||
enabled: true;
|
||||
spacing: 0.6em;
|
||||
padding: 0em 0em;
|
||||
columns: 1;
|
||||
lines: 8;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
expand: true;
|
||||
fixed-height: false;
|
||||
fixed-columns: true;
|
||||
cursor: "default";
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
|
||||
// Elements //
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 1em;
|
||||
padding: 0.4em 0.5em 0.4em 0.4em;
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
text-color: #E6D5E6;
|
||||
}
|
||||
element selected.normal {
|
||||
border-radius: 0.5em;
|
||||
background-image: linear-gradient(135deg,#d5aed666,#7866C44d,#7A7FDE66);
|
||||
text-color: @secondary;
|
||||
border-color: @primary-opa;
|
||||
border: 1px;
|
||||
}
|
||||
element-icon {
|
||||
size: 0em;
|
||||
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;
|
||||
highlight: bold;
|
||||
}
|
||||
|
||||
// Error message //
|
||||
error-message {
|
||||
text-color: #cdd6f4ff;
|
||||
background-color: #11111be6;
|
||||
text-transform: capitalize;
|
||||
children: [ "textbox" ];
|
||||
}
|
||||
|
||||
textbox {
|
||||
text-color: inherit;
|
||||
background-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
152
hyprland/rofi/help-manager/help-manager.rasi
Normal file
152
hyprland/rofi/help-manager/help-manager.rasi
Normal file
@@ -0,0 +1,152 @@
|
||||
configuration {
|
||||
hover-select: true;
|
||||
font: "Geist 12";
|
||||
show-icons: true;
|
||||
icon-theme: "Papirus";
|
||||
display-drun: " ";
|
||||
}
|
||||
|
||||
@theme "~/.config/rofi/theme.rasi"
|
||||
|
||||
// Main //
|
||||
window {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
transparency: "real";
|
||||
fullscreen: false;
|
||||
enabled: true;
|
||||
spacing: 0em;
|
||||
padding: 0em;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 0em;
|
||||
orientation: horizontal;
|
||||
children: [ "imageBoxOverlay" , "listbox", "rightTab" ];
|
||||
background-color: @base-200-opa;
|
||||
margin: 21.2% 8%;
|
||||
border-color: @primary-opa;
|
||||
border: 1px;
|
||||
border-radius: 1em;
|
||||
}
|
||||
|
||||
rightTab {
|
||||
background-color: transparent;
|
||||
background-image: linear-gradient(135deg,#B37ADE26,#d5aed6d9);
|
||||
expand: false;
|
||||
width: 3.5em;
|
||||
}
|
||||
|
||||
imageBoxOverlay {
|
||||
children: ["imageBox"];
|
||||
background-color: rgba(0,0,0,0.9);
|
||||
margin: 1.4em 0.8em 1.4em 1.4em;
|
||||
border-radius: 1em;
|
||||
padding: 0.6em;
|
||||
background-image: linear-gradient(135deg,#B37ADE,#f3e2a9,#DE7AB9,#7A7FDE);
|
||||
}
|
||||
imageBox {
|
||||
enabled: true;
|
||||
background-image: url("~/.config/rofi/images/neco/3.jpg", width);
|
||||
border-radius: 1em;
|
||||
}
|
||||
// Lists //
|
||||
listbox {
|
||||
spacing: 0em;
|
||||
padding: 1.4em 0.8em 1.4em 0em;
|
||||
children: [ "inputbar" , "listview" ];
|
||||
background-color: transparent;
|
||||
}
|
||||
// Inputs //
|
||||
inputbar {
|
||||
enabled: true;
|
||||
margin: 0.2em 0.8em 0.8em 0.8em;
|
||||
children: [ "prompt", "entry" ];
|
||||
background-color: transparent;
|
||||
border-radius: 0.5em;
|
||||
}
|
||||
prompt {
|
||||
font: "Geist 14";
|
||||
text-color: #E5C38F;
|
||||
background-color: transparent;
|
||||
padding: 0.8em 0.5em 0em 0.5em;
|
||||
}
|
||||
entry {
|
||||
font: "Fira Code Retina 11";
|
||||
text-color: #f5e0dcff;
|
||||
background-color: #1E1B21;
|
||||
background-image: linear-gradient(135deg,#2E2A33,#1E1B21);
|
||||
border-radius: 0.5em;
|
||||
border-color: @secondary;
|
||||
placeholder: "Search...";
|
||||
placeholder-color: #BF9FD875;
|
||||
border: 1px;
|
||||
padding: 0.7em 0.9em 0.7em 0.7em;
|
||||
enabled: true;
|
||||
}
|
||||
listview {
|
||||
enabled: true;
|
||||
spacing: 0.6em;
|
||||
padding: 0em 0em;
|
||||
columns: 1;
|
||||
lines: 8;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
expand: true;
|
||||
fixed-height: false;
|
||||
fixed-columns: true;
|
||||
cursor: "default";
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
|
||||
// Elements //
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 1em;
|
||||
padding: 0.4em 0.5em 0.4em 0.4em;
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
text-color: #E6D5E6;
|
||||
}
|
||||
element selected.normal {
|
||||
border-radius: 0.5em;
|
||||
background-image: linear-gradient(135deg,#d5aed666,#7866C44d,#7A7FDE66);
|
||||
text-color: @secondary;
|
||||
border-color: @primary-opa;
|
||||
border: 1px;
|
||||
}
|
||||
element-icon {
|
||||
size: 0em;
|
||||
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;
|
||||
highlight: bold;
|
||||
}
|
||||
|
||||
// Error message //
|
||||
error-message {
|
||||
text-color: #cdd6f4ff;
|
||||
background-color: #11111be6;
|
||||
text-transform: capitalize;
|
||||
children: [ "textbox" ];
|
||||
}
|
||||
|
||||
textbox {
|
||||
text-color: inherit;
|
||||
background-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
13
hyprland/rofi/help-manager/neovim-keybinds.txt
Normal file
13
hyprland/rofi/help-manager/neovim-keybinds.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
Ldr + l → Refresh LSP
|
||||
Ldr + s → Search Replace Current
|
||||
Ldr + S → Search Replace Global
|
||||
Ldr + cc → Comment/Uncomment
|
||||
Ldr + x → Navigate/Show Errors/Warnings
|
||||
Ctrl + f → Find Search File
|
||||
Ldr + fg → Find Live Grep Search
|
||||
Ldr + ca → Show Code Actions
|
||||
K → Peek Signature
|
||||
gd → Go To Definition
|
||||
gr → Find References
|
||||
Ctrl + l → Clear Highlights
|
||||
Alt + Arrows → Navigate/Switch Panels
|
||||
67
hyprland/rofi/help-manager/rofi-help-manager.sh
Executable file
67
hyprland/rofi/help-manager/rofi-help-manager.sh
Executable file
@@ -0,0 +1,67 @@
|
||||
#!/bin/bash
|
||||
get_current_monitor_width() {
|
||||
# Get cursor position from Hyprland
|
||||
local pos=$(hyprctl cursorpos 2>/dev/null | head -n 1)
|
||||
|
||||
if [ -z "$pos" ]; then
|
||||
echo "Error: Could not get cursor position from Hyprland" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Extract coordinates (hyprctl cursorpos returns: "x, y")
|
||||
local x=$(echo "$pos" | awk -F',' '{print $1}' | tr -d ' ')
|
||||
local y=$(echo "$pos" | awk -F',' '{print $2}' | tr -d ' ')
|
||||
|
||||
# Get the width of the monitor containing the cursor
|
||||
local width=$(hyprctl monitors -j | jq -r --argjson x "$x" --argjson y "$y" '
|
||||
.[] | select(
|
||||
.x <= $x and
|
||||
.y <= $y and
|
||||
(.x + .width) > $x and
|
||||
(.y + .height) > $y
|
||||
) | .width' | head -n 1)
|
||||
|
||||
echo "$width"
|
||||
}
|
||||
|
||||
post_rofi() {
|
||||
local image_dir="$HOME/.config/rofi/images/neco"
|
||||
local current_image=$(grep "background-image: url" "$THEME_FILE" | cut -d'"' -f2)
|
||||
local new_image=$(find "$image_dir" -type f | sort -R | head -n 1 | sed "s|^$HOME|~|")
|
||||
while true; do
|
||||
if [[ "$new_image" != "$current_image" ]]; then
|
||||
sed -i 's|url("[^"]*"|url("'"$new_image"'"|' "$THEME_FILE"
|
||||
break
|
||||
fi
|
||||
new_image=$(find "$image_dir" -type f | sort -R | head -n 1 | sed "s|^$HOME|~|")
|
||||
done
|
||||
}
|
||||
|
||||
width=$(get_current_monitor_width)
|
||||
if [ "$width" -gt 2256 ]; then
|
||||
echo "showing wide"
|
||||
#is wider than laptop monitor
|
||||
THEME_FILE=~/.config/rofi/help-manager/help-manager-wide.rasi
|
||||
else
|
||||
#laptop monitor
|
||||
THEME_FILE=~/.config/rofi/help-manager/help-manager.rasi
|
||||
fi
|
||||
|
||||
|
||||
SYSTEM=" System"
|
||||
NVIM=" Neovim"
|
||||
chosen=$(echo -e "$SYSTEM\n$NVIM" | rofi -mesg " Keybinds" -dmenu -p "Action:" -config ~/.config/rofi/config-manager/config-manager.rasi)
|
||||
|
||||
case $chosen in
|
||||
"$NVIM")
|
||||
cat ~/.config/rofi/help-manager/neovim-keybinds.txt | rofi -mesg " Neovim Binds" -dmenu -i -p "" -config $THEME_FILE \
|
||||
-font "Geist Mono 14" \
|
||||
-kb-accept-entry ""
|
||||
;;
|
||||
"$SYSTEM")
|
||||
cat ~/.config/rofi/help-manager/system-keybinds.txt | rofi -mesg " System Binds" -dmenu -i -p "" -config $THEME_FILE \
|
||||
-font "Geist Mono 14" \
|
||||
-kb-accept-entry ""
|
||||
;;
|
||||
esac
|
||||
post_rofi &
|
||||
11
hyprland/rofi/help-manager/system-keybinds.txt
Normal file
11
hyprland/rofi/help-manager/system-keybinds.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
Super + Return → Terminal
|
||||
Super + B → Browser
|
||||
Super + Shift + q → Quit Window
|
||||
Super + Shift + c → Configs Launcher
|
||||
Super + Shift + x → Settings Launcher
|
||||
Super + Shift + p → Power/System Launcher
|
||||
Super + d → App/Program Launcher
|
||||
Super + t → Toggle Floating Window
|
||||
Super + Arrows → Navigate Windows
|
||||
Super + Shft + Arrows → Move Windows
|
||||
Super + s → Toggle Scratchpad/Special
|
||||
116
hyprland/rofi/power-manager/power-manager.rasi
Normal file
116
hyprland/rofi/power-manager/power-manager.rasi
Normal file
@@ -0,0 +1,116 @@
|
||||
configuration {
|
||||
hover-select: true;
|
||||
me-select-entry: "MousePrimary";
|
||||
me-accept-entry: "!MousePrimary";
|
||||
click-to-exit: true;
|
||||
}
|
||||
|
||||
@theme "~/.config/rofi/theme.rasi"
|
||||
// Main //
|
||||
window {
|
||||
font: "Geist 12";
|
||||
width: 15em;
|
||||
height: 13.75em;
|
||||
transparency: "real";
|
||||
enabled: true;
|
||||
cursor: "default";
|
||||
spacing: 0em;
|
||||
background-color: transparent;
|
||||
border-radius: 1em;
|
||||
}
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 0em;
|
||||
orientation: vertical;
|
||||
children: [ "message", "listview" ];
|
||||
background-color: @base-200-opa;
|
||||
border-radius: 1em;
|
||||
border-color: @primary-opa;
|
||||
border: 3px;
|
||||
}
|
||||
|
||||
// decorative text at top
|
||||
message {
|
||||
enabled: true;
|
||||
background-color: @base-200;
|
||||
text-color: @primary;
|
||||
border: none;
|
||||
}
|
||||
textbox {
|
||||
padding: 12px 1em 12px 0px;
|
||||
font: "Octal Light 20";
|
||||
horizontal-align: 0.0;
|
||||
vertical-align: 0.5;
|
||||
}
|
||||
|
||||
// Lists //
|
||||
listview {
|
||||
enabled: true;
|
||||
spacing: 0.6em;
|
||||
padding: 1em;
|
||||
columns: 1;
|
||||
lines: 3;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
expand: true;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
cursor: "default";
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
// Elements //
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 1em;
|
||||
padding: 0.4em 0.5em 0.4em 3.3em;
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
element.normal.normal,
|
||||
element.alternate.normal {
|
||||
background-color: transparent;
|
||||
text-color: @neutral;
|
||||
}
|
||||
|
||||
element selected.normal {
|
||||
border-radius: 0.5em;
|
||||
// background-color: @primary-opa;
|
||||
background-image: linear-gradient(135deg,#d5aed666,#7866C44d,#7A7FDE66);
|
||||
text-color: @secondary;
|
||||
border-color: @primary-opa;
|
||||
border: 1px;
|
||||
}
|
||||
element-icon {
|
||||
size: 1.5em;
|
||||
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;
|
||||
highlight: bold;
|
||||
}
|
||||
|
||||
// Error message //
|
||||
error-message {
|
||||
text-color: #cdd6f4ff;
|
||||
background-color: #11111be6;
|
||||
text-transform: capitalize;
|
||||
children: [ "textbox" ];
|
||||
}
|
||||
|
||||
textbox {
|
||||
text-color: inherit;
|
||||
background-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
23
hyprland/rofi/power-manager/rofi-power-manager.sh
Executable file
23
hyprland/rofi/power-manager/rofi-power-manager.sh
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
# save as ~/.local/bin/rofi-power-manager.sh
|
||||
|
||||
LOCKSCREEN=" Lock Screen"
|
||||
SLEEP=" Sleep"
|
||||
REBOOT=" Reboot"
|
||||
SHUTDOWN=" Shutdown"
|
||||
chosen=$(echo -e "$SLEEP\n$REBOOT\n$SHUTDOWN\n$LOCKSCREEN" | rofi -mesg " $HOSTNAME" -dmenu -p "Action:" -config ~/.config/rofi/power-manager/power-manager.rasi)
|
||||
|
||||
case $chosen in
|
||||
"$SLEEP")
|
||||
systemctl suspend-then-hibernate
|
||||
;;
|
||||
"$LOCKSCREEN")
|
||||
pid hyprlock || ~/.config/hypr/run-hyprlock.sh
|
||||
;;
|
||||
"$REBOOT")
|
||||
systemctl reboot
|
||||
;;
|
||||
"$SHUTDOWN")
|
||||
systemctl poweroff
|
||||
;;
|
||||
esac
|
||||
87
hyprland/rofi/settings-manager/rofi-settings-manager.sh
Executable file
87
hyprland/rofi/settings-manager/rofi-settings-manager.sh
Executable file
@@ -0,0 +1,87 @@
|
||||
#!/bin/bash
|
||||
# run init setup.sh to symlink scripts
|
||||
THEME_FILE=~/.config/rofi/settings-manager/settings-manager.rasi
|
||||
get_current_monitor() {
|
||||
# Use Hyprland's native cursor position
|
||||
local pos=$(hyprctl cursorpos 2>/dev/null)
|
||||
|
||||
if [ -z "$pos" ]; then
|
||||
echo "Error: Could not get cursor position from Hyprland" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Strip whitespace and extract coordinates
|
||||
local x=$(echo "$pos" | cut -d',' -f1 | tr -d ' ')
|
||||
local y=$(echo "$pos" | cut -d',' -f2 | tr -d ' ')
|
||||
|
||||
hyprctl monitors -j | jq -r --arg x "$x" --arg y "$y" '
|
||||
.[] | select(
|
||||
.x <= ($x | tonumber) and
|
||||
.y <= ($y | tonumber) and
|
||||
(.x + .width) >= ($x | tonumber) and
|
||||
(.y + .height) >= ($y | tonumber)
|
||||
) | .name'
|
||||
}
|
||||
|
||||
# Store the monitor at the start
|
||||
if [ -z "$ROFI_MONITOR" ]; then
|
||||
export ROFI_MONITOR=$(get_current_monitor)
|
||||
fi
|
||||
|
||||
post_rofi() {
|
||||
local image_dir="$HOME/.config/rofi/images/sg"
|
||||
local current_image=$(grep "background-image: url" "$THEME_FILE" | cut -d'"' -f2)
|
||||
local new_image=$(find "$image_dir" -type f | sort -R | head -n 1 | sed "s|^$HOME|~|")
|
||||
while true; do
|
||||
if [[ "$new_image" != "$current_image" ]]; then
|
||||
sed -i 's|url("[^"]*"|url("'"$new_image"'"|' "$THEME_FILE"
|
||||
break
|
||||
fi
|
||||
new_image=$(find "$image_dir" -type f | sort -R | head -n 1 | sed "s|^$HOME|~|")
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
MONITOR_RELOAD=" Refresh"
|
||||
MONITOR_SETTINGS=" Settings"
|
||||
MONITOR_BACK=" Back"
|
||||
MONITOR=" Monitor"
|
||||
SOUND=" Sound"
|
||||
BLUETOOTH=" Bluetooth"
|
||||
NETWORK=" Network"
|
||||
NIGHTLIGHT=" Night Light"
|
||||
|
||||
if [[ "$1" == "monitor" ]]; then
|
||||
chosen=$(echo -e "$MONITOR_RELOAD\n$MONITOR_SETTINGS\n$MONITOR_BACK" | rofi -mesg " Monitor" -dmenu -p "Action:" -config ~/.config/rofi/settings-manager/settings-manager.rasi -monitor "$ROFI_MONITOR")
|
||||
else
|
||||
chosen=$(echo -e "$MONITOR\n$SOUND\n$BLUETOOTH\n$NETWORK\n$NIGHTLIGHT" | rofi -mesg " Settings" -dmenu -p "Action:" -config ~/.config/rofi/settings-manager/settings-manager.rasi -monitor "$ROFI_MONITOR")
|
||||
fi
|
||||
|
||||
case $chosen in
|
||||
"$MONITOR_BACK")
|
||||
bash ~/.config/rofi/settings-manager/rofi-settings-manager.sh
|
||||
;;
|
||||
"$MONITOR")
|
||||
bash ~/.config/rofi/settings-manager/rofi-settings-manager.sh "monitor"
|
||||
;;
|
||||
"$MONITOR_RELOAD")
|
||||
bash ~/.config/hypr/reload-monitors.sh
|
||||
;;
|
||||
"$MONITOR_SETTINGS")
|
||||
ghostty -e hyprmon
|
||||
;;
|
||||
"$SOUND")
|
||||
pavucontrol
|
||||
;;
|
||||
"$BLUETOOTH")
|
||||
blueman-manager
|
||||
;;
|
||||
"$NETWORK")
|
||||
ghostty -e nmtui
|
||||
;;
|
||||
"$NIGHTLIGHT")
|
||||
ghostty -e ~/.config/wlsunset/run-wlsunset.sh
|
||||
;;
|
||||
esac
|
||||
|
||||
post_rofi &
|
||||
129
hyprland/rofi/settings-manager/settings-manager.rasi
Normal file
129
hyprland/rofi/settings-manager/settings-manager.rasi
Normal file
@@ -0,0 +1,129 @@
|
||||
configuration {
|
||||
font: "Geist 12";
|
||||
hover-select: true;
|
||||
me-select-entry: "MousePrimary";
|
||||
me-accept-entry: "!MousePrimary";
|
||||
click-to-exit: true;
|
||||
}
|
||||
|
||||
@theme "~/.config/rofi/theme.rasi"
|
||||
|
||||
// Main //
|
||||
window {
|
||||
width: 26em;
|
||||
height: 15.8em;
|
||||
fullscreen: false;
|
||||
enabled: true;
|
||||
cursor: "default";
|
||||
spacing: 0em;
|
||||
opacity: 0;
|
||||
background-color: transparent;
|
||||
extend: false;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 0em;
|
||||
orientation: vertical;
|
||||
children: [ "message", "mainContent" ];
|
||||
border-color: @primary-opa;
|
||||
border: 1px;
|
||||
border-radius: 1em;
|
||||
background-color: transparent;
|
||||
}
|
||||
// decorative text at top
|
||||
message {
|
||||
enabled: true;
|
||||
background-color: @base-200;
|
||||
text-color: @primary;
|
||||
border: none;
|
||||
}
|
||||
textbox {
|
||||
padding: 12px 1em 12px 0px;
|
||||
font: "Octal Light 18";
|
||||
horizontal-align: 0.0;
|
||||
vertical-align: 0.5;
|
||||
}
|
||||
mainContent {
|
||||
padding: 1em 0;
|
||||
orientation: horizontal;
|
||||
children: [ "listview", "imageBoxOverlay" ];
|
||||
background-color: @base-200-opa;
|
||||
}
|
||||
imageBoxOverlay {
|
||||
children: ["imageBox"];
|
||||
margin: 0em 1em 0em 0em;
|
||||
border-radius: 1em;
|
||||
padding: 0.4em;
|
||||
background-image: linear-gradient(135deg,#B575E6,#EBD488,#9084E8);
|
||||
}
|
||||
imageBox {
|
||||
enabled: true;
|
||||
background-image: url("~/.config/rofi/images/sg/15.jpg", width);
|
||||
border-radius: 1em;
|
||||
}
|
||||
|
||||
// Lists //
|
||||
listview {
|
||||
enabled: true;
|
||||
spacing: 0.6em;
|
||||
padding: 0em 1em;
|
||||
columns: 1;
|
||||
lines: 3;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
expand: true;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
cursor: "default";
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
// Elements //
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 1em;
|
||||
padding: 0.4em 0em 0.4em 2.9em;
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
text-color: #E6D5E6;
|
||||
}
|
||||
element selected.normal {
|
||||
border-radius: 0.5em;
|
||||
background-image: linear-gradient(135deg,#d5aed666,#7866C44d,#7A7FDE66);
|
||||
text-color: @secondary;
|
||||
border-color: @primary-opa;
|
||||
border: 1px;
|
||||
}
|
||||
element-icon {
|
||||
size: 1.5em;
|
||||
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;
|
||||
highlight: bold;
|
||||
}
|
||||
|
||||
// Error message //
|
||||
error-message {
|
||||
text-color: #cdd6f4ff;
|
||||
background-color: #11111be6;
|
||||
text-transform: capitalize;
|
||||
children: [ "textbox" ];
|
||||
}
|
||||
|
||||
textbox {
|
||||
text-color: inherit;
|
||||
background-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
7
hyprland/rofi/setup.sh
Executable file
7
hyprland/rofi/setup.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
ln -s ~/.config/rofi/app-manager/rofi-app-manager.sh ~/.local/bin/rofi-app-manager.sh
|
||||
ln -s ~/.config/rofi/config-manager/rofi-config-manager.sh ~/.local/bin/rofi-config-manager.sh
|
||||
ln -s ~/.config/rofi/settings-manager/rofi-settings-manager.sh ~/.local/bin/rofi-settings-manager.sh
|
||||
ln -s ~/.config/rofi/power-manager/rofi-power-manager.sh ~/.local/bin/rofi-power-manager.sh
|
||||
ln -s ~/.config/rofi/help-manager/rofi-help-manager.sh ~/.local/bin/rofi-help-manager.sh
|
||||
|
||||
16
hyprland/rofi/theme.rasi
Normal file
16
hyprland/rofi/theme.rasi
Normal file
@@ -0,0 +1,16 @@
|
||||
* {
|
||||
base-300: #000000;
|
||||
|
||||
base-100: #393342;
|
||||
base-200: #211C2E;
|
||||
base-200-opa: #3D3445a6;
|
||||
neutral: #BAB6A9;
|
||||
neutral-content:#5C543E;
|
||||
primary: #d5aed6;
|
||||
primary-opa: #d5aed699;
|
||||
secondary: #f3e2a9;
|
||||
accent: #7866C4;
|
||||
|
||||
success: #a3be8c;
|
||||
error: #C97F87;
|
||||
}
|
||||
2
hyprland/setups/jp-keyboard-setup.sh
Executable file
2
hyprland/setups/jp-keyboard-setup.sh
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
sudo pacman -S fcitx5 fcitx5-anthy fcitx5-gtk fcitx5-qt fcitx5-configtool
|
||||
57
hyprland/setups/monitor-detection-setup.sh
Executable file
57
hyprland/setups/monitor-detection-setup.sh
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "This script must be run as root (use sudo)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -n "$SUDO_USER" ]]; then
|
||||
USER_HOME=$(getent passwd "$SUDO_USER" | cut -d: -f6)
|
||||
else
|
||||
USER_HOME="$HOME"
|
||||
fi
|
||||
|
||||
SOURCE_FILE="$USER_HOME/.config/hypr/reload-monitors.sh"
|
||||
TARGET_LINK="/usr/local/bin/reload-monitors.sh"
|
||||
|
||||
# Check if source file exists
|
||||
if [[ ! -f "$SOURCE_FILE" ]]; then
|
||||
echo "Error: Source file does not exist: $SOURCE_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if source file is executable
|
||||
if [[ ! -x "$SOURCE_FILE" ]]; then
|
||||
echo "Warning: Source file is not executable. Making it executable..."
|
||||
chmod +x "$SOURCE_FILE"
|
||||
fi
|
||||
|
||||
# Create the symlink
|
||||
echo "Creating symlink..."
|
||||
sudo ln -sf "$SOURCE_FILE" "$TARGET_LINK"
|
||||
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo "✓ Symlink created successfully:"
|
||||
else
|
||||
echo "✗ Failed to create symlink"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RULE_FILE="/etc/udev/rules.d/99-hypr-monitor-hotplug.rules"
|
||||
RULE_CONTENT='ACTION=="change", SUBSYSTEM=="drm", RUN+="/usr/local/bin/reload-monitors.sh"'
|
||||
|
||||
echo "$RULE_CONTENT" > "$RULE_FILE"
|
||||
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo "✓ Rule file created successfully at: $RULE_FILE"
|
||||
|
||||
# Reload udev rules
|
||||
echo "Reloading udev rules..."
|
||||
udevadm control --reload-rules
|
||||
udevadm trigger
|
||||
|
||||
echo "✓ Done! The monitor hotplug detection should now be active."
|
||||
else
|
||||
echo "✗ Failed to create rule file"
|
||||
exit 1
|
||||
fi
|
||||
28
hyprland/update.sh
Executable file
28
hyprland/update.sh
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
cp ~/.config/rofi/theme.rasi ./rofi
|
||||
cp ~/.config/rofi/app-manager/* ./rofi/app-manager
|
||||
cp ~/.config/rofi/settings-manager/* ./rofi/settings-manager
|
||||
cp ~/.config/rofi/config-manager/* ./rofi/config-manager
|
||||
cp ~/.config/rofi/power-manager/* ./rofi/power-manager
|
||||
cp ~/.config/rofi/help-manager/* ./rofi/help-manager
|
||||
cp ~/.config/rofi/setup.sh ./rofi
|
||||
|
||||
cp ~/.config/wlsunset/run-wlsunset.sh ./wlsunset
|
||||
|
||||
cp ~/.config/hypr/* ./hypr
|
||||
|
||||
cp ~/.config/fastfetch/* ./fastfetch
|
||||
|
||||
cp -r ~/.config/waybar/* ./waybar
|
||||
|
||||
cp ~/.config/mako/* ./mako
|
||||
|
||||
cp -r ~/.config/ghostty/* ./ghostty
|
||||
|
||||
cp -r ~/.config/btop/* ./btop
|
||||
|
||||
cp -r ~/.config/gtk-3.0/* ./gtk-3.0
|
||||
|
||||
cp -r ~/.config/gtk-4.0/* ./gtk-4.0
|
||||
|
||||
10
hyprland/usr.share.applications/discord.desktop
Normal file
10
hyprland/usr.share.applications/discord.desktop
Normal file
@@ -0,0 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Name=Discord
|
||||
StartupWMClass=discord
|
||||
Comment=All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone.
|
||||
GenericName=Internet Messenger
|
||||
Exec=/usr/bin/discord --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime
|
||||
Icon=discord
|
||||
Type=Application
|
||||
Categories=Network;InstantMessaging;
|
||||
Path=/usr/bin
|
||||
112
hyprland/waybar/config.jsonc
Normal file
112
hyprland/waybar/config.jsonc
Normal file
@@ -0,0 +1,112 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"margin-top": 12,
|
||||
"margin-left": 15,
|
||||
"margin-right": 15,
|
||||
"spacing": 12,
|
||||
"modules-left": ["clock#date", "hyprland/workspaces", "custom/settings", "custom/configs", "custom/discord"],
|
||||
"modules-right": ["custom/keyboard", "wireplumber", "network", "custom/gpu", "cpu", "memory", "battery", "custom/power"],
|
||||
"modules-center": ["clock#time"],
|
||||
|
||||
"custom/gpu": {
|
||||
"exec": "cat /sys/class/drm/card*/device/gpu_busy_percent 2>/dev/null | head -1",
|
||||
"format-icons": ["<span color='#BCB9EB'></span>"],
|
||||
"format": "{}% {icon}",
|
||||
"interval": 8
|
||||
},
|
||||
"custom/keyboard": {
|
||||
"signal": 8,
|
||||
"format-icons": ["<span color='#BCB9EB'>⌨</span>"],
|
||||
"format": "{} {icon}",
|
||||
"exec": "~/.config/waybar/scripts/fcitx5-status.sh"
|
||||
},
|
||||
"custom/configs": {
|
||||
"format-icons": ["<span color='#BCB9EB'></span>"],
|
||||
"format": "{icon}",
|
||||
"tooltip": true,
|
||||
"tooltip-format": "Config list",
|
||||
"on-click": "~/.local/bin/rofi-config-manager.sh"
|
||||
},
|
||||
"custom/settings": {
|
||||
"format-icons": ["<span color='#BCB9EB'></span>"],
|
||||
"format": "{icon}",
|
||||
"tooltip": true,
|
||||
"tooltip-format": "Control panel",
|
||||
"on-click": "~/.local/bin/rofi-settings-manager.sh"
|
||||
},
|
||||
"custom/discord": {
|
||||
"format-icons": ["<span color='#BCB9EB'></span>"],
|
||||
"format": "{icon}",
|
||||
"tooltip": false,
|
||||
"on-click": "discord --enable-features=UseOzonePlatform --ozone-platform=wayland"
|
||||
},
|
||||
"hyprland/workspaces": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"active": "",
|
||||
"default": "",
|
||||
"urgent": ""
|
||||
},
|
||||
"on-click": "activate"
|
||||
},
|
||||
"cpu": {
|
||||
"format-icons": ["<span color='#BCB9EB'></span>"],
|
||||
"format": "{usage}% {icon}",
|
||||
"tooltip": false
|
||||
},
|
||||
"memory": {
|
||||
"format-icons": ["<span color='#BCB9EB'></span>"],
|
||||
"format": "{}% {icon}"
|
||||
},
|
||||
"clock#date": {
|
||||
"format": "{:%m/%d}"
|
||||
},
|
||||
"clock#time": {
|
||||
"format": "{:%H:%M}"
|
||||
},
|
||||
"custom/power": {
|
||||
"format-icons": ["<span color='#C97F87'></span>"],
|
||||
"format": "{icon}",
|
||||
"tooltip": false,
|
||||
"on-click": "~/.local/bin/rofi-power-manager.sh"
|
||||
},
|
||||
|
||||
"network": {
|
||||
"max-length": 10,
|
||||
"format-wifi": "{essid} <span color='#BCB9EB'></span>",
|
||||
"format-ethernet": "{ipaddr}/{cidr} ",
|
||||
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||
"format-linked": "{ifname} (No IP) ",
|
||||
"format-disconnected": "Disconnected ⚠",
|
||||
"on-click": "ghostty -e nmtui & disown"
|
||||
// "format-alt": "{ifname}: {ipaddr}/{cidr}",
|
||||
},
|
||||
"wireplumber": {
|
||||
"format": "{volume}% <span color='#BCB9EB'>{icon}</span>",
|
||||
"format-icons": {
|
||||
"default": [
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"format-muted": "<span color='#BCB9EB'></span>",
|
||||
"on-click": "pavucontrol"
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
// "good": 95,
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-full": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-alt": "{time} {icon}",
|
||||
"format-icons": ["<span color='#BCB9EB'></span>", "<span color='#BCB9EB'></span>", "<span color='#BCB9EB'></span>", "<span color='#BCB9EB'></span>", "<span color='#BCB9EB'></span>"]
|
||||
// "format-good": "", // An empty format will hide the module
|
||||
// "format-full": "",
|
||||
// "format-plugged": "{capacity}% ",
|
||||
}
|
||||
}
|
||||
27
hyprland/waybar/scripts/fcitx5-monitor.sh
Executable file
27
hyprland/waybar/scripts/fcitx5-monitor.sh
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
current_im=$(fcitx5-remote -n 2>/dev/null)
|
||||
if [[ "$current_im" == "anthy" ]]; then
|
||||
CURRENT_STATUS="JP"
|
||||
else
|
||||
CURRENT_STATUS="EN"
|
||||
fi
|
||||
|
||||
dbus-monitor --session "type='signal',interface='org.fcitx.Fcitx.InputContext1',member='CurrentIM'" 2>/dev/null | \
|
||||
while IFS= read -r line; do
|
||||
if [[ "$line" == *"member=CurrentIM"* ]]; then
|
||||
# Read the next line which contains the input method string
|
||||
read -r im_line
|
||||
if [[ "$im_line" == *"Anthy"* ]]; then
|
||||
NEW_STATUS="JP"
|
||||
else
|
||||
NEW_STATUS="EN"
|
||||
fi
|
||||
|
||||
# Only refresh if status actually changed
|
||||
if [[ "$NEW_STATUS" != "$CURRENT_STATUS" ]]; then
|
||||
sleep 0.1
|
||||
pkill -RTMIN+8 waybar
|
||||
CURRENT_STATUS="$NEW_STATUS"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user