migration
This commit is contained in:
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
|
||||
Reference in New Issue
Block a user