Upload from GitHub

This commit is contained in:
2025-02-28 11:41:18 +01:00
commit c1afb50799
302 changed files with 37418 additions and 0 deletions

359
laptop/.bashrc Executable file
View File

@@ -0,0 +1,359 @@
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
export PATH="/home/janis/.local/share/gem/ruby/3.0.0/bin: $PATH"
export PATH="/home/janis/.local/bin: $PATH"
alias editHyprlandConf='nano ~/.config/hypr/hyprland.conf'
alias ls='ls -l --color=auto'
alias ll='ls -la --color=auto'
alias sl='ls --color=auto'
alias start-httpd='sudo systemctl start httpd'
PS1='[\u@\h \W]\$ '
################################################################################
## FUNCTIONS ##
################################################################################
##
## ARRANGE $PWD AND STORE IT IN $NEW_PWD
## * The home directory (HOME) is replaced with a ~
## * The last pwdmaxlen characters of the PWD are displayed
## * Leading partial directory names are striped off
## /home/me/stuff -> ~/stuff (if USER=me)
## /usr/share/big_dir_name -> ../share/big_dir_name (if pwdmaxlen=20)
##
## Original source: WOLFMAN'S color bash promt
## https://wiki.chakralinux.org/index.php?title=Color_Bash_Prompt#Wolfman.27s
##
bash_prompt_command() {
# How many characters of the $PWD should be kept
local pwdmaxlen=25
# Indicate that there has been dir truncation
local trunc_symbol=".."
# Store local dir
local dir=${PWD##*/}
# Which length to use
pwdmaxlen=$(( ( pwdmaxlen < ${#dir} ) ? ${#dir} : pwdmaxlen ))
NEW_PWD=${PWD/#$HOME/\~}
local pwdoffset=$(( ${#NEW_PWD} - pwdmaxlen ))
# Generate name
if [ ${pwdoffset} -gt "0" ]
then
NEW_PWD=${NEW_PWD:$pwdoffset:$pwdmaxlen}
NEW_PWD=${trunc_symbol}/${NEW_PWD#*/}
fi
}
##
## GENERATE A FORMAT SEQUENCE
##
format_font()
{
## FIRST ARGUMENT TO RETURN FORMAT STRING
local output=$1
case $# in
2)
eval $output="'\[\033[0;${2}m\]'"
;;
3)
eval $output="'\[\033[0;${2};${3}m\]'"
;;
4)
eval $output="'\[\033[0;${2};${3};${4}m\]'"
;;
*)
eval $output="'\[\033[0m\]'"
;;
esac
}
##
## COLORIZE BASH PROMT
##
bash_prompt() {
############################################################################
## COLOR CODES ##
## These can be used in the configuration below ##
############################################################################
## FONT EFFECT
local NONE='0'
local BOLD='1'
local DIM='2'
local UNDERLINE='4'
local BLINK='5'
local INVERT='7'
local HIDDEN='8'
## COLORS
local DEFAULT='9'
local BLACK='0'
local RED='1'
local GREEN='2'
local YELLOW='3'
local BLUE='4'
local MAGENTA='5'
local CYAN='6'
local L_GRAY='7'
local D_GRAY='60'
local L_RED='61'
local L_GREEN='62'
local L_YELLOW='63'
local L_BLUE='64'
local L_MAGENTA='65'
local L_CYAN='66'
local WHITE='67'
## TYPE
local RESET='0'
local EFFECT='0'
local COLOR='30'
local BG='40'
## 256 COLOR CODES
local NO_FORMAT="\[\033[0m\]"
local ORANGE_BOLD="\[\033[1;38;5;208m\]"
local TOXIC_GREEN_BOLD="\[\033[1;38;5;118m\]"
local RED_BOLD="\[\033[1;38;5;1m\]"
local CYAN_BOLD="\[\033[1;38;5;87m\]"
local BLACK_BOLD="\[\033[1;38;5;0m\]"
local WHITE_BOLD="\[\033[1;38;5;15m\]"
local GRAY_BOLD="\[\033[1;90m\]"
local BLUE_BOLD="\[\033[1;38;5;74m\]"
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
## CONFIGURE HERE ##
############################################################################
## CONFIGURATION ##
## Choose your color combination here ##
############################################################################
local FONT_COLOR_1=$WHITE
local BACKGROUND_1=$RED
local TEXTEFFECT_1=$BOLD
local FONT_COLOR_2=$WHITE
local BACKGROUND_2=$YELLOW
local TEXTEFFECT_2=$BOLD
local FONT_COLOR_3=$D_GRAY
local BACKGROUND_3=$WHITE
local TEXTEFFECT_3=$BOLD
local PROMT_FORMAT=$BLUE_BOLD
############################################################################
## EXAMPLE CONFIGURATIONS ##
## I use them for different hosts. Test them out ;) ##
############################################################################
## CONFIGURATION: BLUE-WHITE
if [ "$HOSTNAME" = dell ]; then
FONT_COLOR_1=$WHITE; BACKGROUND_1=$BLUE; TEXTEFFECT_1=$BOLD
FONT_COLOR_2=$WHITE; BACKGROUND_2=$L_BLUE; TEXTEFFECT_2=$BOLD
FONT_COLOR_3=$D_GRAY; BACKGROUND_3=$WHITE; TEXTEFFECT_3=$BOLD
PROMT_FORMAT=$CYAN_BOLD
fi
## CONFIGURATION: BLACK-RED
if [ "$HOSTNAME" = giraff6 ]; then
FONT_COLOR_1=$WHITE; BACKGROUND_1=$BLACK; TEXTEFFECT_1=$BOLD
FONT_COLOR_2=$WHITE; BACKGROUND_2=$D_GRAY; TEXTEFFECT_2=$BOLD
FONT_COLOR_3=$WHITE; BACKGROUND_3=$RED; TEXTEFFECT_3=$BOLD
PROMT_FORMAT=$RED_BOLD
fi
## CONFIGURATION: RED-BLACK
#FONT_COLOR_1=$WHITE; BACKGROUND_1=$RED; TEXTEFFECT_1=$BOLD
#FONT_COLOR_2=$WHITE; BACKGROUND_2=$D_GRAY; TEXTEFFECT_2=$BOLD
#FONT_COLOR_3=$WHITE; BACKGROUND_3=$BLACK; TEXTEFFECT_3=$BOLD
#PROMT_FORMAT=$RED_BOLD
## CONFIGURATION: CYAN-BLUE
if [ "$HOSTNAME" = sharkoon ]; then
FONT_COLOR_1=$BLACK; BACKGROUND_1=$L_CYAN; TEXTEFFECT_1=$BOLD
FONT_COLOR_2=$WHITE; BACKGROUND_2=$L_BLUE; TEXTEFFECT_2=$BOLD
FONT_COLOR_3=$WHITE; BACKGROUND_3=$BLUE; TEXTEFFECT_3=$BOLD
PROMT_FORMAT=$CYAN_BOLD
fi
## CONFIGURATION: GRAY-SCALE
if [ "$HOSTNAME" = giraff ]; then
FONT_COLOR_1=$WHITE; BACKGROUND_1=$BLACK; TEXTEFFECT_1=$BOLD
FONT_COLOR_2=$WHITE; BACKGROUND_2=$D_GRAY; TEXTEFFECT_2=$BOLD
FONT_COLOR_3=$WHITE; BACKGROUND_3=$L_GRAY; TEXTEFFECT_3=$BOLD
PROMT_FORMAT=$BLACK_BOLD
fi
## CONFIGURATION: GRAY-CYAN
if [ "$HOSTNAME" = light ]; then
FONT_COLOR_1=$WHITE; BACKGROUND_1=$BLACK; TEXTEFFECT_1=$BOLD
FONT_COLOR_2=$WHITE; BACKGROUND_2=$D_GRAY; TEXTEFFECT_2=$BOLD
FONT_COLOR_3=$BLACK; BACKGROUND_3=$L_CYAN; TEXTEFFECT_3=$BOLD
PROMT_FORMAT=$CYAN_BOLD
fi
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
############################################################################
## TEXT FORMATING ##
## Generate the text formating according to configuration ##
############################################################################
## CONVERT CODES: add offset
FC1=$(($FONT_COLOR_1+$COLOR))
BG1=$(($BACKGROUND_1+$BG))
FE1=$(($TEXTEFFECT_1+$EFFECT))
FC2=$(($FONT_COLOR_2+$COLOR))
BG2=$(($BACKGROUND_2+$BG))
FE2=$(($TEXTEFFECT_2+$EFFECT))
FC3=$(($FONT_COLOR_3+$COLOR))
BG3=$(($BACKGROUND_3+$BG))
FE3=$(($TEXTEFFECT_3+$EFFECT))
FC4=$(($FONT_COLOR_4+$COLOR))
BG4=$(($BACKGROUND_4+$BG))
FE4=$(($TEXTEFFECT_4+$EFFECT))
## CALL FORMATING HELPER FUNCTION: effect + font color + BG color
local TEXT_FORMAT_1
local TEXT_FORMAT_2
local TEXT_FORMAT_3
local TEXT_FORMAT_4
format_font TEXT_FORMAT_1 $FE1 $FC1 $BG1
format_font TEXT_FORMAT_2 $FE2 $FC2 $BG2
format_font TEXT_FORMAT_3 $FC3 $FE3 $BG3
format_font TEXT_FORMAT_4 $FC4 $FE4 $BG4
# GENERATE PROMT SECTIONS
local PROMT_USER=$"$TEXT_FORMAT_1 \u "
local PROMT_HOST=$"$TEXT_FORMAT_2 \h "
local PROMT_PWD=$"$TEXT_FORMAT_3 \${NEW_PWD} "
local PROMT_INPUT=$"$PROMT_FORMAT "
############################################################################
## SEPARATOR FORMATING ##
## Generate the separators between sections ##
## Uses background colors of the sections ##
############################################################################
## CONVERT CODES
TSFC1=$(($BACKGROUND_1+$COLOR))
TSBG1=$(($BACKGROUND_2+$BG))
TSFC2=$(($BACKGROUND_2+$COLOR))
TSBG2=$(($BACKGROUND_3+$BG))
TSFC3=$(($BACKGROUND_3+$COLOR))
TSBG3=$(($DEFAULT+$BG))
## CALL FORMATING HELPER FUNCTION: effect + font color + BG color
local SEPARATOR_FORMAT_1
local SEPARATOR_FORMAT_2
local SEPARATOR_FORMAT_3
format_font SEPARATOR_FORMAT_1 $TSFC1 $TSBG1
format_font SEPARATOR_FORMAT_2 $TSFC2 $TSBG2
format_font SEPARATOR_FORMAT_3 $TSFC3 $TSBG3
# GENERATE SEPARATORS WITH FANCY TRIANGLE
local TRIANGLE=$'\uE0B0'
local SEPARATOR_1=$SEPARATOR_FORMAT_1$TRIANGLE
local SEPARATOR_2=$SEPARATOR_FORMAT_2$TRIANGLE
local SEPARATOR_3=$SEPARATOR_FORMAT_3$TRIANGLE
############################################################################
## WINDOW TITLE ##
## Prevent messed up terminal-window titles ##
############################################################################
case $TERM in
xterm*|rxvt*)
local TITLEBAR='\[\033]0;\u:${NEW_PWD}\007\]'
;;
*)
local TITLEBAR=""
;;
esac
############################################################################
## BASH PROMT ##
## Generate promt and remove format from the rest ##
############################################################################
PS1="$TITLEBAR\n${PROMT_USER}${SEPARATOR_1}${PROMT_HOST}${SEPARATOR_2}${PROMT_PWD}${SEPARATOR_3}${PROMT_INPUT}"
## For terminal line coloring, leaving the rest standard
none="$(tput sgr0)"
trap 'echo -ne "${none}"' DEBUG
}
################################################################################
## MAIN ##
################################################################################
## Bash provides an environment variable called PROMPT_COMMAND.
## The contents of this variable are executed as a regular Bash command
## just before Bash displays a prompt.
## We want it to call our own command to truncate PWD and store it in NEW_PWD
PROMPT_COMMAND=bash_prompt_command
## Call bash_promnt only once, then unset it (not needed any more)
## It will set $PS1 with colors and relative to $NEW_PWD,
## which gets updated by $PROMT_COMMAND on behalf of the terminal
bash_prompt
unset bash_prompt
### EOF ###

View File

@@ -0,0 +1,39 @@
#░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
#░ ░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░ ░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░
#▒ ▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒ ▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒
#▒ ▒▒▒▒ ▒ ▒▒▒ ▒ ▒ ▒▒▒ ▒ ▒▒▒▒▒▒▒▒▒▒ ▒▒ ▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒ ▒ ▒▒▒ ▒ ▒▒▒▒▒▒▒ ▒▒
#▓ ▓▓ ▓ ▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓▓ ▓ ▓▓ ▓▓ ▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓ ▓▓ ▓▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓
#▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓ ▓▓ ▓▓▓▓ ▓ ▓▓▓ ▓▓ ▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓ ▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓▓
#▓ ▓▓▓▓ ▓▓▓▓▓ ▓▓▓ ▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓▓ ▓▓ ▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓ ▓▓ ▓▓ ▓▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓
#█ ████ ████ ████ ██████ ████ ██ █ ██ ███ █████████████ ██████ █████ ██ ███ ████ █████ █
#██████████████ █████ ████████████████████████████████████████████████████████████████████████████████████████████████ ██
general {
lock_cmd = hyprlock --immediate
unlock_cmd = loginctl unlock-session
before_sleep_cmd = hyprlock --immediate
after_sleep_cmd = hyprlock --immediate
}
listener {
timeout = 100
on-timeout = notify-send "Entering idle state... (200s to screen off)"
on-resume = notify-send "Welcome back!"
}
listener {
timeout = 200
on-timeout = notify-send "100s to screen off" && sleep 5 && hyprlock
}
listener {
timeout = 300
on-timeout = hyprctl dispatch dpms off
on-resume = hyprctl dispatch dpms on
}
listener {
timeout = 600
on-timeout = systemctl suspend
on-resume = hyprctl dispatch dpms on
}

View File

@@ -0,0 +1,349 @@
#░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
#░ ░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░
#▒ ▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒
#▒ ▒▒▒▒ ▒ ▒▒▒ ▒ ▒ ▒▒▒ ▒ ▒ ▒▒▒▒ ▒▒▒▒▒ ▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒ ▒ ▒▒▒ ▒ ▒▒▒▒▒▒▒ ▒▒
#▓ ▓▓ ▓ ▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓▓ ▓▓ ▓▓▓ ▓▓ ▓▓ ▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓ ▓▓ ▓▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓
#▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓ ▓▓ ▓▓▓▓ ▓ ▓▓▓ ▓▓▓ ▓▓ ▓ ▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓ ▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓▓
#▓ ▓▓▓▓ ▓▓▓▓▓ ▓▓▓ ▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓▓ ▓▓▓ ▓▓ ▓ ▓▓▓ ▓▓▓▓▓▓▓▓▓ ▓▓▓ ▓▓ ▓▓ ▓▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓
#█ ████ ████ ████ ██████ ████ ███ █ █ ██ ██ █ ███████████ ██████ █████ ██ ███ ████ █████ █
#██████████████ █████ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ██
#----------#
# MONITORS #
#----------#
monitor=eDP-1, 2880x1800@60, 0x0, 1.5
# monitor=,highres highrr, auto, 1
#-----------------------#
# LAUNCHING OF PROGRAMS #
#-----------------------#
exec-once = dunst
# exec-once = wl-clipboard-history -t
exec-once = ~/.config/hypr/xdg-portal-hyprland
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XAUTHORITY DISPLAY
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = waybar
exec-once = hypridle
# exec-once = openrgb --startminimized
# exec-once = polychromatic-tray-applet
# exec-once = blueman-applet
exec-once = nm-applet
exec-once = nextcloud
exec = swaybg -m fill -i /home/janis/Pictures/arch-bg.png
exec = hyprctl setcursor oreo_spark_blue_cursors 36
env = QT_QPA_PLATFORM,wayland
env = QT_QPA_PLATFORM_THEME,qt6ct
# env = GDK_SCALE,2
# env = GDK_DPI_SCALE,0.75
env = HYPRCURSOR_THEME, Oreo_spark_blue_cursor
env = X_CURSOR_THEME, Oreo_spark_blue_cursor
env = XCURSOR_SIZE,24
# env = ELECTRON_OZONE_PLATFORM_HINT,wayland
#-------#
# INPUT #
#-------#
input {
kb_layout = ch
natural_scroll = true
numlock_by_default = true
follow_mouse = 2
mouse_refocus = true
touchpad {
disable_while_typing = true
natural_scroll = true
}
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
#----------------#
# GENERAL CONFIG #
#----------------#
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 3
gaps_out = 10
border_size = 1
col.active_border = rgba(2288ffee) rgba(a6f7adff) 45deg
col.inactive_border = rgba(595959aa)
layout = master
no_border_on_floating = false
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
inactive_opacity = 1
rounding = 10
shadow {
enabled = false
range = 4
color = rgba(1a1a1aee)
}
blur {
enabled = false
xray = true
new_optimizations = true
size = 1
passes = 2
}
dim_inactive = true
dim_strength = 0.1
}
animations {
enabled = yes
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
misc {
disable_hyprland_logo = true
disable_splash_rendering = false
vrr = 2
vfr = 1
allow_session_lock_restore = true
}
dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
}
master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = true
workspace_swipe_distance = 300
}
cursor {
no_warps = false
inactive_timeout = 60
}
xwayland {
force_zero_scaling = true
}
# Display full sized (without gaps), if only window on screen
workspace = w[tv1], gapsout:0, gapsin:0
workspace = f[1], gapsout:0, gapsin:0
windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
# WINDOW RULES
windowrule = float, title:^(.*)(rofi)(.*)$
# windowrule = size 800 900, title:^(.*)(rofi)(.*)$
windowrule = animation popin, title:^(.*)(rofi)(.*)$
windowrule = center, title:^(.*)(rofi)(.*)$
windowrule = move 1450 50, title:^(.*)(Power menu)$
windowrule = workspace 2, evince
windowrule = workspace 2, okular
windowrule = fullscreen, title:wlogout
windowrule = workspace 2, title:^(.*)(LibreWolf)(.*)$
windowrule = workspace 2, title:^(.*)(WebCord)(.*)$
windowrule = workspace 3, title:^(Steam)(.*)$
windowrule = workspace 1, title:^(.*)(VSCodium)$
windowrule = workspace 3, minecraft-launcher
windowrule = tile, minecraft-launcher
windowrule = fullscreen, title:^(.*)Minecraft*(.*)$
windowrule = workspace 3, title:^(.*)Minecraft*(.*)$
# Hide terminator
windowrule = float, title:^(.*)hidden-terminator(.*)$
windowrule = size 0 0, title:^(.*)hidden-terminator(.*)$
windowrule = move 3000 0, title:^(.*)hidden-terminator(.*)$
windowrule = workspace 1, title:^(.*)hidden-terminator(.*)$
windowrule = float, file_progress
windowrule = float, confirm
windowrule = float, dialog
windowrule = float, download
windowrule = float, notification
windowrule = float, error
windowrule = float, splash
windowrule = float, confirmreset
windowrule = float, title:Open File
windowrule = float, title:branchdialog
windowrule = float, Lxappearance
windowrule = float, title:^(Media viewer)$
windowrule = float, title:^(Volume Control)$
windowrule = float, title:^(Picture-in-Picture)$
windowrule = float, title:^(Loading)(.*)$
windowrule = float, pavucontrol-qt
windowrule = float, pavucontrol
windowrule = float, file-roller
windowrule = idleinhibit always, ^(Steam)$
windowrule = idleinhibit focus, ^(Rocket League)(.*)$
windowrule = fullscreen, ^(Steam Big Picture)$
windowrule = idleinhibit always, steam
windowrule = idleinhibit always, lutris
windowrule = idleinhibit focus, vlc
windowrule = idleinhibit focus, supertuxkart
windowrule = idleinhibit fullscreen, title:^(.*)(WebCord)(.*)$
windowrule = idleinhibit fullscreen, title:^(.*)(~)(.*)$
windowrule = idleinhibit focus, title:^(.*)(~)(.*)$
windowrule = idleinhibit focus, title:^(.*)(LibreWolf)(.*)$
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Q, killactive
bind = $mainMod SHIFT, Q, exit
bind = $mainMod, Return, exec, kitty
# bind = $mainMod, Return, exec, terminator
bind = $mainMod, C, killactive,
bind = $mainMod, E, exec, thunar
bind = $mainMod, V, togglefloating,
bind = $mainMod, F, fullscreen,
# Launch commands
bind = $mainMod SHIFT, L, exec, librewolf
bind = $mainMod SHIFT, K, exec, librewolf http://localhost:8080/admin && librewolf http://localhost:8081/test/login
bind = $mainMod SHIFT, D, exec, terminator --title "hidden-terminator" -e "GDK_SCALE=2 webcord && exit"
# bind = $mainMod SHIFT, D, exec, webcord
# bind = $mainMod SHIFT, V, exec, terminator --title "hidden-terminator" -e "GDK_SCALE=2 codium && exit"
bind = $mainMod SHIFT, V, exec, codium
bind = $mainMod SHIFT, T, exec, thunderbird
bind = $mainMod SHIFT, M, exec, systemctl start docker && terminator -e "sudo docker run -it --network=host --device=/dev/kfd --device=/dev/dri --ipc=host --shm-size 16G --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v /home/janis/projects:/mnt rocm/pytorch:latest"
# bind = $mainMod SHIFT, G, exec, notify-send 'Preparing system for gaming...' && /usr/lib/polkit-kde-authentication-agent-1 && notify-send 'Starting CoreCtrl...' && corectrl
bind = $mainMod SHIFT, G, exec, notify-send 'Preparing system for gaming...' && corectrl
bind = $mainMod SHIFT, P, exec, notify-send 'Steam is launching...' && steam
bind = $mainMod SHIFT, R, exec, notify-send 'START CORECTRL! (Super + Shift + G twice). Launching in Remoteplay optimised session' && steam -pipewire
bind = $mainMod CTRL, K, exec, notify-send 'Insta-Kill activated' && hyprctl kill
# Screenshots
bind = $mainMod SHIFT, S, exec, grimblast --notify copy area
bind = $mainMod CTRL, S, exec, grimblast --notify copysave area
bind = $mainMod ALT, S, exec, grimblast --notify save area
bind = , PRINT, exec, grimblast --notify copy screen
bind = CTRL, PRINT, exec, grimblast --notify copysave screen
bind = SHIFT, PRINT, exec, grimblast --notify save screen
# Rofi commands
bind = $mainMod, Space, exec, killall rofi || rofi -show combi -modes combi -combi-modes "window,drun,run"
bind = $mainMod SHIFT, Space, exec, rofi -modi "Global Search":"~/.config/rofi/spotlight/rofi-spotlight.sh" -show "Global Search" -config ~/.config/rofi/spotlight/rofi.rasi
bind = $mainMod, P, exec, killall rofi || rofi -show p -modi p:rofi-power-menu -theme ~/.config/rofi/themes/power.rasi
# Logout commands
bind = $mainMod, escape, exec, wlogout
bind = $mainMod, L, exec, hyprlock
#bind = $mainMod, L, exec, swaylock --screenshots --clock --indicator --grace 10 --fade-in 2 --effect-blur 10x10 --indicator-radius 200 --ring-color ff0202 --show-failed-attempts --effect-greyscale --effect-vignette 0.6:0.6
# 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
# 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
bind = $mainMod ALT, left, workspace, e-1
bind = $mainMod ALT, right, workspace, e+1
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
bind = $mainMod SHIFT, left, movetoworkspace, e-1
bind = $mainMod SHIFT, right, movetoworkspace, e+1
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Tile window to a part of the screen
bind = $mainMod CTRL, left, movewindow, left
bind = $mainMod CTRL, right, movewindow, right
# move to next window / previous window with ALT + Tab / SHIFT + ALT + Tab
bind = ALT SHIFT, tab, cyclenext, prev
# bind = ALT, tab, cyclenext, next
# bind = ALT CTRL, tab, focusurgentorlast
bind = ALT, tab, focusurgentorlast
# Master layout commands
bind = $mainMod CTRL, M, layoutmsg, swapwithmaster
bind = $mainMod SHIFT, A, layoutmsg, addmaster
bind = $mainMod SHIFT CTRL, right, layoutmsg, orientationnext
bind = $mainMod SHIFT CTRL, left, layoutmsg, orientationprev
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Freeze
bind = $mainMod SHIFT, escape, exec, hyprfreeze -a
# Volume control
bind = ,code:123, exec, pamixer -i 5
bind = ,code:122, exec, pamixer -d 5
bind = ,code:121, exec, pamixer -t
# Brightness-Control
bind = ,code:232, exec, light -U 5 && notify-send 'Display brightness decreased by 5%'
bind = ,code:233, exec, light -A 5 && notify-send 'Display brightness increased by 5%'
# Monitor config binds
bind = $mainMod CTRL, D, exec, hyprctl keyword monitor HDMI-A-1, 1920x1080@60, 1920x0, 1, mirror, eDP-1 && notify-send 'Set to mirror internal display'
bind = $mainMod CTRL, E, exec, hyprctl keyword monitor HDMI-A-1, 1920x1080@60, 1920x0, 1 && notify-send 'Set to expand external display'
# Internal display controls
bind = $mainMod ALT, E, exec, hyprctl keyword monitor eDP-1, 2880x1800@60, 0x0, 1.5 && notify-send 'Set to battery optimized display settings'
bind = $mainMod ALT, P, exec, hyprctl keyword monitor eDP-1, preferred, 0x0, 1.5 && notify-send 'Set to performance optimized display settings'

View File

@@ -0,0 +1,54 @@
#░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
#░ ░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░
#▒ ▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒
#▒ ▒▒▒▒ ▒ ▒▒▒ ▒ ▒ ▒▒▒ ▒ ▒ ▒▒▒▒ ▒▒▒▒▒ ▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒ ▒ ▒▒▒ ▒ ▒▒▒▒▒▒▒ ▒▒
#▓ ▓▓ ▓ ▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓▓ ▓▓ ▓▓▓ ▓▓ ▓▓ ▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓ ▓▓ ▓▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓
#▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓ ▓▓ ▓▓▓▓ ▓ ▓▓▓ ▓▓▓ ▓▓ ▓ ▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓ ▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓▓
#▓ ▓▓▓▓ ▓▓▓▓▓ ▓▓▓ ▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓▓ ▓▓▓ ▓▓ ▓ ▓▓▓ ▓▓▓▓▓▓▓▓▓ ▓▓▓ ▓▓ ▓▓ ▓▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓
#█ ████ ████ ████ ██████ ████ ███ █ █ ██ ██ █ ███████████ ██████ █████ ██ ███ ████ █████ █
#██████████████ █████ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ██
#----------#
# MONITORS #
#----------#
monitor=eDP-1, 2880x1800@60, 0x0, 1.5
# monitor=,highres highrr, auto, 1
exec = swaybg -m fill -i /home/janis/Pictures/arch-bg.png
source=./hyprland/binds.conf
source=./hyprland/general.conf
source=./hyprland/windowrules.conf
#--------#
# LAPTOP #
#--------#
exec = hyprctl setcursor oreo_spark_blue_cursors 36
env = HYPRCURSOR_THEME, Oreo_spark_blue_cursor
env = X_CURSOR_THEME, Oreo_spark_blue_cursor
env = XCURSOR_SIZE,24
# Volume control
bind = ,code:123, exec, pamixer -i 5
bind = ,code:122, exec, pamixer -d 5
bind = ,code:121, exec, pamixer -t
# Brightness-Control
bind = ,code:232, exec, light -U 5 && notify-send 'Display brightness decreased by 5%'
bind = ,code:233, exec, light -A 5 && notify-send 'Display brightness increased by 5%'
# Monitor config binds
bind = $mainMod CTRL, D, exec, hyprctl keyword monitor HDMI-A-1, 1920x1080@60, 1920x0, 1, mirror, eDP-1 && notify-send 'Set to mirror internal display'
bind = $mainMod CTRL, E, exec, hyprctl keyword monitor HDMI-A-1, 1920x1080@60, 1920x0, 1 && notify-send 'Set to expand external display'
# Internal display controls
bind = $mainMod ALT, E, exec, hyprctl keyword monitor eDP-1, 2880x1800@60, 0x0, 1.5 && notify-send 'Set to battery optimized display settings'
bind = $mainMod ALT, P, exec, hyprctl keyword monitor eDP-1, preferred, 0x0, 1.5 && notify-send 'Set to performance optimized display settings'

View File

@@ -0,0 +1,96 @@
#░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
#░ ░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░
#▒ ▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒
#▒ ▒▒▒▒ ▒ ▒▒▒ ▒ ▒ ▒▒▒ ▒ ▒ ▒▒▒▒ ▒▒▒▒▒▒▒▒ ▒ ▒▒ ▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒ ▒ ▒▒▒ ▒ ▒▒▒▒▒▒▒ ▒▒
#▓ ▓▓ ▓ ▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓ ▓▓ ▓▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓
#▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓ ▓▓ ▓▓▓▓ ▓ ▓▓▓▓ ▓ ▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓ ▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓▓
#▓ ▓▓▓▓ ▓▓▓▓▓ ▓▓▓ ▓ ▓▓▓ ▓▓▓▓ ▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓▓▓▓▓▓▓▓ ▓▓▓ ▓▓ ▓▓ ▓▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓
#█ ████ ████ ████ ██████ ████ ████ ████████ █ ██ ██████████ ██████ █████ ██ ███ ████ █████ █
#██████████████ █████ ███████████████████████████████████████████████████████████████████████████████████████████████████ ██
general {
grace = 15
}
# BACKGROUND
background {
monitor =
path = /home/janis/Pictures/arch-bg.png # Or screenshot
blur_passes = 1
}
# PASSWORD INPUT
input-field {
monitor =
size = 300, 40
outline_thickness = 3
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = false
outer_color = rgb(204, 92, 0)
inner_color = rgb(200, 200, 200)
font_color = rgb(10, 10, 10)
fade_on_empty = true
placeholder_text = <i>Input Password...</i> # Text rendered in the input box when it's empty.
hide_input = false
position = 0, -80
halign = center
valign = center
}
label {
monitor =
text = <b>$TIME</b>
color = rgba(200, 200, 200, 1.0)
font_size = 100
font_family = Source Code Pro
position = 0, 80
halign = center
valign = center
}
label {
monitor =
text = $LAYOUT
color = rgba(200, 200, 200, 1.0)
font_size = 12
font_family = Source Code Pro
position = 0, 0
halign = right
valign = bottom
}
label {
monitor =
text = $USER
color = rgba(200, 200, 200, 1.0)
font_size = 12
font_family = Source Code Pro
position = 0, 0
halign = left
valign = bottom
shadow_passes = 3
}
label {
monitor =
text = <i>Failed attempts: $ATTEMPTS</i>
color = rgba(200, 0, 0, 1.0)
font_size = 12
font_family = Source Code Pro
position = 0, 20
halign = center
valign = bottom
shadow_passes = 3
shadow_size = 5
shadow_boost = 3
shadow_color = rgb(255,255,255)
}

BIN
laptop/configs/hypr/wall_4K.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

View File

@@ -0,0 +1,8 @@
#!/bin/bash
sleep 1
killall xdg-desktop-portal-hyprland
killall xdg-desktop-portal-wlr
killall xdg-desktop-portal
/usr/libexec/xdg-desktop-portal-hyprland &
sleep 2
/usr/lib/xdg-desktop-portal &

View File

@@ -0,0 +1,137 @@
{
"layer": "top",
"position": "top",
"mod": "dock",
"exclusive": true,
"passthrough": false,
"gtk-layer-shell": true,
"height": 0,
"modules-left": [
"clock",
"cpu",
"memory",
"battery",
"backlight",
"hyprland/workspaces"
],
"modules-center": ["hyprland/window"],
"modules-right": [
"tray",
"network",
"pulseaudio",
"pulseaudio#microphone",
"custom/powerMenu"
],
"hyprland/window": {
"format": "{}"
},
"tray": {
"icon-size": 14,
"spacing": 8
},
"custom/powerMenu": {
"format": "⏻",
"on-click": "rofi -show p -modi p:rofi-power-menu -theme ~/.config/rofi/themes/power.rasi"
},
"network": {
"format-disconnected": " Net",
"format-wifi": "{icon} {essid}",
"format-ethernet": " Wired",
"tooltip-format-ethernet": "<big>Ethernet</big>\nInterface: {ifname}\nIP: {ipaddr}\nUp/Down (bps): {bandwidthUpBits}/{bandwidthDownBits}",
"tooltip-format-wifi": "<big>Wi-Fi</big>\nSSID: {essid}\nIP: {ipaddr}\nSignal strength: {signalStrength}%\nUp/Down (bps): {bandwidthUpBits}/{bandwidthDownBits}\nFrequency: {frequency}GHz",
"tooltip-format-disconnected": "<big>Networking</big>\n{ifname} disconnected",
"on-click": "terminator -x nmtui",
"format-icons": ["", "", "", ""]
},
"battery":{
"states": {
"95": 100,
"85": 90,
"75": 80,
"65": 70,
"55": 60,
"45": 50,
"35": 40,
"25": 30,
"15": 20,
"5": 10,
"critical": 0,
},
"format":" {capacity}",
"format-95": " {capacity}",
"format-85": " {capacity}",
"format-75": " {capacity}",
"format-65": " {capacity}",
"format-55": " {capacity}",
"format-45": " {capacity}",
"format-35": " {capacity}",
"format-25": " {capacity}",
"format-15": " {capacity}",
"format-15": " {capacity}",
"format-critical": " {capacity}",
"format-charging":" {capacity}",
"format-plugged": " ",
"format-full": " 100",
"format-empty": " ({capacity}%)",
"tooltip-format":"<big>Battery</big>\nCurrently {timeTo}\nCurrently drawing: {power}W\nBattery status: {capacity}%"
},
"backlight": {
"stages": {
"high": 50,
"low": 0,
},
"format": "🌣 {percent}",
"format-high": " {percent}",
"format-low": " {percent}",
"tooltip-format": "<big>Brightness</big>\n🌣 {percent}",
"on-scroll-up": "light -A 1",
"on-scroll-down": "light -U 1"
},
"clock": {
"format": "{:%a, %d.%m %H:%M:%S}",
"tooltip-format": "<big>Calendar</big>\n<tt><small>{calendar}</small></tt>",
"interval": 1
},
"hyprland/workspaces": {
"disable-scroll": true,
"all-outputs": true,
"on-click": "activate",
"format": "{icon}"
},
"cpu": {
"tooltip-format": "<big>CPU</big>\n<tt>Total: {usage}</tt>",
"format": " {usage}",
"interval": 5
},
"memory": {
"format": " {percentage}",
"interval": 5
},
"pulseaudio": {
"format": "{icon} {volume}",
"tooltip": true,
"format-muted": " Off",
"on-click": "pamixer -t",
"on-scroll-up": "pamixer -i 5",
"on-scroll-down": "pamixer -d 5",
"scroll-step": 5,
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "🏎",
"default": ["", "", ""]
}
},
"pulseaudio#microphone": {
"format": "{format_source}",
"format-source": " {volume}",
"format-source-muted": " 0",
"on-click": "pamixer --default-source -t",
"on-scroll-up": "pamixer --default-source -i 5",
"on-scroll-down": "pamixer --default-source -d 5",
"scroll-step": 5
}
}

View File

@@ -0,0 +1,196 @@
#!/usr/bin/python
# pylint: disable=missing-module-docstring
import json
import sys
import time
import dbus
import click
FBOOL = ('no', 'yes')
PROPERTIES = {
'BatteryLevel': ('unknown', 'none', 'low', 'critical', 'normal', 'high', 'full'),
'Capacity': None,
'Energy': None,
'EnergyEmpty': None,
'EnergyFull': None,
'EnergyFullDesign': None,
'EnergyRate': None,
'HasHistory': FBOOL,
'HasStatistics': FBOOL,
'IconName': None,
'IsPresent': FBOOL,
'IsRechargeable': FBOOL,
'Luminosity': None,
'Model': None,
'NativePath': None,
'Online': FBOOL,
'Percentage': None,
'PowerSupply': FBOOL,
'Serial': None,
'State': ('unknown', 'charging', 'discharging', 'empty', 'fully charged',
'pending charge','pending discharge'),
'Technology': ('unknown', 'lithium ion', 'lithium polymer', 'lithium iron phosphate',
'lead acid', 'nickel cadmium', 'nickel metal hydride'),
'Temperature': None,
'TimeToEmpty': None,
'TimeToFull': None,
'Type': ('unknown', 'line-power', 'battery', 'ups', 'monitor', 'mouse', 'keyboard',
'pda', 'phone', 'media-player', 'tablet', 'computer', 'gaming_input',
'pen', 'touchpad', 'modem', 'network', 'headset', 'speakers',
'headphones', 'video', 'other_audio', 'remote_control', 'printer', 'scanner',
'camera', 'wearable', 'toy', 'bluetooth-generic'),
'UpdateTime': None,
'Vendor': None,
'Voltage': None,
'WarningLevel': ('unknown', 'none', 'discharging', 'low', 'critical', 'action')
}
def get_tooltip(_type):
#TOOLTIP_OTHER=""" luminosity: {Luminosity}""" I don't have a way to test this property
header = ('native-path: {NativePath}'
'\npower supply: {PowerSupply}'
'\nupdated: {UpdateTime}'
'\nhas history: {HasHistory}'
'\nhas statistics: {HasStatistics}')
body = ('\n{Type}'
'\n warning-level: {WarningLevel}'
'\n icon-name: {IconName}')
if _type == 'line-power':
body += '\n online: {Online}'
else:
header += ('\nmodel: {Model}'
'\nserial: {Serial}')
body += ('\n percentage: {Percentage}%'
'\n present: {IsPresent}')
if _type == "battery":
header += ('\nvendor: {Vendor}')
body += ('\n state: {State}'
'\n rechargeable: {IsRechargeable}'
'\n energy: {Energy} Wh'
'\n energy-empty: {EnergyEmpty} Wh'
'\n energy-full: {EnergyFull} Wh'
'\n energy-full-design: {EnergyFullDesign} Wh'
'\n energy-rate: {EnergyRate} W'
'\n voltage: {Voltage} V'
'\n capacity: {Capacity}%'
'\n technology: {Technology}'
'\n temperature: {Temperature}'
'\n time-to-empty: {TimeToEmpty}'
'\n time-to-full: {TimeToFull}'
'\n battery-level: {BatteryLevel}')
return f'{header}{body}'
def device_info(bus, device):
"""Lookup device properties"""
result = {}
device_proxy = bus.get_object('org.freedesktop.UPower', device)
device_interface = dbus.Interface(device_proxy, 'org.freedesktop.DBus.Properties')
for _property, friendly_name in PROPERTIES.items():
try:
data = device_interface.Get('org.freedesktop.UPower.Device', _property)
if _property == 'UpdateTime':
result[_property] = time.ctime(data)
else:
result[_property] = friendly_name[data] if friendly_name else data
except (dbus.exceptions.DBusException, IndexError):
result[_property] = 'none'
return result
def get_devices(bus):
"""Retrieve list of Upower devices"""
devices_proxy = bus.get_object('org.freedesktop.UPower', '/org/freedesktop/UPower')
devices_interface = dbus.Interface(devices_proxy, 'org.freedesktop.UPower')
devices = devices_interface.EnumerateDevices()
return devices
def get_device(bus, devices, device):
"""Retrieve Upower device using path or model"""
if device in devices:
return device
for path in devices:
inspect = device_info(bus, path)
if inspect.get('Model') == device:
return path
raise Exception("Device Not Found")
def output_devices(bus, devices):
"""Output device list"""
for device in devices:
print(f'{device}\t{device_info(bus, device).get("Model")}')
sys.exit(0)
def check_device(key, info):
sys.exit(FBOOL.index(info.get(key.replace('{','').replace('}', ''))))
@click.command()
@click.option('--list-devices', is_flag=True, help='List devices and models')
@click.option('--check', help='Exists using boolean values for device')
@click.option('--device', '--model', help='Path or Model')
@click.option('--text', show_default=True, default="{Model}")
@click.option('--alt', show_default=True, default="{BatteryLevel}")
@click.option('--tooltip', default=None, help="Similar to upower -i <device>")
@click.option('--class', '_class', show_default=True, default="{BatteryLevel}")
@click.option('--percentage', show_default=True, default="{Percentage:.0f}")
def main(list_devices, check, device, text, alt, tooltip, _class, percentage):
"""
TEXT can be replaced using one or more {KEY}\n
{BatteryLevel} {Capacity} {Energy} {EnergyEmpty} {EnergyFull}
{EnergyFullDesign} {EnergyRate} {HasHistory} {HasStatistics}
{IconName} {IsPresent} {IsRechargeable} {Luminosity}
{Model} {NativePath} {Online} {Percentage} {PowerSupply}
{Serial} {State} {Technology} {Temperature} {TimeToEmpty}
{TimeToFull} {Type} {UpdateTime} {Vendor} {Voltage}
{WarningLevel}
Example: supower.py --model 'MX Master 2S' --tooltip '{State}'
supower.py --model '/org/freedesktop/UPower/devices/line_power_AC' --check Online
"""
exit = 0
bus = dbus.SystemBus()
devices = get_devices(bus)
if list_devices:
output_devices(bus, devices)
try:
device = get_device(bus, devices, device)
info = device_info(bus, device)
if check:
check_device(check, info)
output = {
"text": text.format(**info),
"alt": alt.format(**info),
"tooltip": (tooltip if tooltip else get_tooltip(info['Type'])).format(**info),
"class": _class.format(**info),
"percentage": float(percentage.format(**info))
}
except Exception as error:
output = {"text": f'Error {device.split("/")[-1]} {error}', 'tooltip': f'{error}'}
exit = 2
print(json.dumps(output))
sys.exit(exit)
if __name__ == "__main__":
# pylint: disable=no-value-for-parameter
main()

135
laptop/configs/waybar/style.css Executable file
View File

@@ -0,0 +1,135 @@
* {
border: none;
border-radius: 0;
font-family: 'FluentSystemIcons-Regular,Comfortaa', monospace;
font-weight: 600;
font-size: 16px;
min-height: 0;
margin-left: 3px;
margin-right: 3px;
}
window#waybar {
background: rgba(0, 0, 0, 0);
color: #cdd6f4;
}
tooltip {
background: #1e1e2e;
border-radius: 10px;
border-width: 2px;
border-style: solid;
border-color: #11111b;
}
#workspaces button {
padding: 3px;
color: #313244;
margin-right: 5px;
}
#workspaces button.active {
color: #a6adc8;
}
#workspaces button.focused {
color: #a6adc8;
background: #eba0ac;
border-radius: 10px;
}
#workspaces button.urgent {
color: #11111b;
background: #a6e3a1;
border-radius: 10px;
}
#workspaces button:hover {
background: #11111b;
color: #cdd6f4;
border-radius: 10px;
}
#workspaces {
background: #1e1e2e;
border-radius: 10px;
margin-left: 10px;
padding-right: 0px;
padding-left: 5px;
}
#window,
#clock,
#custom-powerMenu,
#pulseaudio,
#memory,
#battery,
#backlight,
#tray,
#network,
#workspaces,
#cpu {
background: #000024;
padding: 2px 12px;
margin: 3px 2px;
margin-top: 9px;
border: 1px solid #181825;
border-radius: 10px;
}
#tray {
border-radius: 10px;
margin-right: 10px;
}
#cpu {
margin-right: 0;
border-radius: 10px 0px 0px 10px;
background-color: #222244;
}
#memory, #battery {
color: #89b4fa;
margin-left: 0;
margin-right: 0;
border-radius: 0px;
background-color: #222244;
}
#backlight {
color: #89b4fa;
margin-left: 0;
border-radius: 0px 10px 10px 0px;
background-color: #222244;
}
#battery.critical {
color: orange;
}
#battery.empty {
color: red;
}
#window {
border-radius: 10px;
margin-left: 60px;
margin-right: 60px;
}
#clock {
color: #a6f7ad;
min-width: 145px;
}
#pulseaudio {
color: #89b4fa;
border-left: 0px;
border-right: 0px;
}
#pulseaudio.microphone {
color: #a6f7ad;
border-left: 0px;
border-right: 0px;
}

