New install time
This commit is contained in:
parent
96d450c77a
commit
ccb9b5b91c
22 changed files with 1137 additions and 0 deletions
6
.config/.gitignore
vendored
6
.config/.gitignore
vendored
|
@ -10,3 +10,9 @@
|
||||||
# fish
|
# fish
|
||||||
!fish/
|
!fish/
|
||||||
!fish/**
|
!fish/**
|
||||||
|
|
||||||
|
!i3/
|
||||||
|
!i3/**
|
||||||
|
|
||||||
|
!polybar/
|
||||||
|
!polybar/**
|
||||||
|
|
4
.config/fish/functions/rebar.fish
Normal file
4
.config/fish/functions/rebar.fish
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
function rebar --wraps='spawn .local/polybar/launch.sh' --description 'alias rebar=spawn .local/polybar/launch.sh'
|
||||||
|
spawn .local/polybar/launch.sh $argv
|
||||||
|
|
||||||
|
end
|
231
.config/i3/config
Normal file
231
.config/i3/config
Normal file
|
@ -0,0 +1,231 @@
|
||||||
|
# i3 config file (v4)
|
||||||
|
#
|
||||||
|
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||||
|
|
||||||
|
set $mod Mod4
|
||||||
|
|
||||||
|
font pango:mono 10
|
||||||
|
|
||||||
|
# i3status bar
|
||||||
|
# bar {
|
||||||
|
# id bar-1
|
||||||
|
# font pango:mono, pango:Font Awesome 5 Free 10
|
||||||
|
# font xft:monospace 10
|
||||||
|
# status_command i3blocks
|
||||||
|
# position top
|
||||||
|
# mode dock
|
||||||
|
# modifier none
|
||||||
|
# }
|
||||||
|
|
||||||
|
# Start on boot shit
|
||||||
|
exec --no-startup-id xcompmgr
|
||||||
|
exec --no-startup-id sxhkd
|
||||||
|
exec --no-startup-id dunst
|
||||||
|
exec --no-startup-id gnome-keyring-daemon
|
||||||
|
exec --no-startup-id lxqt-policykit-agent
|
||||||
|
exec_always keepassxc
|
||||||
|
|
||||||
|
exec_always --no-startup-id $HOME/.local/bin/polybar_launch
|
||||||
|
|
||||||
|
for_window [class="^.*"] border pixel 2
|
||||||
|
gaps inner 10
|
||||||
|
# gaps outer 5
|
||||||
|
|
||||||
|
# Font for window titles. Will also be used by the bar unless a different font
|
||||||
|
# is used in the bar {} block below.
|
||||||
|
#font pango:monospace 8
|
||||||
|
|
||||||
|
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
||||||
|
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
||||||
|
#font pango:DejaVu Sans Mono 8
|
||||||
|
|
||||||
|
# Before i3 v4.8, we used to recommend this one as the default:
|
||||||
|
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
|
||||||
|
# The font above is very space-efficient, that is, it looks good, sharp and
|
||||||
|
# clear in small sizes. However, its unicode glyph coverage is limited, the old
|
||||||
|
# X core fonts rendering does not support right-to-left and this being a bitmap
|
||||||
|
# font, it doesn’t scale on retina/hidpi displays.
|
||||||
|
|
||||||
|
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||||
|
floating_modifier $mod
|
||||||
|
|
||||||
|
# start a terminal
|
||||||
|
# bindsym $mod+Return exec i3-sensible-terminal
|
||||||
|
bindsym $mod+Return exec st
|
||||||
|
#bindsym $mod+Shift+Return exec --no-startup-id i3-sensible-terminal -c term_floating
|
||||||
|
bindsym $mod+Shift+Return exec --no-startup-id st -c term_floating
|
||||||
|
# bindsym $mod+p exec --no-startup-id i3-sensible-terminal -c term_floating -e python
|
||||||
|
bindsym $mod+p exec --no-startup-id st -c term_floating -e python
|
||||||
|
bindsym $mod+q exec --no-startup-id st -c term_floating -e qalc
|
||||||
|
# bindsym $mod+Shift+r exec --no-startup-id i3-sensible-terminal -c term_floating -e bash record
|
||||||
|
bindsym $mod+Shift+r exec --no-startup-id st -c term_floating -e bash record
|
||||||
|
for_window [class=term_floating] floating enable
|
||||||
|
|
||||||
|
# kill focused window
|
||||||
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
|
# xkill
|
||||||
|
bindsym $mod+Ctrl+q --release exec --no-startup-id xkill -display $DISPLAY
|
||||||
|
|
||||||
|
# Lock the screen
|
||||||
|
#bindsym $mod+Ctrl+l exec i3lock -i $HOME/.config/lock.png
|
||||||
|
|
||||||
|
# Discord
|
||||||
|
# bindsym $mod+d exec discord
|
||||||
|
|
||||||
|
# Firefox
|
||||||
|
bindsym $mod+f exec firefox
|
||||||
|
bindsym $mod+Shift+f exec firefox --private-window
|
||||||
|
|
||||||
|
# arandr
|
||||||
|
# bindsym $mod+p exec arandr
|
||||||
|
|
||||||
|
# Screenshots
|
||||||
|
bindsym Print --release exec "scrot -f -s -F /tmp/screenshot-$(date +%F_%T).png -e 'xclip -selection c -t image/png < $f'"
|
||||||
|
bindsym Shift+Print exec "scrot -F /tmp/screenshot-$(date +%F_%T).png -e 'xclip -selection c -t image/png < $f'"
|
||||||
|
|
||||||
|
# OpenPeripherals
|
||||||
|
for_window [title="OpenPeripherals"] floating enable
|
||||||
|
|
||||||
|
# R
|
||||||
|
for_window [class="R_x11"] floating enable
|
||||||
|
|
||||||
|
# Soundboard
|
||||||
|
bindsym $mod+v exec "soundboard"
|
||||||
|
|
||||||
|
# start dmenu (a program launcher)
|
||||||
|
bindsym $mod+r exec dmenu_run
|
||||||
|
bindsym $mod+Ctrl+r exec --no-startup-id i3-dmenu-desktop
|
||||||
|
# There also is the (new) i3-dmenu-desktop which only displays applications
|
||||||
|
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
|
||||||
|
# installed.
|
||||||
|
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
|
||||||
|
|
||||||
|
# change focus
|
||||||
|
bindsym $mod+h focus left
|
||||||
|
bindsym $mod+j focus down
|
||||||
|
bindsym $mod+k focus up
|
||||||
|
bindsym $mod+l focus right
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor keys:
|
||||||
|
#bindsym $mod+Left focus left
|
||||||
|
#bindsym $mod+Down focus down
|
||||||
|
#bindsym $mod+Up focus up
|
||||||
|
#bindsym $mod+Right focus right
|
||||||
|
|
||||||
|
# move focused window
|
||||||
|
bindsym $mod+Shift+h move left
|
||||||
|
bindsym $mod+Shift+j move down
|
||||||
|
bindsym $mod+Shift+k move up
|
||||||
|
bindsym $mod+Shift+l move right
|
||||||
|
|
||||||
|
bindsym $mod+Ctrl+h move workspace to output left
|
||||||
|
bindsym $mod+Ctrl+l move workspace to output right
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor keys:
|
||||||
|
#bindsym $mod+Shift+Left move left
|
||||||
|
#bindsym $mod+Shift+Down move down
|
||||||
|
#bindsym $mod+Shift+Up move up
|
||||||
|
#bindsym $mod+Shift+Right move right
|
||||||
|
|
||||||
|
# split in horizontal orientation
|
||||||
|
bindsym $mod+backslash split h
|
||||||
|
|
||||||
|
# split in vertical orientation
|
||||||
|
bindsym $mod+slash split v
|
||||||
|
|
||||||
|
# enter fullscreen mode for the focused container
|
||||||
|
bindsym $mod+space fullscreen toggle
|
||||||
|
|
||||||
|
# change container layout (stacked, tabbed, toggle split)
|
||||||
|
bindsym $mod+s layout stacking
|
||||||
|
bindsym $mod+w layout tabbed
|
||||||
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
|
# toggle tiling / floating
|
||||||
|
bindsym $mod+Shift+space floating toggle
|
||||||
|
|
||||||
|
# change focus between tiling / floating windows
|
||||||
|
# bindsym $mod+space focus mode_toggle
|
||||||
|
|
||||||
|
# focus the parent container
|
||||||
|
bindsym $mod+a focus parent
|
||||||
|
|
||||||
|
mouse_warping output
|
||||||
|
focus_follows_mouse no
|
||||||
|
|
||||||
|
# focus the child container
|
||||||
|
#bindsym $mod+d focus child
|
||||||
|
|
||||||
|
# Define names for default workspaces for which we configure key bindings later on.
|
||||||
|
# We use variables to avoid repeating the names in multiple places.
|
||||||
|
set $ws1 "1"
|
||||||
|
set $ws2 "2"
|
||||||
|
set $ws3 "3"
|
||||||
|
set $ws4 "4"
|
||||||
|
set $ws5 "5"
|
||||||
|
set $ws6 "6"
|
||||||
|
set $ws7 "7"
|
||||||
|
set $ws8 "8"
|
||||||
|
set $ws9 "9"
|
||||||
|
set $ws10 "10"
|
||||||
|
|
||||||
|
# switch to workspace
|
||||||
|
bindsym $mod+1 workspace $ws1
|
||||||
|
bindsym $mod+2 workspace $ws2
|
||||||
|
bindsym $mod+3 workspace $ws3
|
||||||
|
bindsym $mod+4 workspace $ws4
|
||||||
|
bindsym $mod+5 workspace $ws5
|
||||||
|
bindsym $mod+6 workspace $ws6
|
||||||
|
bindsym $mod+7 workspace $ws7
|
||||||
|
bindsym $mod+8 workspace $ws8
|
||||||
|
bindsym $mod+9 workspace $ws9
|
||||||
|
bindsym $mod+0 workspace $ws10
|
||||||
|
|
||||||
|
bindsym $mod+minus sticky toggle
|
||||||
|
|
||||||
|
# move focused container to workspace
|
||||||
|
bindsym $mod+Shift+1 move container to workspace $ws1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace $ws2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace $ws3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace $ws4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace $ws5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace $ws6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace $ws7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace $ws8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace $ws9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace $ws10
|
||||||
|
|
||||||
|
# reload the configuration file
|
||||||
|
bindsym $mod+Shift+c reload
|
||||||
|
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||||
|
bindsym $mod+mod1+c restart
|
||||||
|
# exit i3 (logs you out of your X session)
|
||||||
|
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
|
||||||
|
|
||||||
|
# resize window (you can also use the mouse for that)
|
||||||
|
mode "resize" {
|
||||||
|
# These bindings trigger as soon as you enter the resize mode
|
||||||
|
|
||||||
|
# Pressing left will shrink the window’s width.
|
||||||
|
# Pressing right will grow the window’s width.
|
||||||
|
# Pressing up will shrink the window’s height.
|
||||||
|
# Pressing down will grow the window’s height.
|
||||||
|
bindsym h resize shrink width 10 px or 10 ppt
|
||||||
|
bindsym j resize grow height 10 px or 10 ppt
|
||||||
|
bindsym k resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym l resize grow width 10 px or 10 ppt
|
||||||
|
|
||||||
|
# same bindings, but for the arrow keys
|
||||||
|
#bindsym Left resize shrink width 10 px or 10 ppt
|
||||||
|
#bindsym Down resize grow height 10 px or 10 ppt
|
||||||
|
#bindsym Up resize shrink height 10 px or 10 ppt
|
||||||
|
#bindsym Right resize grow width 10 px or 10 ppt
|
||||||
|
|
||||||
|
# back to normal: Enter or Escape or $mod+r
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym $mod+Shift+r mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
# bindsym $mod+Shift+r mode "resize"
|
411
.config/polybar/config
Normal file
411
.config/polybar/config
Normal file
|
@ -0,0 +1,411 @@
|
||||||
|
;==========================================================
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
|
||||||
|
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
|
||||||
|
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
|
||||||
|
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
|
||||||
|
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
|
||||||
|
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; To learn more about how to configure Polybar
|
||||||
|
; go to https://github.com/polybar/polybar
|
||||||
|
;
|
||||||
|
; The README contains a lot of information
|
||||||
|
;
|
||||||
|
;==========================================================
|
||||||
|
|
||||||
|
[colors]
|
||||||
|
;background = ${xrdb:color0:#222}
|
||||||
|
background = #111
|
||||||
|
background-alt = #888
|
||||||
|
;foreground = ${xrdb:color7:#222}
|
||||||
|
foreground = #dfdfdf
|
||||||
|
foreground-alt = #555
|
||||||
|
primary = #ffb52a
|
||||||
|
secondary = #e60053
|
||||||
|
alert = #bd2c40
|
||||||
|
|
||||||
|
[bar/qbar]
|
||||||
|
monitor = ${env:MONITOR:HDMI-1}
|
||||||
|
width = 100%
|
||||||
|
height = 23
|
||||||
|
;offset-x = 1%
|
||||||
|
;offset-y = 1%
|
||||||
|
radius = 0.0
|
||||||
|
fixed-center = true
|
||||||
|
|
||||||
|
background = ${colors.background}
|
||||||
|
foreground = ${colors.foreground}
|
||||||
|
|
||||||
|
line-size = 3
|
||||||
|
line-color = #f00
|
||||||
|
|
||||||
|
border-size = 0
|
||||||
|
border-color = #00000000
|
||||||
|
|
||||||
|
padding-left = 0
|
||||||
|
padding-right = 2
|
||||||
|
|
||||||
|
module-margin-left = 1
|
||||||
|
module-margin-right = 2
|
||||||
|
|
||||||
|
font-0 = sans:pixelsize=10;1
|
||||||
|
font-1 = inconsolata:fontformat=truetype:size=8:antialias=false;0
|
||||||
|
font-2 = SymbolsNerdFont:pixelsize=12;1
|
||||||
|
|
||||||
|
modules-left = i3
|
||||||
|
modules-center =
|
||||||
|
modules-right = filesystem pulseaudio memory cpu wlan eth date
|
||||||
|
|
||||||
|
tray-position = right
|
||||||
|
tray-padding = 2
|
||||||
|
;tray-background = #0063ff
|
||||||
|
|
||||||
|
;wm-restack = bspwm
|
||||||
|
;wm-restack = i3
|
||||||
|
|
||||||
|
;override-redirect = true
|
||||||
|
|
||||||
|
;scroll-up = bspwm-desknext
|
||||||
|
;scroll-down = bspwm-deskprev
|
||||||
|
|
||||||
|
;scroll-up = i3wm-wsnext
|
||||||
|
;scroll-down = i3wm-wsprev
|
||||||
|
|
||||||
|
cursor-click = pointer
|
||||||
|
cursor-scroll = ns-resize
|
||||||
|
|
||||||
|
[module/xwindow]
|
||||||
|
type = internal/xwindow
|
||||||
|
label = %title:0:30:...%
|
||||||
|
|
||||||
|
[module/xkeyboard]
|
||||||
|
type = internal/xkeyboard
|
||||||
|
blacklist-0 = num lock
|
||||||
|
|
||||||
|
format-prefix = " "
|
||||||
|
format-prefix-foreground = ${colors.foreground-alt}
|
||||||
|
format-prefix-underline = ${colors.secondary}
|
||||||
|
|
||||||
|
label-layout = %layout%
|
||||||
|
label-layout-underline = ${colors.secondary}
|
||||||
|
|
||||||
|
label-indicator-padding = 2
|
||||||
|
label-indicator-margin = 1
|
||||||
|
label-indicator-background = ${colors.secondary}
|
||||||
|
label-indicator-underline = ${colors.secondary}
|
||||||
|
|
||||||
|
#[module/github]
|
||||||
|
#type = internal/github
|
||||||
|
#token = b20dfb56d6f6222331fb7b7ef5a69b668accde58
|
||||||
|
#empty-notifications = true
|
||||||
|
#interval = 10
|
||||||
|
#format = <label>
|
||||||
|
#label = GH: %notifications%
|
||||||
|
|
||||||
|
[module/filesystem]
|
||||||
|
type = internal/fs
|
||||||
|
interval = 25
|
||||||
|
|
||||||
|
mount-0 = /
|
||||||
|
mount-1 = /home
|
||||||
|
|
||||||
|
label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%%
|
||||||
|
label-unmounted = %mountpoint% not mounted
|
||||||
|
label-unmounted-foreground = ${colors.foreground-alt}
|
||||||
|
|
||||||
|
[module/bspwm]
|
||||||
|
type = internal/bspwm
|
||||||
|
|
||||||
|
label-focused = %index%
|
||||||
|
label-focused-background = ${colors.background-alt}
|
||||||
|
label-focused-underline= ${colors.primary}
|
||||||
|
label-focused-padding = 2
|
||||||
|
|
||||||
|
label-occupied = %index%
|
||||||
|
label-occupied-padding = 2
|
||||||
|
|
||||||
|
label-urgent = %index%!
|
||||||
|
label-urgent-background = ${colors.alert}
|
||||||
|
label-urgent-padding = 2
|
||||||
|
|
||||||
|
label-empty = %index%
|
||||||
|
label-empty-foreground = ${colors.foreground-alt}
|
||||||
|
label-empty-padding = 2
|
||||||
|
|
||||||
|
; Separator in between workspaces
|
||||||
|
; label-separator = |
|
||||||
|
|
||||||
|
[module/i3]
|
||||||
|
type = internal/i3
|
||||||
|
format = <label-state> <label-mode>
|
||||||
|
index-sort = true
|
||||||
|
wrapping-scroll = false
|
||||||
|
|
||||||
|
; Only show workspaces on the same output as the bar
|
||||||
|
pin-workspaces = true
|
||||||
|
|
||||||
|
label-mode-padding = 2
|
||||||
|
label-mode-foreground = #000
|
||||||
|
label-mode-background = ${colors.primary}
|
||||||
|
|
||||||
|
; focused = Active workspace on focused monitor
|
||||||
|
label-focused = %index%
|
||||||
|
label-focused-background = ${colors.background-alt}
|
||||||
|
label-focused-underline= ${colors.primary}
|
||||||
|
label-focused-padding = 2
|
||||||
|
|
||||||
|
; unfocused = Inactive workspace on any monitor
|
||||||
|
label-unfocused = %index%
|
||||||
|
label-unfocused-padding = 2
|
||||||
|
|
||||||
|
; visible = Active workspace on unfocused monitor
|
||||||
|
label-visible = %index%
|
||||||
|
label-visible-background = ${self.label-focused-background}
|
||||||
|
label-visible-underline = ${self.label-focused-underline}
|
||||||
|
label-visible-padding = ${self.label-focused-padding}
|
||||||
|
|
||||||
|
; urgent = Workspace with urgency hint set
|
||||||
|
label-urgent = %index%
|
||||||
|
label-urgent-background = ${colors.alert}
|
||||||
|
label-urgent-padding = 2
|
||||||
|
|
||||||
|
; Separator in between workspaces
|
||||||
|
; label-separator = |
|
||||||
|
|
||||||
|
|
||||||
|
[module/mpd]
|
||||||
|
type = internal/mpd
|
||||||
|
format-online = <label-song> <icon-prev> <icon-stop> <toggle> <icon-next>
|
||||||
|
|
||||||
|
icon-prev = 玲
|
||||||
|
icon-stop = 栗
|
||||||
|
icon-play = 契
|
||||||
|
icon-pause =
|
||||||
|
icon-next = 怜
|
||||||
|
|
||||||
|
label-song-maxlen = 50
|
||||||
|
label-song-ellipsis = true
|
||||||
|
|
||||||
|
[module/xbacklight]
|
||||||
|
type = internal/xbacklight
|
||||||
|
|
||||||
|
format = <label> <bar>
|
||||||
|
label = BL
|
||||||
|
|
||||||
|
bar-width = 10
|
||||||
|
bar-indicator = |
|
||||||
|
bar-indicator-foreground = #fff
|
||||||
|
bar-indicator-font = 2
|
||||||
|
bar-fill = ─
|
||||||
|
bar-fill-font = 2
|
||||||
|
bar-fill-foreground = #9f78e1
|
||||||
|
bar-empty = ─
|
||||||
|
bar-empty-font = 2
|
||||||
|
bar-empty-foreground = ${colors.foreground-alt}
|
||||||
|
|
||||||
|
[module/backlight-acpi]
|
||||||
|
inherit = module/xbacklight
|
||||||
|
type = internal/backlight
|
||||||
|
card = intel_backlight
|
||||||
|
|
||||||
|
[module/cpu]
|
||||||
|
type = internal/cpu
|
||||||
|
interval = 2
|
||||||
|
format-prefix = " "
|
||||||
|
format-prefix-foreground = ${colors.foreground-alt}
|
||||||
|
format-underline = #f90000
|
||||||
|
label = %percentage:2%%
|
||||||
|
|
||||||
|
[module/memory]
|
||||||
|
type = internal/memory
|
||||||
|
interval = 2
|
||||||
|
format-prefix = " "
|
||||||
|
format-prefix-foreground = ${colors.foreground-alt}
|
||||||
|
format-underline = #4bffdc
|
||||||
|
label = %percentage_used%%
|
||||||
|
|
||||||
|
[module/wlan]
|
||||||
|
type = internal/network
|
||||||
|
interface = wlp1s0
|
||||||
|
interval = 3.0
|
||||||
|
|
||||||
|
format-connected = <ramp-signal> <label-connected>
|
||||||
|
format-connected-underline = #9f78e1
|
||||||
|
label-connected = %essid% - %local_ip%
|
||||||
|
|
||||||
|
#format-disconnected =
|
||||||
|
format-disconnected = <label-disconnected>
|
||||||
|
format-disconnected-underline = ${self.format-connected-underline}
|
||||||
|
label-disconnected = 睊 %ifname%
|
||||||
|
label-disconnected-foreground = ${colors.foreground-alt}
|
||||||
|
|
||||||
|
ramp-signal-0 = 睊
|
||||||
|
ramp-signal-1 = 直
|
||||||
|
ramp-signal-2 = 直
|
||||||
|
ramp-signal-3 = 直
|
||||||
|
ramp-signal-4 = 直
|
||||||
|
ramp-signal-foreground = ${colors.foreground-alt}
|
||||||
|
|
||||||
|
[module/eth]
|
||||||
|
type = internal/network
|
||||||
|
interface = enp4s0
|
||||||
|
interval = 3.0
|
||||||
|
|
||||||
|
format-connected-underline = #55aa55
|
||||||
|
format-connected-prefix = " "
|
||||||
|
format-connected-prefix-foreground = ${colors.foreground-alt}
|
||||||
|
label-connected = %local_ip%
|
||||||
|
|
||||||
|
# format-disconnected =
|
||||||
|
format-disconnected = <label-disconnected>
|
||||||
|
format-disconnected-underline = ${self.format-connected-underline}
|
||||||
|
label-disconnected = %ifname%
|
||||||
|
label-disconnected-foreground = ${colors.foreground-alt}
|
||||||
|
|
||||||
|
[module/date]
|
||||||
|
type = internal/date
|
||||||
|
interval = 5
|
||||||
|
|
||||||
|
date =
|
||||||
|
date-alt = " %Y-%m-%d"
|
||||||
|
|
||||||
|
time = %H:%M
|
||||||
|
time-alt = %H:%M:%S
|
||||||
|
|
||||||
|
format-prefix =
|
||||||
|
format-prefix-foreground = ${colors.foreground-alt}
|
||||||
|
format-underline = #0a6cf5
|
||||||
|
|
||||||
|
label = %date% %time%
|
||||||
|
|
||||||
|
[module/pulseaudio]
|
||||||
|
type = internal/pulseaudio
|
||||||
|
|
||||||
|
format-volume = <ramp-volume> <label-volume>
|
||||||
|
format-prefix-foreground = ${colors.foreground-alt}
|
||||||
|
label-volume = %percentage%%
|
||||||
|
label-volume-foreground = ${root.foreground}
|
||||||
|
|
||||||
|
label-muted = ﱝ
|
||||||
|
label-muted-foreground = ${colors.foreground-alt}
|
||||||
|
|
||||||
|
ramp-volume-0 = 奄
|
||||||
|
ramp-volume-1 = 奔
|
||||||
|
ramp-volume-2 = 墳
|
||||||
|
|
||||||
|
bar-volume-width = 10
|
||||||
|
bar-volume-foreground-0 = #55aa55
|
||||||
|
bar-volume-foreground-1 = #55aa55
|
||||||
|
bar-volume-foreground-2 = #55aa55
|
||||||
|
bar-volume-foreground-3 = #55aa55
|
||||||
|
bar-volume-foreground-4 = #55aa55
|
||||||
|
bar-volume-foreground-5 = #f5a70a
|
||||||
|
bar-volume-foreground-6 = #ff5555
|
||||||
|
bar-volume-gradient = false
|
||||||
|
bar-volume-indicator = |
|
||||||
|
bar-volume-indicator-font = 2
|
||||||
|
bar-volume-fill = ─
|
||||||
|
bar-volume-fill-font = 2
|
||||||
|
bar-volume-empty = ─
|
||||||
|
bar-volume-empty-font = 2
|
||||||
|
bar-volume-empty-foreground = ${colors.foreground-alt}
|
||||||
|
|
||||||
|
[module/battery]
|
||||||
|
type = internal/battery
|
||||||
|
battery = BAT1
|
||||||
|
adapter = ACAD
|
||||||
|
full-at = 98
|
||||||
|
|
||||||
|
format-charging = <animation-charging> <label-charging>
|
||||||
|
format-charging-underline = #ffb52a
|
||||||
|
|
||||||
|
format-discharging = <ramp-capacity> <label-discharging>
|
||||||
|
format-discharging-underline = ${self.format-charging-underline}
|
||||||
|
|
||||||
|
format-full-prefix = " "
|
||||||
|
format-full-prefix-foreground = ${colors.foreground-alt}
|
||||||
|
format-full-underline = ${self.format-charging-underline}
|
||||||
|
|
||||||
|
ramp-capacity-0 =
|
||||||
|
ramp-capacity-1 =
|
||||||
|
ramp-capacity-2 =
|
||||||
|
ramp-capacity-3 =
|
||||||
|
ramp-capacity-4 =
|
||||||
|
ramp-capacity-foreground = ${colors.foreground-alt}
|
||||||
|
|
||||||
|
animation-charging-0 =
|
||||||
|
animation-charging-1 =
|
||||||
|
animation-charging-2 =
|
||||||
|
animation-charging-foreground = ${colors.foreground-alt}
|
||||||
|
animation-charging-framerate = 750
|
||||||
|
|
||||||
|
#animation-discharging-0 =
|
||||||
|
#animation-discharging-1 =
|
||||||
|
#animation-discharging-2 =
|
||||||
|
#animation-discharging-foreground = ${colors.foreground-alt}
|
||||||
|
#animation-discharging-framerate = 750
|
||||||
|
|
||||||
|
[module/temperature]
|
||||||
|
type = internal/temperature
|
||||||
|
thermal-zone = 0
|
||||||
|
warn-temperature = 60
|
||||||
|
|
||||||
|
format = <ramp> <label>
|
||||||
|
format-underline = #f50a4d
|
||||||
|
format-warn = <ramp> <label-warn>
|
||||||
|
format-warn-underline = ${self.format-underline}
|
||||||
|
|
||||||
|
label = %temperature-c%
|
||||||
|
label-warn = %temperature-c%
|
||||||
|
label-warn-foreground = ${colors.secondary}
|
||||||
|
|
||||||
|
ramp-0 =
|
||||||
|
ramp-1 =
|
||||||
|
ramp-2 =
|
||||||
|
ramp-foreground = ${colors.foreground-alt}
|
||||||
|
|
||||||
|
[module/powermenu]
|
||||||
|
type = custom/menu
|
||||||
|
|
||||||
|
expand-right = false
|
||||||
|
|
||||||
|
format-spacing = 1
|
||||||
|
|
||||||
|
label-open =
|
||||||
|
label-open-foreground = ${colors.secondary}
|
||||||
|
label-close =
|
||||||
|
label-close-foreground = ${colors.secondary}
|
||||||
|
label-separator = |
|
||||||
|
label-separator-foreground = ${colors.foreground-alt}
|
||||||
|
|
||||||
|
menu-0-0 = reboot
|
||||||
|
menu-0-0-exec = menu-open-1
|
||||||
|
menu-0-1 = power off
|
||||||
|
menu-0-1-exec = menu-open-2
|
||||||
|
|
||||||
|
menu-1-0 = cancel
|
||||||
|
menu-1-0-exec = menu-open-0
|
||||||
|
menu-1-1 = reboot
|
||||||
|
menu-1-1-exec = sudo reboot
|
||||||
|
|
||||||
|
menu-2-0 = power off
|
||||||
|
menu-2-0-exec = sudo poweroff
|
||||||
|
menu-2-1 = cancel
|
||||||
|
menu-2-1-exec = menu-open-0
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
screenchange-reload = true
|
||||||
|
;compositing-background = xor
|
||||||
|
;compositing-background = screen
|
||||||
|
;compositing-foreground = source
|
||||||
|
;compositing-border = over
|
||||||
|
;pseudo-transparency = false
|
||||||
|
|
||||||
|
[global/wm]
|
||||||
|
margin-top = 0
|
||||||
|
margin-bottom = 0
|
||||||
|
|
||||||
|
; vim:ft=dosini
|
12
.gitconfig
Normal file
12
.gitconfig
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
[user]
|
||||||
|
email = thomasmuller336@gmail.com
|
||||||
|
name = Quantum
|
||||||
|
signingkey = A73D1943BE953A78FAB16D38AF006EB730564952
|
||||||
|
[commit]
|
||||||
|
gpgSign = false
|
||||||
|
[init]
|
||||||
|
defaultBranch = master
|
||||||
|
[color]
|
||||||
|
ui = auto
|
||||||
|
[http]
|
||||||
|
sslVerify = false
|
6
.gitignore
vendored
6
.gitignore
vendored
|
@ -3,10 +3,16 @@
|
||||||
# This file
|
# This file
|
||||||
!.gitignore
|
!.gitignore
|
||||||
|
|
||||||
|
.gitconfig
|
||||||
|
|
||||||
# .config folder
|
# .config folder
|
||||||
!.config/
|
!.config/
|
||||||
!.config/**
|
!.config/**
|
||||||
|
|
||||||
|
# .local folder
|
||||||
|
!.local/
|
||||||
|
!.local/**
|
||||||
|
|
||||||
# Bash
|
# Bash
|
||||||
!.bashrc
|
!.bashrc
|
||||||
!.bash_profile
|
!.bash_profile
|
||||||
|
|
7
.local/.gitignore
vendored
Normal file
7
.local/.gitignore
vendored
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
*
|
||||||
|
|
||||||
|
# This file
|
||||||
|
!.gitignore
|
||||||
|
|
||||||
|
!bin/
|
||||||
|
!bin/**
|
4
.local/bin/backlight
Executable file
4
.local/bin/backlight
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
prev=$(xbacklight -get)
|
||||||
|
xbacklight -steps 100 -time 200 $(($prev + $1))
|
18
.local/bin/colortest
Executable file
18
.local/bin/colortest
Executable file
|
@ -0,0 +1,18 @@
|
||||||
|
echo $(tput setaf 0) COLOR 0
|
||||||
|
echo $(tput setaf 1) COLOR 1
|
||||||
|
echo $(tput setaf 2) COLOR 2
|
||||||
|
echo $(tput setaf 3) COLOR 3
|
||||||
|
echo $(tput setaf 4) COLOR 4
|
||||||
|
echo $(tput setaf 5) COLOR 5
|
||||||
|
echo $(tput setaf 6) COLOR 6
|
||||||
|
echo $(tput setaf 7) COLOR 7
|
||||||
|
echo $(tput setaf 8) COLOR 8
|
||||||
|
echo $(tput setaf 9) COLOR 9
|
||||||
|
echo $(tput setaf 10) COLOR 1
|
||||||
|
echo $(tput setaf 11) COLOR 11
|
||||||
|
echo $(tput setaf 12) COLOR 12
|
||||||
|
echo $(tput setaf 13) COLOR 13
|
||||||
|
echo $(tput setaf 14) COLOR 14
|
||||||
|
echo $(tput setaf 15) COLOR 15
|
||||||
|
echo $(tput setaf 16) COLOR 16
|
||||||
|
|
11
.local/bin/csaccept
Executable file
11
.local/bin/csaccept
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
xdotool mousemove 3200 600
|
||||||
|
xdotool click 1
|
||||||
|
sleep 1
|
||||||
|
xdotool mousemove 3200 610
|
||||||
|
xdotool click 1
|
||||||
|
sleep 1
|
||||||
|
done
|
12
.local/bin/invitespam
Executable file
12
.local/bin/invitespam
Executable file
|
@ -0,0 +1,12 @@
|
||||||
|
X=20
|
||||||
|
Y=130
|
||||||
|
SLEEP=0.1
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
xdotool click 3;
|
||||||
|
sleep $SLEEP;
|
||||||
|
xdotool mousemove_relative $X $Y;
|
||||||
|
sleep $SLEEP;
|
||||||
|
xdotool click 1;
|
||||||
|
xdotool mousemove_relative -- -$X -$Y;
|
||||||
|
done;
|
14
.local/bin/polybar_launch
Executable file
14
.local/bin/polybar_launch
Executable file
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
killall -q polybar
|
||||||
|
|
||||||
|
# Wait until the processes have been shut down
|
||||||
|
while pgrep -u $UID -x polybar > /dev/null; do sleep 1; done
|
||||||
|
|
||||||
|
if type "xrandr"; then
|
||||||
|
for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do
|
||||||
|
MONITOR=$m polybar qbar &
|
||||||
|
done
|
||||||
|
else
|
||||||
|
polybar --reload qbar &
|
||||||
|
fi
|
4
.local/bin/reloadi3bar
Executable file
4
.local/bin/reloadi3bar
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
killall i3bar
|
||||||
|
i3bar --bar_id=bar-1
|
21
.local/bin/resetusb
Executable file
21
.local/bin/resetusb
Executable file
|
@ -0,0 +1,21 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [[ $EUID != 0 ]] ; then
|
||||||
|
echo This must be run as root!
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
for xhci in /sys/bus/pci/drivers/?hci_hcd ; do
|
||||||
|
|
||||||
|
if ! cd $xhci ; then
|
||||||
|
echo Weird error. Failed to change directory to $xhci
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo Resetting devices from $xhci...
|
||||||
|
|
||||||
|
for i in ????:??:??.? ; do
|
||||||
|
echo -n "$i" > unbind
|
||||||
|
echo -n "$i" > bind
|
||||||
|
done
|
||||||
|
done
|
7
.local/bin/send_gpg
Executable file
7
.local/bin/send_gpg
Executable file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
gpg --keyserver keyserver.ubuntu.com --send-keys $1
|
||||||
|
gpg --keyserver keys.gnupg.net --send-keys $1
|
||||||
|
gpg --keyserver pgp.mit.edu --send-keys $1
|
||||||
|
gpg --keyserver hkp://pgp.key-server.io:11371 --send-keys $1
|
||||||
|
|
141
.local/bin/share
Executable file
141
.local/bin/share
Executable file
|
@ -0,0 +1,141 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o pipefail
|
||||||
|
set -o nounset
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
FPS=15
|
||||||
|
DEVICE_NUMBER=50
|
||||||
|
MONITOR_NUMBER=
|
||||||
|
FFMPEG_OPTIONS=
|
||||||
|
BORDER=false
|
||||||
|
|
||||||
|
# Options
|
||||||
|
while [ ! $# -eq 0 ]
|
||||||
|
do
|
||||||
|
case "$1" in
|
||||||
|
-h | --help)
|
||||||
|
echo "$0 - Monitor to Camera"
|
||||||
|
echo ""
|
||||||
|
echo "$0 [options] [value]"
|
||||||
|
echo ""
|
||||||
|
echo "options:"
|
||||||
|
echo "-h, --help show help"
|
||||||
|
echo "-f, --framerate=FPS set framerate"
|
||||||
|
echo "-d, --device-number=NUM set device number"
|
||||||
|
echo "-m, --monitor-number=NUM set monitor number"
|
||||||
|
echo "-r, --resolution H:W manually set output resolution"
|
||||||
|
echo "-vf, --vertical-flip vertically flip the monitor capture"
|
||||||
|
echo "-hf, --horizontal-flip horizontally flip the monitor capture"
|
||||||
|
echo "-b, --border add border when scaling to avoid stretching"
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
-f | --framerate)
|
||||||
|
FPS=$2
|
||||||
|
;;
|
||||||
|
-d | --device-number)
|
||||||
|
DEVICE_NUMBER=$2
|
||||||
|
;;
|
||||||
|
c | center)
|
||||||
|
MONITOR_NUMBER=0
|
||||||
|
;;
|
||||||
|
l | left)
|
||||||
|
MONITOR_NUMBER=1
|
||||||
|
;;
|
||||||
|
r | right)
|
||||||
|
MONITOR_NUMBER=2
|
||||||
|
;;
|
||||||
|
s | stop)
|
||||||
|
eval "pkill ffmpeg"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
-m | --monitor-number)
|
||||||
|
MONITOR_NUMBER=$2
|
||||||
|
;;
|
||||||
|
-r | --resolution)
|
||||||
|
FFMPEG_OPTIONS+="-vf scale=$2"
|
||||||
|
;;
|
||||||
|
-vf | --vertical-flip)
|
||||||
|
FFMPEG_OPTIONS+="-vf vflip"
|
||||||
|
;;
|
||||||
|
-hf | --horizontal-flip)
|
||||||
|
FFMPEG_OPTIONS+="-vf hflip"
|
||||||
|
;;
|
||||||
|
-b | --border)
|
||||||
|
BORDER=true
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
# Dependency checking
|
||||||
|
XRANDR=$(command -v xrandr)
|
||||||
|
if ! [ -x "$XRANDR" ]
|
||||||
|
then
|
||||||
|
echo "Error: xrandr is not installed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
FFMPEG=$(command -v ffmpeg)
|
||||||
|
if ! [ -x "$FFMPEG" ]
|
||||||
|
then
|
||||||
|
echo "Error: ffmpeg is not installed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Reload v4l2loopback if device doesn't exist
|
||||||
|
#if ! [ -f /dev/video"$DEVICE_NUMBER" ]
|
||||||
|
#then
|
||||||
|
# # Unload v4l2loopback module
|
||||||
|
# if ! $(sudo modprobe -r v4l2loopback &> /dev/null)
|
||||||
|
# then
|
||||||
|
# echo "Unable to unload v4l2loopback, Close any programs using virtual video devices and try again"
|
||||||
|
# exit 1
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# Load v4lwloopback module
|
||||||
|
# sudo modprobe v4l2loopback video_nr="$DEVICE_NUMBER" 'card_label=Mon2Cam'
|
||||||
|
#fi
|
||||||
|
|
||||||
|
# Option checking
|
||||||
|
if [ "$BORDER" = true ]
|
||||||
|
then
|
||||||
|
if [ -z "$RESOLUTION" ]
|
||||||
|
then
|
||||||
|
echo "You didn't specify a resolution (-r 1920:1080)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
RES_WIDTH=$(echo "${RESOLUTION}" | cut -f2 -d'=' | cut -f1 -d':');
|
||||||
|
RES_HEIGHT=$(echo "${RESOLUTION}" | cut -f2 -d':');
|
||||||
|
RESOLUTION="${RESOLUTION}:force_original_aspect_ratio=decrease,pad=$RES_WIDTH:$RES_HEIGHT:x=($RES_WIDTH-iw)/2:y=($RES_HEIGHT-ih)/2"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Pick monitor
|
||||||
|
if [ -z "$MONITOR_NUMBER" ]
|
||||||
|
then
|
||||||
|
$XRANDR --listactivemonitors
|
||||||
|
read -r -p "Which monitor: " MONITOR_NUMBER
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Monitor information
|
||||||
|
MONITOR_INFO=$(xrandr --listactivemonitors | grep "$MONITOR_NUMBER:" | cut -f4 -d' ')
|
||||||
|
MONITOR_HEIGHT=$(echo "$MONITOR_INFO" | cut -f2 -d'/' | cut -f2 -d'x')
|
||||||
|
MONITOR_WIDTH=$(echo "$MONITOR_INFO" | cut -f1 -d'/')
|
||||||
|
MONITOR_X=$(echo "$MONITOR_INFO" | cut -f2 -d'+')
|
||||||
|
MONITOR_Y=$(echo "$MONITOR_INFO" | cut -f3 -d'+')
|
||||||
|
|
||||||
|
# Use x11grab to stream screen into v4l2loopback device
|
||||||
|
echo "CTRL + C to stop"
|
||||||
|
echo "Your screen will look mirrored for you, not others"
|
||||||
|
$FFMPEG \
|
||||||
|
-f x11grab \
|
||||||
|
-r "$FPS" \
|
||||||
|
-s "$MONITOR_WIDTH"x"$MONITOR_HEIGHT" \
|
||||||
|
-i "$DISPLAY"+"$MONITOR_X","$MONITOR_Y" \
|
||||||
|
$FFMPEG_OPTIONS \
|
||||||
|
-pix_fmt yuv420p \
|
||||||
|
-f v4l2 \
|
||||||
|
-s 1920x1080 \
|
||||||
|
/dev/video"$DEVICE_NUMBER" &> /dev/null
|
48
.local/bin/silverspray
Executable file
48
.local/bin/silverspray
Executable file
|
@ -0,0 +1,48 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import time
|
||||||
|
import random
|
||||||
|
from pynput.mouse import Listener
|
||||||
|
from pynput.keyboard import Controller
|
||||||
|
|
||||||
|
kbd = Controller()
|
||||||
|
|
||||||
|
def down(key):
|
||||||
|
kbd.press(key)
|
||||||
|
|
||||||
|
def up(key):
|
||||||
|
kbd.release(key)
|
||||||
|
|
||||||
|
go = False
|
||||||
|
offtime = 0
|
||||||
|
|
||||||
|
def on_click(x, y, b, p):
|
||||||
|
global go
|
||||||
|
print(x, y, b, p)
|
||||||
|
go = p
|
||||||
|
|
||||||
|
listener = Listener(on_click=on_click)
|
||||||
|
listener.start()
|
||||||
|
|
||||||
|
actuallygo = True
|
||||||
|
while True:
|
||||||
|
if go:
|
||||||
|
actuallygo = True
|
||||||
|
offtime = time.time()
|
||||||
|
|
||||||
|
if not actuallygo:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if time.time() > offtime + 0.5 + (random.randint(1, 10) / 10):
|
||||||
|
actuallygo = False
|
||||||
|
|
||||||
|
|
||||||
|
if random.randint(0, 1) == 1:
|
||||||
|
key = 'a'
|
||||||
|
else:
|
||||||
|
key = 'd'
|
||||||
|
|
||||||
|
down(key)
|
||||||
|
time.sleep(random.randint(1, 10) / 40 + 0.01)
|
||||||
|
up(key)
|
||||||
|
#time.sleep(random.randint(1, 10) / 20 + 0.1)
|
15
.local/bin/soundboard
Executable file
15
.local/bin/soundboard
Executable file
|
@ -0,0 +1,15 @@
|
||||||
|
function cleanup() {
|
||||||
|
pactl unload-module module-pipe-source
|
||||||
|
pactl unload-module module-loopback
|
||||||
|
}
|
||||||
|
|
||||||
|
trap cleanup INT
|
||||||
|
|
||||||
|
pactl load-module module-pipe-source source_name=virtmic file=/tmp/virtmic format=s16le rate=48000 channels=2
|
||||||
|
pactl set-default-source virtmic
|
||||||
|
pactl load-module module-loopback
|
||||||
|
|
||||||
|
CLIP=$(ls $HOME/.config/soundboard | dmenu -l 100)
|
||||||
|
ffmpeg -re -i "$HOME/.config/soundboard/$CLIP" -f s16le -ar 48000 -ac 2 - > /tmp/virtmic
|
||||||
|
|
||||||
|
cleanup
|
1
.local/bin/spam
Executable file
1
.local/bin/spam
Executable file
|
@ -0,0 +1 @@
|
||||||
|
while true; do xdotool type --delay $2 "$1"; xdotool key Return; done
|
24
.local/bin/tablet
Executable file
24
.local/bin/tablet
Executable file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
PAD="Wacom Intuos PT S Pad pad"
|
||||||
|
PEN="Wacom Intuos PT S Pen stylus"
|
||||||
|
ERASER="Wacom Intuous PT S Pen eraser"
|
||||||
|
FINGER="Wacom Intuous PT S Finger touch"
|
||||||
|
|
||||||
|
xsetwacom set "$PAD" button 3 "key shift"
|
||||||
|
xsetwacom set "$PAD" button 1 "key control"
|
||||||
|
xsetwacom set "$PAD" button 9 "key ;"
|
||||||
|
xsetwacom set "$PAD" button 8 "key '"
|
||||||
|
|
||||||
|
# xsetwacom set "$PEN" button 1 "key "
|
||||||
|
|
||||||
|
xsetwacom set "$PEN" MapToOutput 2560x1440+1920+0 #set the tablet to control the entire screen
|
||||||
|
xsetwacom set "$PEN" area 0 0 12500 9500 # set area to full tablet
|
||||||
|
xsetwacom set "$PEN" button 1 1 # click button - left click
|
||||||
|
xsetwacom set "$PEN" button 2 2 # top button - erase
|
||||||
|
xsetwacom set "$PEN" button 3 "key control pan" # bottom button - pan
|
||||||
|
xsetwacom set "$PEN" PanScrollThreshold -250
|
||||||
|
|
||||||
|
# export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus; notify-send "Wacom tablet found"
|
||||||
|
|
||||||
|
|
7
.local/bin/unfuck_empty_packages
Executable file
7
.local/bin/unfuck_empty_packages
Executable file
|
@ -0,0 +1,7 @@
|
||||||
|
LANG=en_EN ldconfig 2> err.txt
|
||||||
|
|
||||||
|
for file in $(cut -d" " -f3 err.txt)
|
||||||
|
do
|
||||||
|
echo $file
|
||||||
|
pacman -S $(pacman -Fq $file) --noconfirm --overwrite "*"
|
||||||
|
done
|
133
.local/bin/virtplay.sh
Executable file
133
.local/bin/virtplay.sh
Executable file
|
@ -0,0 +1,133 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
# Default variables
|
||||||
|
|
||||||
|
RESOLUTION=1920x1080
|
||||||
|
FPS=30
|
||||||
|
CHANNELS=2
|
||||||
|
RATE=48000
|
||||||
|
TIMESTAMP=0
|
||||||
|
VOLUME=1
|
||||||
|
BORDER=true
|
||||||
|
LOOPBACK=true
|
||||||
|
VIDEO=true
|
||||||
|
AUDIO=true
|
||||||
|
VIDEODEVICE=/dev/video50
|
||||||
|
AUDIODEVICE=/tmp/virtmic
|
||||||
|
BUFFERFILE=/tmp/virtplay
|
||||||
|
FFMPEGOPTIONS=""
|
||||||
|
|
||||||
|
##################
|
||||||
|
|
||||||
|
while [ ! $# == 0 ]; do
|
||||||
|
case "$1" in
|
||||||
|
-r | --resolution) RESOLUTION=$2
|
||||||
|
;;
|
||||||
|
-f | --fps) FPS=$2
|
||||||
|
;;
|
||||||
|
-b | --border) BORDER=$2
|
||||||
|
;;
|
||||||
|
-l | --loopback) LOOPBACK=$2
|
||||||
|
;;
|
||||||
|
-ar | --audio-rate) RATE=$2
|
||||||
|
;;
|
||||||
|
-c | --channels) CHANNELS=$2
|
||||||
|
;;
|
||||||
|
-ao | --audio-only) VIDEO=false; AUDIO=true
|
||||||
|
;;
|
||||||
|
-vo | --video-only) VIDEO=true; AUDIO=false
|
||||||
|
;;
|
||||||
|
-vd | --video-device) VIDEODEVICE=$2
|
||||||
|
;;
|
||||||
|
-ad | --audio-device) AUDIODEVICE=$2
|
||||||
|
;;
|
||||||
|
-bf | --buffer-file) BUFFERFILE=$2
|
||||||
|
;;
|
||||||
|
-t | --timestamp) TIMESTAMP=$2
|
||||||
|
;;
|
||||||
|
-v | --volume) VOLUME=$2
|
||||||
|
;;
|
||||||
|
-h | --help | "")
|
||||||
|
echo "VirtPlay v3 - Plays a video/audio file through a virtual webcam and microphone"
|
||||||
|
echo ""
|
||||||
|
echo "Usage: $0 [options] [value] [file]"
|
||||||
|
echo ""
|
||||||
|
echo "-h, --help | Shows this help statement"
|
||||||
|
echo "-r, --resolution [$RESOLUTION] | Changes the output resolution of the virtual webcam"
|
||||||
|
echo "-f, --fps [$FPS] | Changes the FPS of the fake webcam"
|
||||||
|
echo "-ar, --audio-rate [$RATE] | Changes the audio samping rate of the virtual microphone"
|
||||||
|
echo "-c, --channels [$CHANNELS] | Changes the number of audio channels"
|
||||||
|
echo "-b, --border [$BORDER] | Enables or disables changing the output's aspect ratio"
|
||||||
|
echo "-l, --loopback [$LOOPBACK] | Enables or disables audio loopback"
|
||||||
|
echo "-t, --timestamp | Jumps output to timestamp in either seconds or [HH:]MM:SS[.m...]"
|
||||||
|
echo "-v, --volume [$VOLUME] | Sets the volume of the virtual microphone where 1 is 100%"
|
||||||
|
echo "-ao, --audio-only | Create a virtual microphone only"
|
||||||
|
echo "-vo, --video-only | Create a virtual webcam only"
|
||||||
|
echo "-vd, --video-device [$VIDEODEVICE] | Changes which video device to output to"
|
||||||
|
echo "-ad, --audio-device [$AUDIODEVICE] | Changes the path for the fake audio device"
|
||||||
|
echo "-bf, --buffer-file [$BUFFERFILE] | Changes the path of the file that will be used when piping from stdin because bash is stupid"
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if [[ -f $1 ]]; then
|
||||||
|
FILE="$1"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ ! $FILE ]]; then
|
||||||
|
echo "No file specified! Listening on stdin..."
|
||||||
|
FILE="$BUFFERFILE"
|
||||||
|
eval cat /dev/stdin > $BUFFERFILE
|
||||||
|
fi
|
||||||
|
|
||||||
|
trap ctrl_c INT
|
||||||
|
|
||||||
|
function ctrl_c() {
|
||||||
|
if [[ $AUDIO == true ]]; then
|
||||||
|
pactl unload-module module-pipe-source
|
||||||
|
if [[ $LOOPBACK == true ]]; then
|
||||||
|
pactl unload-module module-loopback
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ $FILE == $BUFFERFILE ]]; then
|
||||||
|
eval rm $BUFFERFILE
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ $VIDEO == true ]] && ffprobe -i "$FILE" -show_streams -select_streams v -loglevel error | grep STREAM 2>&1 >/dev/null; then
|
||||||
|
if ! lsmod | grep v4l2loopback; then
|
||||||
|
echo "v4l2loopback not loaded! Please run 'modprobe v4l2loopback' and try again."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
FFMPEGOPTIONS+=" -map 0:v -ss $TIMESTAMP -vsync -1 -f v4l2 -pix_fmt yuv420p -s $RESOLUTION -r $FPS $VIDEODEVICE "
|
||||||
|
#ffmpeg -i $FILE -f v4l2 -pix_fmt yuv420p -s $RESOLUTION -r $FPS $VIDEODEVICE
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $AUDIO == true ]] && ffprobe -i "$FILE" -show_streams -select_streams a -loglevel error | grep STREAM 2>&1 >/dev/null; then
|
||||||
|
pactl load-module module-pipe-source source_name=virtmic file=$AUDIODEVICE format=s16le rate=$RATE channels=$CHANNELS
|
||||||
|
pactl set-default-source virtmic
|
||||||
|
if [[ $LOOPBACK == true ]]; then
|
||||||
|
pactl load-module module-loopback
|
||||||
|
fi
|
||||||
|
FFMPEGOPTIONS+=" -map 1:a -ss $TIMESTAMP -f s16le -af aresample=async=1000,aresample=$RATE,volume=$VOLUME -ar $RATE -ac $CHANNELS -y $AUDIODEVICE "
|
||||||
|
#eval ffmpeg -re -i "$FILE" -f s16le -ar 48000 -ac 2 -y $AUDIODEVICE
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
ffmpeg -re -err_detect ignore_err -i "$FILE" -re -err_detect ignore_err -i "$FILE" $FFMPEGOPTIONS
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
if [[ $AUDIO == true ]]; then
|
||||||
|
pactl unload-module module-pipe-source
|
||||||
|
pactl unload-module module-loopback
|
||||||
|
if [[ "$FILE" = "$BUFFERFILE" ]]; then
|
||||||
|
eval rm $BUFFERFILE
|
||||||
|
fi
|
||||||
|
fi
|
Loading…
Reference in a new issue