parent
0fe9994e0d
commit
0a4d8157af
@ -0,0 +1,16 @@ |
||||
# Things to clean up |
||||
|
||||
* Premade launchers for Firefox (one for each profile), IDEs, Discord, Spotify, which start the profiles on the correct workspace. |
||||
* Brightness and volume indicators when pressing the respective shortcuts - yad? |
||||
* Configure Barista bar |
||||
* Include mail notifier (count of unread/read messages in INBOX) |
||||
* Include calendar notifier (next event name+time, events today/tomorrow) |
||||
* Include yubikey notifier (U2F waiting to trigger) |
||||
* Configure Rofi more intimately |
||||
* Include the mozc and dunst configs and rofi configs in here |
||||
* Configure alacritty and make it the new i3 terminal |
||||
* Set up the xscreensaver config to be shared between machines |
||||
* Group the fonts together to be sent to gubal and make Lilex the primary alacritty font, while Gohu is the primary i3 font. |
||||
* Wrap the lock process in a wrapper which pauses dunst and then unpauses it |
||||
* Add a fortune to the start of each new terminal session |
||||
* Enable some form of gamma shifting (if it's even possible...) |
@ -0,0 +1,7 @@ |
||||
Section "InputClass" |
||||
Identifier "disable the STUPID touchscreen" |
||||
MatchIsTouchscreen "on" |
||||
MatchDevicePath "/dev/input/event*" |
||||
MatchDriver "libinput" |
||||
Option "Ignore" "yes" |
||||
EndSection |
@ -0,0 +1,3 @@ |
||||
#!/bin/bash |
||||
|
||||
yad --progress --image=display-brightness-symbolic --splash --no-buttons --on-top --no-focus --undecorated --text='<span size="large">Brightness</span>' --text-align=center --sticky --percentage=$(( $(brightnessctl get) * 100 / $(brightnessctl max) )) --no-escape --borders=10 --skip-taskbar --center |
@ -0,0 +1,207 @@ |
||||
# This file has been auto-generated by i3-config-wizard(1). |
||||
# It will not be overwritten, so edit it as you like. |
||||
# |
||||
# Should you change your keyboard layout some time, delete |
||||
# this file and re-run i3-config-wizard(1). |
||||
# |
||||
|
||||
# i3 config file (v4) |
||||
# |
||||
# Please see https://i3wm.org/docs/userguide.html for a complete reference! |
||||
|
||||
set $mod Mod4 |
||||
|
||||
# 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 |
||||
|
||||
# The combination of xss-lock, nm-applet and pactl is a popular choice, so |
||||
# they are included here as an example. Modify as you see fit. |
||||
|
||||
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the |
||||
# screen before suspend. Use loginctl lock-session to lock your screen. |
||||
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork -c 0081a7 -e |
||||
# Enable the X screensaver system. |
||||
exec --no-startup-id xscreensaver |
||||
|
||||
|
||||
# NetworkManager is the most popular way to manage wireless networks on Linux, |
||||
# and nm-applet is a desktop environment-independent system tray GUI for it. |
||||
exec --no-startup-id nm-applet |
||||
|
||||
# Set up the gnome settings daemon for better gnome support |
||||
exec --no-startup-id /usr/libexec/gnome-settings-daemon-localeexec |
||||
|
||||
# Fix a bug in gnome-settings-daemon: http://feeding.cloud.geek.nz/posts/creating-a-modern-tiling-desktop-environment-using-i3/ |
||||
exec --no-startup-id dconf write /org/gnome/settings-daemon/plugins/cursor/active false |
||||
|
||||
# Enable the relevant xkb options to allow the capslock remapping to proceed |
||||
exec --no-startup-id setxkbmap -option shift:both_capslock,caps:hyper |
||||
# Set up xcape to switch input modes for mozc with caps lock |
||||
exec --no-startup-id xcape -e 'Hyper_L=Control_L|grave' |
||||
# Set up xcape to make control a closer escape instead |
||||
exec --no-startup-id xcape -e 'Control_L=Escape' |
||||
# Set up xcape to make tapping the super key trigger the tmux modifier key. |
||||
exec --no-startup-id xcape -e 'Super_L=Control_L|a' |
||||
|
||||
# Use pactl to adjust volume in PulseAudio. |
||||
set $refresh_i3status killall -SIGUSR1 i3status |
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status |
||||
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status |
||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status |
||||
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status |
||||
|
||||
# Use brightnessctl to adjust screen brightness. |
||||
bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set 10%+ |
||||
bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set --min-value=100 10%- |
||||
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position |
||||
floating_modifier $mod |
||||
|
||||
# start a terminal |
||||
bindsym $mod+Return exec |
||||
|
||||
# kill focused window |
||||
bindsym $mod+Shift+q kill |
||||
|
||||
bindsym $mod+Shift+l exec --no-startup-id loginctl lock-session |
||||
|
||||
# start dmenu (a program launcher) |
||||
# bindsym $mod+d exec --no-startup-id dmenu_run |
||||
# A more modern dmenu replacement is rofi: |
||||
bindsym $mod+d exec "rofi -modi drun,run -show drun -show-icons" |
||||
# bindcode $mod+40 exec "rofi -modi drun,run -show drun" |
||||
# There also is i3-dmenu-desktop which only displays applications shipping a |
||||
# .desktop file. It is a wrapper around dmenu, so you need that installed. |
||||
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop |
||||
|
||||
# change focus |
||||
#bindsym $mod+j focus left |
||||
#bindsym $mod+k focus down |
||||
#bindsym $mod+l focus up |
||||
#bindsym $mod+semicolon 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+j move left |
||||
#bindsym $mod+Shift+k move down |
||||
#bindsym $mod+Shift+l move up |
||||
#bindsym $mod+Shift+semicolon move 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+h split h |
||||
|
||||
# split in vertical orientation |
||||
bindsym $mod+v split v |
||||
|
||||
# enter fullscreen mode for the focused container |
||||
bindsym $mod+f 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 |
||||
|
||||
# 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: Browser" |
||||
set $ws2 "2: Media" |
||||
set $ws3 "3: Chat" |
||||
set $ws4 "4: IDE" |
||||
set $ws5 "5: Terminal" |
||||
set $ws6 "6" |
||||
set $ws7 "7" |
||||
set $ws8 "8" |
||||
set $ws9 "9" |
||||
set $ws10 "10" |
||||
|
||||
# switch to workspace |
||||
bindsym $mod+1 workspace number $ws1 |
||||
bindsym $mod+2 workspace number $ws2 |
||||
bindsym $mod+3 workspace number $ws3 |
||||
bindsym $mod+4 workspace number $ws4 |
||||
bindsym $mod+5 workspace number $ws5 |
||||
bindsym $mod+6 workspace number $ws6 |
||||
bindsym $mod+7 workspace number $ws7 |
||||
bindsym $mod+8 workspace number $ws8 |
||||
bindsym $mod+9 workspace number $ws9 |
||||
bindsym $mod+0 workspace number $ws10 |
||||
|
||||
# move focused container to workspace |
||||
bindsym $mod+Shift+1 move container to workspace number $ws1 |
||||
bindsym $mod+Shift+2 move container to workspace number $ws2 |
||||
bindsym $mod+Shift+3 move container to workspace number $ws3 |
||||
bindsym $mod+Shift+4 move container to workspace number $ws4 |
||||
bindsym $mod+Shift+5 move container to workspace number $ws5 |
||||
bindsym $mod+Shift+6 move container to workspace number $ws6 |
||||
bindsym $mod+Shift+7 move container to workspace number $ws7 |
||||
bindsym $mod+Shift+8 move container to workspace number $ws8 |
||||
bindsym $mod+Shift+9 move container to workspace number $ws9 |
||||
bindsym $mod+Shift+0 move container to workspace number $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+Shift+r 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 j resize shrink width 10 px or 10 ppt |
||||
bindsym k resize grow height 10 px or 10 ppt |
||||
bindsym l resize shrink height 10 px or 10 ppt |
||||
bindsym semicolon 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+r mode "default" |
||||
} |
||||
|
||||
bindsym $mod+r mode "resize" |
||||
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status |
||||
# finds out, if available) |
||||
bar { |
||||
status_command i3status |
||||
} |
@ -0,0 +1 @@ |
||||
../../../../i3/config |
@ -0,0 +1 @@ |
||||
../../../../i3/config |
@ -0,0 +1 @@ |
||||
../../../../i3/config |
@ -0,0 +1 @@ |
||||
../../../../i3/config |
@ -0,0 +1 @@ |
||||
../../../../i3/config |
@ -0,0 +1 @@ |
||||
../../../../i3/config |
@ -0,0 +1,291 @@ |
||||
# XScreenSaver Preferences File |
||||
# Written by xscreensaver-demo 5.42 for reya on Wed Jul 21 01:19:34 2021. |
||||
# https://www.jwz.org/xscreensaver/ |
||||
|
||||
timeout: 0:10:00 |
||||
cycle: 0:10:00 |
||||
lock: False |
||||
lockTimeout: 0:00:00 |
||||
passwdTimeout: 0:00:30 |
||||
visualID: default |
||||
installColormap: True |
||||
verbose: False |
||||
timestamp: True |
||||
splash: True |
||||
splashDuration: 0:00:05 |
||||
demoCommand: xscreensaver-demo |
||||
prefsCommand: xscreensaver-demo -prefs |
||||
nice: 10 |
||||
memoryLimit: 0 |
||||
fade: True |
||||
unfade: True |
||||
fadeSeconds: 0:00:03 |
||||
fadeTicks: 20 |
||||
captureStderr: True |
||||
ignoreUninstalledPrograms:False |
||||
font: *-medium-r-*-140-*-m-* |
||||
dpmsEnabled: False |
||||
dpmsQuickOff: False |
||||
dpmsStandby: 2:00:00 |
||||
dpmsSuspend: 2:00:00 |
||||
dpmsOff: 4:00:00 |
||||
grabDesktopImages: False |
||||
grabVideoFrames: False |
||||
chooseRandomImages: False |
||||
imageDirectory: |
||||
|
||||
mode: random |
||||
selected: -1 |
||||
|
||||
textMode: program |
||||
textLiteral: XScreenSaver |
||||
textFile: |
||||
textProgram: /home/reya/.common-configs/fortune-wrapper.sh |
||||
textURL: https://feeds.feedburner.com/ubuntu-news |
||||
|
||||
programs: \ |
||||
- maze -root \n\ |
||||
- GL: superquadrics -root \n\ |
||||
- attraction -root \n\ |
||||
- blitspin -root \n\ |
||||
- greynetic -root \n\ |
||||
- helix -root \n\ |
||||
- hopalong -root \n\ |
||||
- imsmap -root \n\ |
||||
- noseguy -root \n\ |
||||
- pyro -root \n\ |
||||
- qix -root \n\ |
||||
- rocks -root \n\ |
||||
- rorschach -root \n\ |
||||
- decayscreen -root \n\ |
||||
- flame -root \n\ |
||||
- halo -root \n\ |
||||
- slidescreen -root \n\ |
||||
- pedal -root \n\ |
||||
- bouboule -root \n\ |
||||
- braid -root \n\ |
||||
- coral -root \n\ |
||||
- deco -root \n\ |
||||
- drift -root \n\ |
||||
- fadeplot -root \n\ |
||||
- galaxy -root \n\ |
||||
- goop -root \n\ |
||||
- grav -root \n\ |
||||
- ifs -root \n\ |
||||
- unicode -root \n\ |
||||
- GL: jigsaw -root \n\ |
||||
- julia -root \n\ |
||||
- kaleidescope -root \n\ |
||||
- GL: moebius -root \n\ |
||||
- moire -root \n\ |
||||
- GL: morph3d -root \n\ |
||||
- mountain -root \n\ |
||||
- munch -root \n\ |
||||
- penrose -root \n\ |
||||
- GL: pipes -root \n\ |
||||
- rd-bomb -root \n\ |
||||
- GL: rubik -root \n\ |
||||
- sierpinski -root \n\ |
||||
- slip -root \n\ |
||||
- GL: sproingies -root \n\ |
||||
- starfish -root \n\ |
||||
- strange -root \n\ |
||||
- swirl -root \n\ |
||||
- triangle -root \n\ |
||||
- xjack -root \n\ |
||||
- xlyap -root \n\ |
||||
- GL: atlantis -root \n\ |
||||
bsod -root -atari -bsd -sparclinux \n\ |
||||
- GL: bubble3d -root \n\ |
||||
- GL: cage -root \n\ |
||||
- crystal -root \n\ |
||||
- cynosure -root \n\ |
||||
- discrete -root \n\ |
||||
- distort -root \n\ |
||||
- epicycle -root \n\ |
||||
- flow -root \n\ |
||||
- GL: glplanet -root \n\ |
||||
- interference -root \n\ |
||||
- kumppa -root \n\ |
||||
- GL: lament -root \n\ |
||||
- moire2 -root \n\ |
||||
- GL: sonar -root \n\ |
||||
- GL: stairs -root \n\ |
||||
- truchet -root \n\ |
||||
- vidwhacker -root \n\ |
||||
- blaster -root \n\ |
||||
- bumps -root \n\ |
||||
- ccurve -root \n\ |
||||
- compass -root \n\ |
||||
- deluxe -root \n\ |
||||
- demon -root \n\ |
||||
- GL: extrusion -root \n\ |
||||
- loop -root \n\ |
||||
- penetrate -root \n\ |
||||
- petri -root \n\ |
||||
phosphor -root -scale 4 -ticks 5 -program "/home/reya/.common-configs/fortune-wrapper.sh" \n\ |
||||
- GL: pulsar -root \n\ |
||||
- ripples -root \n\ |
||||
- shadebobs -root \n\ |
||||
- GL: sierpinski3d -root \n\ |
||||
- spotlight -root \n\ |
||||
- squiral -root \n\ |
||||
- wander -root \n\ |
||||
- webcollage -root \n\ |
||||
- xflame -root \n\ |
||||
- xmatrix -root \n\ |
||||
- GL: gflux -root \n\ |
||||
- nerverot -root \n\ |
||||
- xrayswarm -root \n\ |
||||
- xspirograph -root \n\ |
||||
- GL: circuit -root \n\ |
||||
- GL: dangerball -root \n\ |
||||
- GL: engine -root \n\ |
||||
- GL: flipscreen3d -root \n\ |
||||
- GL: gltext -root \n\ |
||||
- GL: menger -root \n\ |
||||
- GL: molecule -root \n\ |
||||
- rotzoomer -root \n\ |
||||
- speedmine -root \n\ |
||||
- GL: starwars -root \n\ |
||||
- GL: stonerview -root \n\ |
||||
- vermiculate -root \n\ |
||||
- whirlwindwarp -root \n\ |
||||
- zoom -root \n\ |
||||
- anemone -root \n\ |
||||
- apollonian -root \n\ |
||||
- GL: boxed -root \n\ |
||||
- GL: cubenetic -root \n\ |
||||
- GL: endgame -root \n\ |
||||
- euler2d -root \n\ |
||||
- fluidballs -root \n\ |
||||
- GL: flurry -root \n\ |
||||
- GL: glblur -root \n\ |
||||
- GL: glsnake -root \n\ |
||||
- halftone -root \n\ |
||||
- GL: juggler3d -root \n\ |
||||
- GL: lavalite -root \n\ |
||||
- polyominoes -root \n\ |
||||
- GL: queens -root \n\ |
||||
- GL: sballs -root \n\ |
||||
- GL: spheremonics -root \n\ |
||||
- thornbird -root \n\ |
||||
- twang -root \n\ |
||||
- GL: antspotlight -root \n\ |
||||
- apple2 -root \n\ |
||||
- GL: atunnel -root \n\ |
||||
- barcode -root \n\ |
||||
- GL: blinkbox -root \n\ |
||||
- GL: blocktube -root \n\ |
||||
- GL: bouncingcow -root \n\ |
||||
- cloudlife -root \n\ |
||||
- GL: cubestorm -root \n\ |
||||
- eruption -root \n\ |
||||
- GL: flipflop -root \n\ |
||||
- GL: flyingtoasters -root \n\ |
||||
- fontglide -root \n\ |
||||
- GL: gleidescope -root \n\ |
||||
- GL: glknots -root \n\ |
||||
GL: glmatrix -root \n\ |
||||
- GL: glslideshow -root \n\ |
||||
- GL: hypertorus -root \n\ |
||||
- GL: jigglypuff -root \n\ |
||||
- metaballs -root \n\ |
||||
- GL: mirrorblob -root \n\ |
||||
- piecewise -root \n\ |
||||
- GL: polytopes -root \n\ |
||||
- pong -root \n\ |
||||
- popsquares -root \n\ |
||||
- GL: surfaces -root \n\ |
||||
- xanalogtv -root \n\ |
||||
- abstractile -root \n\ |
||||
- anemotaxis -root \n\ |
||||
- GL: antinspect -root \n\ |
||||
- fireworkx -root \n\ |
||||
- fuzzyflakes -root \n\ |
||||
- interaggregate -root \n\ |
||||
intermomentary -root \n\ |
||||
- memscroller -root \n\ |
||||
- GL: noof -root \n\ |
||||
- pacman -root \n\ |
||||
- GL: pinion -root \n\ |
||||
- GL: polyhedra -root \n\ |
||||
- GL: providence -root \n\ |
||||
- substrate -root \n\ |
||||
- wormhole -root \n\ |
||||
- GL: antmaze -root \n\ |
||||
- GL: boing -root \n\ |
||||
- boxfit -root \n\ |
||||
- GL: carousel -root \n\ |
||||
- celtic -root \n\ |
||||
- GL: crackberg -root \n\ |
||||
- GL: cube21 -root \n\ |
||||
- fiberlamp -root \n\ |
||||
- GL: fliptext -root \n\ |
||||
- GL: glhanoi -root \n\ |
||||
- GL: tangram -root \n\ |
||||
- GL: timetunnel -root \n\ |
||||
- GL: glschool -root \n\ |
||||
- GL: topblock -root \n\ |
||||
- GL: cubicgrid -root \n\ |
||||
- cwaves -root \n\ |
||||
- GL: gears -root \n\ |
||||
- GL: glcells -root \n\ |
||||
GL: lockward -root \n\ |
||||
- m6502 -root \n\ |
||||
- GL: moebiusgears -root \n\ |
||||
- GL: voronoi -root \n\ |
||||
- GL: hypnowheel -root \n\ |
||||
- GL: klein -root \n\ |
||||
- lcdscrub -root \n\ |
||||
- GL: photopile -root \n\ |
||||
- GL: skytentacles -root \n\ |
||||
- GL: rubikblocks -root \n\ |
||||
- GL: companioncube -root \n\ |
||||
- GL: hilbert -root \n\ |
||||
- GL: tronbit -root \n\ |
||||
- GL: geodesic -root \n\ |
||||
- hexadrop -root \n\ |
||||
- GL: kaleidocycle -root \n\ |
||||
- GL: quasicrystal -root \n\ |
||||
- GL: unknownpleasures -root \n\ |
||||
- binaryring -root \n\ |
||||
- GL: cityflow -root \n\ |
||||
- GL: geodesicgears -root \n\ |
||||
- GL: projectiveplane -root \n\ |
||||
- GL: romanboy -root \n\ |
||||
- tessellimage -root \n\ |
||||
- GL: winduprobot -root \n\ |
||||
- GL: splitflap -root \n\ |
||||
- GL: cubestack -root \n\ |
||||
- GL: cubetwist -root \n\ |
||||
- GL: discoball -root \n\ |
||||
- GL: dymaxionmap -root \n\ |
||||
- GL: energystream -root \n\ |
||||
- GL: hexstrut -root \n\ |
||||
- GL: hydrostat -root \n\ |
||||
- GL: raverhoop -root \n\ |
||||
- GL: splodesic -root \n\ |
||||
- GL: unicrud -root \n\ |
||||
- GL: esper -root \n\ |
||||
- GL: vigilance -root \n\ |
||||
- GL: crumbler -root \n\ |
||||
- filmleader -root \n\ |
||||
- glitchpeg -root \n\ |
||||
- GL: handsy -root \n\ |
||||
- GL: maze3d -root \n\ |
||||
- GL: peepers -root \n\ |
||||
- GL: razzledazzle -root \n\ |
||||
- vfeedback -root \n\ |
||||
|
||||
|
||||
pointerPollTime: 0:00:05 |
||||
pointerHysteresis: 10 |
||||
windowCreationTimeout:0:00:30 |
||||
initialDelay: 0:00:00 |
||||
GetViewPortIsFullOfLies:False |
||||
procInterrupts: True |
||||
xinputExtensionDev: False |
||||
overlayStderr: False |
||||
authWarningSlack: 20 |
||||
|
@ -0,0 +1,12 @@ |
||||
#!/bin/bash |
||||
|
||||
while true; do |
||||
FORTUNE=$(fortune -ce /usr/share/games/fortunes) |
||||
SOURCE=$(sed '1s/(\(.*\))/\1/;q' <<<"$FORTUNE") |
||||
TEXT=$(tail +3 <<<"$FORTUNE") |
||||
printf '\033[2J\033[H' |
||||
echo '['"$SOURCE"']' |
||||
sleep 2s |
||||
echo -n "$TEXT" |
||||
sleep $(( (${#TEXT} / 20) + 10 ))s |
||||
done |
Loading…
Reference in new issue