13
laptop/environment Normal file
View File

@@ -0,0 +1,13 @@
#
# This file is parsed by pam_env module
#
# Syntax: simple "KEY=VAL" pairs on separate lines
#
QT_QPA_PLATFORMTHEME=qt5ct
GCM_CREDENTIAL_STORE=secretservice
VKD3D_CONFIG=dxr11,dxr
RADV_PERFTEST_RT=1
QT_QPA_PLATFORM=wayland
GTK_THEME=Material-Black-Blueberry
QT_STYLE_OVERRIDE=kvantum

63
laptop/grub Normal file
View File

@@ -0,0 +1,63 @@
# GRUB boot loader configuration
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet splash"
GRUB_CMDLINE_LINUX=""
# 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=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"
# 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
GRUB_THEME="/usr/share/grub/themes/monterey-grub-theme/theme.txt"

1472
laptop/installedPackages.txt Normal file

File diff suppressed because it is too large Load Diff

73
laptop/mkinitcpio.conf Normal file
View File

@@ -0,0 +1,73 @@
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(usbhid xhci_hcd)
MODULES=()
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=()
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No RAID, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect modconf block filesystems fsck)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev modconf block filesystems fsck)
#
## This setup assembles a mdadm array with an encrypted root file system.
## Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices.
# HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck)
#
## This setup loads an lvm2 volume group.
# HOOKS=(base udev modconf block lvm2 filesystems fsck)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr and fsck hooks.
HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block filesystems fsck plymouth)
# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()
# MODULES_DECOMPRESS
# Decompress kernel modules during initramfs creation.
# Enable to speedup boot process, disable to save RAM
# during early userspace. Switch (yes/no).
#MODULES_DECOMPRESS="yes"

100
laptop/pacman.conf Normal file
View File

@@ -0,0 +1,100 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto
ILoveCandy
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
Color
#NoProgressBar
CheckSpace
#VerbosePkgLists
ParallelDownloads = 5
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
#[testing]
#Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
#[extra-testing]
#Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
[arch4edu]
Server = https://de.arch4edu.mirror.kescher.at/$arch
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

36
laptop/vscode-extensions Normal file
View File

@@ -0,0 +1,36 @@
aaron-bond.better-comments
abusaidm.html-snippets
bungcip.better-toml
dbaeumer.vscode-eslint
dlasagno.rasi
donjayamanne.jquerysnippets
ecmel.vscode-html-css
Equinusocio.vsc-community-material-theme
Equinusocio.vsc-material-theme
equinusocio.vsc-material-theme-icons
ev3dev.ev3dev-browser
eww-yuck.yuck
fivethree.vscode-hugo-snippets
formulahendry.auto-rename-tag
golang.go
hollowtree.vue-snippets
Ionic.ionic
James-Yu.latex-workshop
lllllllqw.jsdoc
mads-hartmann.bash-ide-vscode
mathematic.vscode-latex
mechatroner.rainbow-csv
ms-python.python
ms-vscode.cpptools
NilsSoderman.sitemap-generator
quicktype.quicktype
rust-lang.rust-analyzer
Shan.code-settings-sync
spences10.robots-txt
streetsidesoftware.code-spell-checker
streetsidesoftware.code-spell-checker-german
svelte.svelte-vscode
tecosaur.latex-utilities
valentjn.vscode-ltex
Vue.volar
wayou.vscode-todo-highlight