├── .scripts
├── weather
├── motd.sh
├── weather.sh
└── motd
├── .fvwm
├── onReboot.sh
├── onShutdown.sh
├── images
│ ├── sep.png
│ ├── btnMenu.png
│ ├── btnMenu_down.png
│ ├── buttons
│ │ ├── max.png
│ │ ├── menu.png
│ │ ├── min.png
│ │ ├── res.png
│ │ ├── close.png
│ │ └── close-b.png
│ ├── icons
│ │ ├── apps.png
│ │ ├── conf.png
│ │ ├── help.png
│ │ ├── light.png
│ │ ├── quit.png
│ │ ├── tpad.png
│ │ ├── programs.png
│ │ ├── refresh.png
│ │ ├── restart.png
│ │ ├── terminal.png
│ │ ├── tpad-lid.png
│ │ ├── tpad-mmb.png
│ │ ├── light-off.png
│ │ ├── wallpaper.png
│ │ ├── tpad-lid-off.png
│ │ └── tpad-mmb-scroll.png
│ └── background
│ │ ├── bg1.png
│ │ ├── iso.png
│ │ ├── bg-sgi.png
│ │ ├── bg-sun.png
│ │ ├── abstrakt.png
│ │ ├── bg-sun2x.png
│ │ ├── bg1-dark.png
│ │ ├── bg-sgi-dark.png
│ │ ├── bg-sgi-icon.png
│ │ ├── bg-sun-dark.png
│ │ ├── bg1-darker.png
│ │ ├── ess-gee-eye.png
│ │ ├── irix
│ │ ├── Brain.png
│ │ ├── Bulge.png
│ │ ├── Burlap.png
│ │ ├── Fabric.png
│ │ ├── Linen.png
│ │ ├── Nebula.png
│ │ ├── Rhodo.png
│ │ ├── Scales.png
│ │ ├── Solid.png
│ │ ├── Swirl.png
│ │ ├── Wicker.png
│ │ ├── Cracked.png
│ │ ├── Crumpled.png
│ │ ├── Granite.png
│ │ ├── Moorish.png
│ │ ├── Rockface.png
│ │ ├── Scallop.png
│ │ ├── Scatter.png
│ │ ├── Scribble.png
│ │ ├── Sprinkle.png
│ │ ├── TidePool.png
│ │ ├── Vertigo.png
│ │ ├── Dither1x1.png
│ │ ├── Dither2x2.png
│ │ ├── EscherKnot.png
│ │ ├── LunaPearl.png
│ │ ├── ScatterBlue.png
│ │ ├── VerdeMarble.png
│ │ ├── Cirrostratus.png
│ │ ├── ScatterGreen.png
│ │ ├── ScatterPurple.png
│ │ └── ScatterClassic.png
│ │ ├── abstrakt-icon.png
│ │ ├── bg-sun2x-dark.png
│ │ └── bg-sgi-dark-icon.png
├── sounds
│ ├── windowClose.mp3
│ ├── windowMove.mp3
│ ├── windowOpen.mp3
│ ├── windowSwitch.mp3
│ ├── windowMoveDone.mp3
│ ├── windowMoveIdle.mp3
│ ├── windowCloseShort.mp3
│ ├── windowOpenShort.mp3
│ ├── windowshadeClose.mp3
│ └── windowshadeOpen.mp3
├── onSuspend.sh
├── onLock.sh
├── stalonetrayrc
├── FvwmScript-ConfirmQuit
├── FvwmScript-ConfirmReboot
├── FvwmScript-DateTime
├── FvwmScript-ConfirmShutdown
└── config
├── .termbg.png
├── fetches.png
├── header.png
├── screenshot.png
├── .config
├── fish
│ ├── functions
│ │ ├── _tide_item_weather.fish
│ │ └── _tide_item_free.fish
│ └── config.fish
├── qt5ct
│ └── colors
│ │ └── Loopy.conf
├── rofi
│ └── config.rasi
└── dunst
│ └── dunstrc
├── TODO
├── .urxvt
└── ext
│ └── vtewheel
├── .Xresources
├── .local
└── share
│ └── color-schemes
│ └── Loopy.colors
├── Redmond97-theme.conf
├── README.md
└── .xnedit
└── nedit.rc
/.scripts/weather:
--------------------------------------------------------------------------------
1 | ☀️ +75°F
2 |
--------------------------------------------------------------------------------
/.fvwm/onReboot.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | systemctl reboot
3 |
--------------------------------------------------------------------------------
/.fvwm/onShutdown.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | systemctl poweroff
3 |
--------------------------------------------------------------------------------
/.termbg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.termbg.png
--------------------------------------------------------------------------------
/fetches.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/fetches.png
--------------------------------------------------------------------------------
/header.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/header.png
--------------------------------------------------------------------------------
/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/screenshot.png
--------------------------------------------------------------------------------
/.fvwm/images/sep.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/sep.png
--------------------------------------------------------------------------------
/.fvwm/images/btnMenu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/btnMenu.png
--------------------------------------------------------------------------------
/.fvwm/images/btnMenu_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/btnMenu_down.png
--------------------------------------------------------------------------------
/.fvwm/images/buttons/max.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/buttons/max.png
--------------------------------------------------------------------------------
/.fvwm/images/buttons/menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/buttons/menu.png
--------------------------------------------------------------------------------
/.fvwm/images/buttons/min.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/buttons/min.png
--------------------------------------------------------------------------------
/.fvwm/images/buttons/res.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/buttons/res.png
--------------------------------------------------------------------------------
/.fvwm/images/icons/apps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/icons/apps.png
--------------------------------------------------------------------------------
/.fvwm/images/icons/conf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/icons/conf.png
--------------------------------------------------------------------------------
/.fvwm/images/icons/help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/icons/help.png
--------------------------------------------------------------------------------
/.fvwm/images/icons/light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/icons/light.png
--------------------------------------------------------------------------------
/.fvwm/images/icons/quit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/icons/quit.png
--------------------------------------------------------------------------------
/.fvwm/images/icons/tpad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/icons/tpad.png
--------------------------------------------------------------------------------
/.fvwm/sounds/windowClose.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/sounds/windowClose.mp3
--------------------------------------------------------------------------------
/.fvwm/sounds/windowMove.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/sounds/windowMove.mp3
--------------------------------------------------------------------------------
/.fvwm/sounds/windowOpen.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/sounds/windowOpen.mp3
--------------------------------------------------------------------------------
/.fvwm/sounds/windowSwitch.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/sounds/windowSwitch.mp3
--------------------------------------------------------------------------------
/.fvwm/images/background/bg1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/bg1.png
--------------------------------------------------------------------------------
/.fvwm/images/background/iso.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/iso.png
--------------------------------------------------------------------------------
/.fvwm/images/buttons/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/buttons/close.png
--------------------------------------------------------------------------------
/.fvwm/images/icons/programs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/icons/programs.png
--------------------------------------------------------------------------------
/.fvwm/images/icons/refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/icons/refresh.png
--------------------------------------------------------------------------------
/.fvwm/images/icons/restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/icons/restart.png
--------------------------------------------------------------------------------
/.fvwm/images/icons/terminal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/icons/terminal.png
--------------------------------------------------------------------------------
/.fvwm/images/icons/tpad-lid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/icons/tpad-lid.png
--------------------------------------------------------------------------------
/.fvwm/images/icons/tpad-mmb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/icons/tpad-mmb.png
--------------------------------------------------------------------------------
/.fvwm/sounds/windowMoveDone.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/sounds/windowMoveDone.mp3
--------------------------------------------------------------------------------
/.fvwm/sounds/windowMoveIdle.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/sounds/windowMoveIdle.mp3
--------------------------------------------------------------------------------
/.fvwm/images/background/bg-sgi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/bg-sgi.png
--------------------------------------------------------------------------------
/.fvwm/images/background/bg-sun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/bg-sun.png
--------------------------------------------------------------------------------
/.fvwm/images/buttons/close-b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/buttons/close-b.png
--------------------------------------------------------------------------------
/.fvwm/images/icons/light-off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/icons/light-off.png
--------------------------------------------------------------------------------
/.fvwm/images/icons/wallpaper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/icons/wallpaper.png
--------------------------------------------------------------------------------
/.fvwm/sounds/windowCloseShort.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/sounds/windowCloseShort.mp3
--------------------------------------------------------------------------------
/.fvwm/sounds/windowOpenShort.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/sounds/windowOpenShort.mp3
--------------------------------------------------------------------------------
/.fvwm/sounds/windowshadeClose.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/sounds/windowshadeClose.mp3
--------------------------------------------------------------------------------
/.fvwm/sounds/windowshadeOpen.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/sounds/windowshadeOpen.mp3
--------------------------------------------------------------------------------
/.fvwm/images/background/abstrakt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/abstrakt.png
--------------------------------------------------------------------------------
/.fvwm/images/background/bg-sun2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/bg-sun2x.png
--------------------------------------------------------------------------------
/.fvwm/images/background/bg1-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/bg1-dark.png
--------------------------------------------------------------------------------
/.fvwm/images/icons/tpad-lid-off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/icons/tpad-lid-off.png
--------------------------------------------------------------------------------
/.fvwm/images/background/bg-sgi-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/bg-sgi-dark.png
--------------------------------------------------------------------------------
/.fvwm/images/background/bg-sgi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/bg-sgi-icon.png
--------------------------------------------------------------------------------
/.fvwm/images/background/bg-sun-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/bg-sun-dark.png
--------------------------------------------------------------------------------
/.fvwm/images/background/bg1-darker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/bg1-darker.png
--------------------------------------------------------------------------------
/.fvwm/images/background/ess-gee-eye.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/ess-gee-eye.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Brain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Brain.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Bulge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Bulge.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Burlap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Burlap.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Fabric.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Fabric.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Linen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Linen.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Nebula.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Nebula.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Rhodo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Rhodo.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Scales.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Scales.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Solid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Solid.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Swirl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Swirl.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Wicker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Wicker.png
--------------------------------------------------------------------------------
/.fvwm/images/icons/tpad-mmb-scroll.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/icons/tpad-mmb-scroll.png
--------------------------------------------------------------------------------
/.fvwm/images/background/abstrakt-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/abstrakt-icon.png
--------------------------------------------------------------------------------
/.fvwm/images/background/bg-sun2x-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/bg-sun2x-dark.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Cracked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Cracked.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Crumpled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Crumpled.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Granite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Granite.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Moorish.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Moorish.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Rockface.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Rockface.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Scallop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Scallop.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Scatter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Scatter.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Scribble.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Scribble.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Sprinkle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Sprinkle.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/TidePool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/TidePool.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Vertigo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Vertigo.png
--------------------------------------------------------------------------------
/.fvwm/onSuspend.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #XSECURELOCK_FONT="HCP Maru Gothic" XSECURELOCK_PASSWORD_PROMPT=disco xsecurelock &&
3 | systemctl suspend
4 |
--------------------------------------------------------------------------------
/.scripts/motd.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | cat ~/.scripts/motd | lolcat -p 0.7
3 | echo "\033[30m*whoosh*; you are now fox\033[0m" | lolcat -p 0.6 -i
4 |
--------------------------------------------------------------------------------
/.config/fish/functions/_tide_item_weather.fish:
--------------------------------------------------------------------------------
1 | function _tide_item_weather
2 | _tide_print_item weather (cat ~/.scripts/weather)
3 | end
4 |
--------------------------------------------------------------------------------
/.fvwm/images/background/bg-sgi-dark-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/bg-sgi-dark-icon.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Dither1x1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Dither1x1.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Dither2x2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Dither2x2.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/EscherKnot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/EscherKnot.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/LunaPearl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/LunaPearl.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/ScatterBlue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/ScatterBlue.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/VerdeMarble.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/VerdeMarble.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/Cirrostratus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/Cirrostratus.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/ScatterGreen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/ScatterGreen.png
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/ScatterPurple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/ScatterPurple.png
--------------------------------------------------------------------------------
/.config/fish/functions/_tide_item_free.fish:
--------------------------------------------------------------------------------
1 | function _tide_item_free
2 | _tide_print_item free (free -h --giga | awk 'NR == 2 {print $7}')
3 | end
4 |
--------------------------------------------------------------------------------
/.fvwm/images/background/irix/ScatterClassic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kokoscript/loopy-desktop/HEAD/.fvwm/images/background/irix/ScatterClassic.png
--------------------------------------------------------------------------------
/.scripts/weather.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | temp=$(curl -sL wttr.in/\?format\="%c%t\n")
3 | if [ "$temp" != "" ]; then
4 | echo $temp > ~/.scripts/weather
5 | fi
6 |
--------------------------------------------------------------------------------
/.scripts/motd:
--------------------------------------------------------------------------------
1 | *'``・* 。
2 | | `*。
3 | ,。∩^__^ *
4 | + (`・ω ・´) *。+゚
5 | `*。 ヽ、 つ *゚*
6 | `・+。*・' ゚⊃ +゚
7 | ☆ ∪~ 。*゚
8 | `・+。*・ ゚
9 |
--------------------------------------------------------------------------------
/.fvwm/onLock.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | XSECURELOCK_SHOW_DATETIME=1 XSECURELOCK_BLANK_TIMEOUT=10 XSECURELOCK_FONT="HCP Maru Gothic" XSECURELOCK_PASSWORD_PROMPT=disco xsecurelock
3 |
--------------------------------------------------------------------------------
/.fvwm/stalonetrayrc:
--------------------------------------------------------------------------------
1 | decorations none
2 | geometry 6x1
3 | icon_size 24
4 | max_geometry 6x1
5 | parent_bg true
6 | transparent false
7 | icon_gravity W
8 | no_shrink true
9 |
--------------------------------------------------------------------------------
/TODO:
--------------------------------------------------------------------------------
1 | - Merge fvwm config with the compact version currently on deepslate, make it an easy toggle
2 | - Merge fvwm config with the version currently on cmdblock (meta+mouse drags windows like in GNOME)
3 | - Investigate why some Qt programs are extremely wide (config bug? fvwm bug? qt bug?)
4 |
--------------------------------------------------------------------------------
/.config/qt5ct/colors/Loopy.conf:
--------------------------------------------------------------------------------
1 | [ColorScheme]
2 | active_colors=#ffffffff, #ff444488, #ff6e6ec3, #ff6e6ec3, #ff222244, #ff2f2f5f, #ffffffff, #ffffffff, #ffffffff, #ff222244, #ff444488, #ff2f2f5f, #ffff77aa, #ff222244, #ff61f2dc, #ffc573dd, #ff333355, #ffffffff, #ff222244, #ffffffff, #ffffffff
3 | disabled_colors=#ff808080, #ff444488, #ff6e6ec3, #ff6e6ec3, #ff222244, #ff2f2f5f, #ff808080, #ffffffff, #ff808080, #ff222244, #ff444488, #ff2f2f5f, #ffff77aa, #ff808080, #ff61f2dc, #ffc573dd, #ff333355, #ffffffff, #ff222244, #ffffffff, #ffffffff
4 | inactive_colors=#ffffffff, #ff444488, #ff6e6ec3, #ff6e6ec3, #ff222244, #ff2f2f5f, #ffffffff, #ffffffff, #ffffffff, #ff222244, #ff444488, #ff2f2f5f, #ffff77aa, #ff222244, #ff61f2dc, #ffc573dd, #ff333355, #ffffffff, #ff222244, #ffffffff, #ffffffff
5 |
--------------------------------------------------------------------------------
/.fvwm/FvwmScript-ConfirmQuit:
--------------------------------------------------------------------------------
1 | WindowTitle {ConfirmQuit}
2 | WindowSize 240 60
3 | Font "xft:Fixed:size=10:antialias=False"
4 | Init
5 | Begin
6 | End
7 |
8 | Widget 1
9 | Property
10 | Title {End your X session?}
11 | Size 240 30
12 | Position 13 0
13 | Type ItemDraw
14 | Flags NoReliefString
15 | Main
16 | Case message of
17 | SingleClic :
18 | Begin
19 | End
20 | End
21 |
22 | Widget 2
23 | Property
24 | Title {}
25 | Icon images/icons/quit.png
26 | Size 18 30
27 | Position 42 0
28 | Type ItemDraw
29 | Main
30 | Case message of
31 | SingleClic :
32 | Begin
33 | End
34 | End
35 |
36 | Widget 3
37 | Property
38 | Title {Yes}
39 | Size 60 16
40 | Position 40 30
41 | Flags NoReliefString
42 | Type PushButton
43 | Value 1
44 | Main
45 | Case message of
46 | SingleClic :
47 | Begin
48 | Do {Quit}
49 | End
50 | End
51 |
52 | Widget 4
53 | Property
54 | Title {No}
55 | Size 60 16
56 | Position 140 30
57 | Flags NoReliefString
58 | Type PushButton
59 | Value 1
60 | Main
61 | Case message of
62 | SingleClic :
63 | Begin
64 | Quit
65 | End
66 | End
67 |
--------------------------------------------------------------------------------
/.fvwm/FvwmScript-ConfirmReboot:
--------------------------------------------------------------------------------
1 | WindowTitle {ConfirmReboot}
2 | WindowSize 240 60
3 | Font "xft:Fixed:size=10:antialias=False"
4 | Init
5 | Begin
6 | End
7 |
8 | Widget 1
9 | Property
10 | Title {Reboot the system?}
11 | Size 240 30
12 | Position 13 0
13 | Type ItemDraw
14 | Flags NoReliefString
15 | Main
16 | Case message of
17 | SingleClic :
18 | Begin
19 | End
20 | End
21 |
22 | Widget 2
23 | Property
24 | Title {}
25 | Icon images/icons/quit.png
26 | Size 18 30
27 | Position 42 0
28 | Type ItemDraw
29 | Main
30 | Case message of
31 | SingleClic :
32 | Begin
33 | End
34 | End
35 |
36 | Widget 3
37 | Property
38 | Title {Yes}
39 | Size 60 16
40 | Position 40 30
41 | Flags NoReliefString
42 | Type PushButton
43 | Value 1
44 | Main
45 | Case message of
46 | SingleClic :
47 | Begin
48 | Do {Exec ~/.fvwm/onReboot.sh}
49 | End
50 | End
51 |
52 | Widget 4
53 | Property
54 | Title {No}
55 | Size 60 16
56 | Position 140 30
57 | Flags NoReliefString
58 | Type PushButton
59 | Value 1
60 | Main
61 | Case message of
62 | SingleClic :
63 | Begin
64 | Quit
65 | End
66 | End
67 |
--------------------------------------------------------------------------------
/.fvwm/FvwmScript-DateTime:
--------------------------------------------------------------------------------
1 | WindowTitle {DateTime}
2 | WindowSize 140 24
3 | Font "xft:Sans:size=10:antialias=False"
4 |
5 | Init
6 | Begin
7 | Set $Time = (GetOutput {exec date "+%H:%M"} 1 -1)
8 | Set $Date = (GetOutput {exec date "+%a %b %d"} 1 -1)
9 |
10 | ChangeTitle 1 $Time
11 | ChangeTitle 2 $Date
12 | End
13 |
14 | PeriodicTasks
15 | Begin
16 | If (RemainderOfDiv (GetTime) 15)==0 Then
17 | Begin
18 | Set $Time = (GetOutput {exec date "+%I:%M%P"} 1 -1)
19 | Set $Date = (GetOutput {exec date "+%D"} 1 -1)
20 |
21 | ChangeTitle 1 $Time
22 | ChangeTitle 2 $Date
23 | End
24 | End
25 |
26 | Widget 1
27 | Property
28 | Position 0 0
29 | Size 60 20
30 | Font "xft:Fixed:size=10:antialias=False"
31 | Type ItemDraw
32 | Flags NoReliefString
33 | Title {}
34 | Main
35 | Case message of
36 | SingleClic :
37 | Begin
38 | End
39 | End
40 |
41 | Widget 2
42 | Property
43 | Position 60 0
44 | Size 80 20
45 | Font "xft:Fixed:size=10:antialias=False"
46 | Type ItemDraw
47 | Flags NoReliefString
48 | Title {}
49 | Main
50 | Case message of
51 | SingleClic :
52 | Begin
53 | End
54 | End
55 |
--------------------------------------------------------------------------------
/.fvwm/FvwmScript-ConfirmShutdown:
--------------------------------------------------------------------------------
1 | WindowTitle {ConfirmShutdown}
2 | WindowSize 240 60
3 | Font "xft:Fixed:size=10:antialias=False"
4 | Init
5 | Begin
6 | End
7 |
8 | Widget 1
9 | Property
10 | Title {Shut down the system?}
11 | Size 240 30
12 | Position 13 0
13 | Type ItemDraw
14 | Flags NoReliefString
15 | Main
16 | Case message of
17 | SingleClic :
18 | Begin
19 | End
20 | End
21 |
22 | Widget 2
23 | Property
24 | Title {}
25 | Icon images/icons/quit.png
26 | Size 18 30
27 | Position 42 0
28 | Type ItemDraw
29 | Main
30 | Case message of
31 | SingleClic :
32 | Begin
33 | End
34 | End
35 |
36 | Widget 3
37 | Property
38 | Title {Yes}
39 | Size 60 16
40 | Position 40 30
41 | Flags NoReliefString
42 | Type PushButton
43 | Value 1
44 | Main
45 | Case message of
46 | SingleClic :
47 | Begin
48 | Do {Exec ~/.fvwm/onShutdown.sh}
49 | End
50 | End
51 |
52 | Widget 4
53 | Property
54 | Title {No}
55 | Size 60 16
56 | Position 140 30
57 | Flags NoReliefString
58 | Type PushButton
59 | Value 1
60 | Main
61 | Case message of
62 | SingleClic :
63 | Begin
64 | Quit
65 | End
66 | End
67 |
--------------------------------------------------------------------------------
/.urxvt/ext/vtewheel:
--------------------------------------------------------------------------------
1 | #! perl
2 |
3 | # from: https://aur.archlinux.org/cgit/aur.git/tree/vtwheel?h=urxvt-vtwheel
4 |
5 | # Implements a scrollwheel just like in good old vt100's mices
6 |
7 | sub simulate_keypress {
8 | my ($self, $type) = @_; #type: 0:up, 1:down
9 |
10 | my $keycode_up = 111;
11 | my $keycode_down = 116;
12 |
13 | my $numlines = 3;
14 |
15 | my $keycode = 0;
16 | if ($type eq 0) {
17 | $keycode = $keycode_up;
18 | } elsif ($type eq 1) {
19 | $keycode = $keycode_down;
20 | } else {
21 | return;
22 | }
23 |
24 | for (my $i = 0 ; $i ne $numlines ; $i++) {
25 | $self->key_press(0,$keycode);
26 | $self->key_release(0,$keycode);
27 | }
28 | }
29 |
30 | sub on_button_release {
31 | my ($self, $event) = @_;
32 |
33 | #my $res_ss = $self->resource("secondaryScroll");
34 | #warn("ressource ss is <$res_ss>");
35 |
36 | !$self->current_screen and return ();
37 |
38 | #warn("foo, event: <$event->{button}>\n");
39 | if ($event->{button} eq "4") { # scroll up
40 | $self->simulate_keypress(0);
41 | return 1;
42 | } elsif ($event->{button} eq "5") { # scroll down
43 | $self->simulate_keypress(1);
44 | return 1;
45 | }
46 |
47 | return ();
48 | }
49 |
--------------------------------------------------------------------------------
/.config/fish/config.fish:
--------------------------------------------------------------------------------
1 | function sudo
2 | if test "$argv" = !!
3 | eval command sudo $history[1]
4 | else
5 | command sudo $argv
6 | end
7 | end
8 |
9 | function fish_title
10 | if [ $_ = 'fish' ]
11 | echo (prompt_pwd -d 0)
12 | else
13 | echo $argv
14 | end
15 | end
16 |
17 | if status is-interactive
18 | fish_add_path ~/.scripts
19 | printf '\n%.0s' (seq 100)
20 | alias clear="clear && printf '\n%.0s' (seq 100)"
21 | alias c="printf '\n%.0s' (seq 100)"
22 | alias l='ls'
23 | alias s='sudo'
24 | ~/.scripts/motd.sh
25 | end
26 |
27 | set fish_greeting
28 |
29 | set --global tide_character_icon ※
30 | set --global tide_context_always_display true
31 | set --global tide_left_prompt_items context pwd git newline character
32 | set --global tide_right_prompt_items jobs status cmd_duration free time weather
33 | #set --global tide_time_format %T\ %p\
34 |
35 | set --global tide_weather_bg_color black
36 | set --global tide_weather_color brwhite
37 | set --global tide_time_bg_color white
38 | set --global tide_time_color black
39 | set --global tide_free_bg_color bryellow
40 | set --global tide_free_color black
41 | set --global tide_status_bg_color black
42 | set --global tide_status_color brgreen
43 | set --global tide_status_bg_color_failure bryellow
44 | set --global tide_status_color_failure red
45 | set --global tide_cmd_duration_bg_color black
46 | set --global tide_cmd_duration_color brwhite
47 |
48 | set --global tide_context_bg_color black
49 | set --global tide_context_color_default white
50 | set --global tide_context_color_ssh white
51 | set --global tide_context_color_root red
52 | set --global tide_pwd_bg_color brcyan
53 | set --global tide_pwd_color_anchors black
54 | set --global tide_pwd_color_dirs black
55 | set --global tide_pwd_color_truncated_dirs brblack
56 | set --global tide_character_color brcyan
57 | set --global tide_character_color_failure brred
58 |
59 | set --global tide_prompt_color_frame_and_connection white
60 |
--------------------------------------------------------------------------------
/.Xresources:
--------------------------------------------------------------------------------
1 | ! -- NEdit/XNEdit --
2 | ! fix colors, bump border shadow size down to 1px
3 | nedit*XmText.Foreground: #ffffff
4 | nedit*XmTextField.Foreground: #ffffff
5 | nedit*XmList.Foreground: #ffffff
6 | nedit*TopLevelShell*background: #444488
7 | nedit*XmPushButton.MarginWidth: 7
8 | nedit*XmPushButton.MarginHeight: 5
9 | nedit*XmToggleButton.MarginWidth: 5
10 | nedit*XmToggleButton.MarginHeight: 3
11 | nedit*ShadowThickness: 1
12 | nedit*TopShadowColor: #6e6ec3
13 | nedit*BottomShadowColor: #222244
14 | nedit*XmForm.ShadowThickness: 0
15 | nedit*font: 6x13
16 |
17 | ! -- URxvt --
18 | ! scroll back to the bottom on keypress
19 | URxvt*scrollTtyKeypress: true
20 |
21 | ! better scrolling for stuff like less, man, vim/nano, etc.
22 | URxvt.secondaryScreen: 1
23 | URxvt.secondaryScroll: 0
24 | URxvt.saveLines: 99999
25 |
26 | ! reasonable keybindings for copy/paste
27 | URxvt.keysym.Shift-Control-V: eval:paste_clipboard
28 | URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard
29 | URxvt.iso14755: false
30 | URxvt.iso14755_52: false
31 |
32 | URxvt.font: 6x13,xft:PowerlineSymbols:size=9
33 | URxvt.italicFont: 6x13
34 |
35 | URxvt.background: #222244
36 | URxvt.foreground: #ffffff
37 | URxvt.color0: #2f2a68
38 | URxvt.color1: #f06191
39 | URxvt.color2: #63e99a
40 | URxvt.color3: #ffe666
41 | URxvt.color4: #61f2dc
42 | URxvt.color5: #b043d1
43 | URxvt.color6: #61f2dc
44 | URxvt.color7: #eeeeec
45 | URxvt.color8: #38337f
46 | URxvt.color9: #f06191
47 | URxvt.color10: #63e99a
48 | URxvt.color11: #ffe666
49 | URxvt.color12: #61f2dc
50 | URxvt.color13: #c573dd
51 | URxvt.color14: #61f2dc
52 | URxvt.color15: #ffffff
53 | URxvt.cursorColor: #f06191
54 | ! you may need to change this to an absolute path in case the bg doesn't show up
55 | URxvt.pixmap: ~/.termbg.png;style=tiled
56 |
57 | URxvt.scrollBar_floating: 1
58 | URxvt.scrollBar_right: 1
59 |
60 | URxvt.perl-ext-common: default,matcher,tabbed,-confirm-paste,vtewheel
61 |
62 | ! links
63 | URxvt.url-launcher: /usr/bin/xdg-open
64 | URxvt.matcher.button: 1
65 |
66 | URxvt.tabbed.tabbar-fg: 15
67 | URxvt.tabbed.tabbar-bg: 0
68 | URxvt.tabbed.tab-fg: 11
69 | URxvt.tabbed.tab-bg: 0
70 |
--------------------------------------------------------------------------------
/.local/share/color-schemes/Loopy.colors:
--------------------------------------------------------------------------------
1 | [ColorEffects:Disabled]
2 | Color=56,56,56
3 | ColorAmount=0
4 | ColorEffect=0
5 | ContrastAmount=0.65
6 | ContrastEffect=1
7 | IntensityAmount=0.1
8 | IntensityEffect=2
9 |
10 | [ColorEffects:Inactive]
11 | ChangeSelectionColor=true
12 | Color=112,111,110
13 | ColorAmount=0.025
14 | ColorEffect=2
15 | ContrastAmount=0.1
16 | ContrastEffect=2
17 | Enable=false
18 | IntensityAmount=0
19 | IntensityEffect=0
20 |
21 | [Colors:Button]
22 | BackgroundAlternate=47,47,95
23 | BackgroundNormal=68,68,136
24 | DecorationFocus=61,174,233
25 | DecorationHover=61,174,233
26 | ForegroundActive=255,119,170
27 | ForegroundInactive=255,255,255
28 | ForegroundLink=97,242,220
29 | ForegroundNegative=218,68,83
30 | ForegroundNeutral=246,116,0
31 | ForegroundNormal=255,255,255
32 | ForegroundPositive=39,174,96
33 | ForegroundVisited=197,115,220
34 |
35 | [Colors:Complementary]
36 | BackgroundAlternate=17,17,51
37 | BackgroundNormal=34,34,68
38 | DecorationFocus=30,146,255
39 | DecorationHover=61,174,230
40 | ForegroundActive=255,119,170
41 | ForegroundInactive=255,255,255
42 | ForegroundLink=97,242,220
43 | ForegroundNegative=237,21,21
44 | ForegroundNeutral=201,206,59
45 | ForegroundNormal=255,255,255
46 | ForegroundPositive=17,209,22
47 | ForegroundVisited=197,115,220
48 |
49 | [Colors:Selection]
50 | BackgroundAlternate=221,85,136
51 | BackgroundNormal=255,119,170
52 | DecorationFocus=61,174,233
53 | DecorationHover=61,174,233
54 | ForegroundActive=252,252,252
55 | ForegroundInactive=34,34,68
56 | ForegroundLink=34,34,68
57 | ForegroundNegative=218,68,83
58 | ForegroundNeutral=246,116,0
59 | ForegroundNormal=34,34,68
60 | ForegroundPositive=39,174,96
61 | ForegroundVisited=34,34,68
62 |
63 | [Colors:Tooltip]
64 | BackgroundAlternate=17,17,51
65 | BackgroundNormal=34,34,68
66 | DecorationFocus=61,174,233
67 | DecorationHover=61,174,233
68 | ForegroundActive=255,119,170
69 | ForegroundInactive=255,255,255
70 | ForegroundLink=97,242,220
71 | ForegroundNegative=218,68,83
72 | ForegroundNeutral=246,116,0
73 | ForegroundNormal=255,255,255
74 | ForegroundPositive=39,174,96
75 | ForegroundVisited=197,115,220
76 |
77 | [Colors:View]
78 | BackgroundAlternate=34,34,68
79 | BackgroundNormal=47,47,95
80 | DecorationFocus=61,174,233
81 | DecorationHover=61,174,233
82 | ForegroundActive=255,119,170
83 | ForegroundInactive=255,255,255
84 | ForegroundLink=97,242,220
85 | ForegroundNegative=218,68,83
86 | ForegroundNeutral=246,116,0
87 | ForegroundNormal=255,255,255
88 | ForegroundPositive=39,174,96
89 | ForegroundVisited=197,115,220
90 |
91 | [Colors:Window]
92 | BackgroundAlternate=47,47,95
93 | BackgroundNormal=68,68,136
94 | DecorationFocus=61,174,233
95 | DecorationHover=61,174,233
96 | ForegroundActive=255,119,170
97 | ForegroundInactive=255,255,255
98 | ForegroundLink=97,242,220
99 | ForegroundNegative=218,68,83
100 | ForegroundNeutral=246,116,0
101 | ForegroundNormal=239,240,241
102 | ForegroundPositive=39,174,96
103 | ForegroundVisited=197,115,220
104 |
105 | [General]
106 | ColorScheme=Loopy
107 | Name=Loopy
108 | shadeSortColumn=true
109 |
110 | [KDE]
111 | contrast=4
112 |
113 | [WM]
114 | activeBackground=49,54,59
115 | activeBlend=255,255,255
116 | activeForeground=239,240,241
117 | inactiveBackground=49,54,59
118 | inactiveBlend=75,71,67
119 | inactiveForeground=127,140,141
120 |
--------------------------------------------------------------------------------
/Redmond97-theme.conf:
--------------------------------------------------------------------------------
1 | #######################################################
2 | # Basic theme settings and colors. #
3 | # Valid color codes are three or six digit hex codes #
4 | # and RGB color codes (R,G,B) 0-255,0-255,0-255 #
5 | # Note: Second titlebar colors optional. Only applies #
6 | # to metacity-1 and not XFWM4. #
7 | #######################################################
8 | Theme_name="Millennium XP"
9 |
10 | #Window Text Color:
11 | fgcolor="#fff"
12 |
13 | #Window background color:
14 | bgcolor="#448"
15 |
16 | #Textview background color (such as editors or framed objects):
17 | basecolor="#224"
18 |
19 | #Textview text color:
20 | basefg="#fff"
21 |
22 | #Selected background color:
23 | selectedbg="#f7a"
24 |
25 | #Selected text color:
26 | selectedtext="#fff"
27 |
28 | #Focused titlebar text color:
29 | activetitletext="#fff"
30 |
31 | #Unfocused titlebar text color:
32 | inactivetitletext="#fff"
33 |
34 | #Active titlebar color
35 | activetitle="#559"
36 | activetitle1="#000060"
37 |
38 | #Inactive titlebar color:
39 | inactivetitle="#337"
40 | inactivetitle1="#d4d0c8"
41 |
42 | # 3D odject border color:
43 | border="#000"
44 |
45 | ###############################
46 | # Advanced settings #
47 | ###############################
48 |
49 | #######################################################
50 | # CSD Style #
51 | # 0 styles CSD header as a title bar #default #
52 | # 1 styles CSD header as a regular toolbar #
53 | # Set this to 1 if you disabled CSD decorations. #
54 | #######################################################
55 |
56 | csd_style="1"
57 |
58 | #################################################################
59 | # Color saturation #
60 | # Sets saturation to all selected colors. Setting to #
61 | # "0" removes all colors and creates a grey scale color scheme. #
62 | # 1 is normal saturation and greater than 1 adds color #
63 | # saturation. Note: setting level to 1 disables saturation #
64 | # calculations and speeds up calculation time. Valid settings #
65 | # are 0 - 2, in intervals of 0.1. #
66 | #################################################################
67 |
68 | saturation_level="1"
69 |
70 |
71 | ########################################################################
72 | # RGB channel overdrive. #
73 | # Adds an amount of red, green, or blue to every selected color above. #
74 | # Setting a value to 1 adds 100% of that color to every selected #
75 | # color. Setting a negative value reduces the amount of the color. #
76 | # For example setting window_G="-1" completely removes the color #
77 | # green from every selected color. Valid settings are -1 to 1, in #
78 | # intervals of 0.1. Note: The script only clips and does not compress #
79 | # RGB color channels so setting all values to 1 will make everything #
80 | # white and setting all values to -1 will make everything black #
81 | # An example: window_R="0" window_B="-1" window_G="-1" will set a #
82 | # red monochrome color scheme to the generated theme. #
83 | ########################################################################
84 |
85 | #Enable channel overdrive.
86 | enable_overdrive="false"
87 |
88 | #Color channel gain
89 | window_R="0.1"
90 | window_G="-0.1"
91 | window_B="-0.2"
92 |
93 | #########################################################################
94 | # 3D shadow and disabled fg color brightness levels. #
95 | # Sets brightness level of shadows for 3D objects. #
96 | # Values above 1 add brightness, values below 1 reduce brightness #
97 | # Valid values are 0 through 2.0, in intervals of 0.1. #
98 | #########################################################################
99 |
100 | #3D Highlight shadow brightness:
101 | highlight_multiplier="1.25"
102 |
103 | #3D Shadow brightness:
104 | shadow_multiplier="0.7"
105 |
106 | #Disabled text brightness:
107 | disabled_fg_multiplier="0.8"
108 |
109 | ####################################################################################
110 | # 3D Shadow Color gain #
111 | # Adjusts the gain of the red, green, or blue channels on calculated 3d object #
112 | # highlight shadows and dark shadows. Useful for adjusting for dark backgrounds or #
113 | # window background colors biased towards one RGB channel. Note: If RGB channel #
114 | # overdrive is enabled these gains will add to the overdrive gain for 3D shadows. # #
115 | # Valid settings are -1 through 1, in intervals of 0.1. #
116 | ####################################################################################
117 |
118 | #Highlight or "light shadow" color gain
119 |
120 | #Example: setting hl_R="0.5" increases the of red on 3D highlights by 50%. Setting all values to 1
121 | #makes the highlight or light shadow color white. Setting a value negative reduces the color.
122 |
123 | #Light shadow color gain [ Red, Green, Blue ]
124 | hl_R="0.1"
125 | hl_G="0.1"
126 | hl_B="0.1"
127 |
128 | #Dark shadow color gain [ Red, Green, Blue ]
129 | s_R="0"
130 | s_G="0"
131 | s_B="0"
132 |
133 | ##########################################################################
134 | # High contrast mode #
135 | # Sets window decoration borders and buttons to border color. useful for #
136 | # dark themes with light border colors. Uses fg color to calculate #
137 | # disabled text color instead of the window bg color. Be sure to change #
138 | # the border color to a lighter color such as #fff. #
139 | ##########################################################################
140 |
141 | high_contrast="false"
142 |
143 | #####################################################################
144 | # Whisker menu options #
145 | # The default setting adds a gradient color bar next to the menu. #
146 | # Enable the alternate menu to disable the gradient bar. #
147 | #####################################################################
148 |
149 | #Set to "true" to disable gradient side bar
150 | enable_alternate_menu="false"
151 |
152 | #Text to display next to the menu
153 | menu_side_text="Redmond97"
154 |
155 | #Width of sidebar gradient in px
156 | menu_side_width="23"
157 |
158 | #Font size of sidebar text
159 | menu_side_text_size="23"
160 |
161 | #Offset of the sidebar text. Format is "px bottom","px left"
162 | menu_side_text_offset="10,22"
163 |
164 |
165 |
--------------------------------------------------------------------------------
/.config/rofi/config.rasi:
--------------------------------------------------------------------------------
1 | configuration {
2 | modi: "drun,window,run,ssh";
3 | font: "Helvetica Bold Italic 12";
4 | /* location: 0;*/
5 | /* yoffset: 0;*/
6 | /* xoffset: 0;*/
7 | /* fixed-num-lines: true;*/
8 | show-icons: true;
9 | /* terminal: "rofi-sensible-terminal";*/
10 | /* ssh-client: "ssh";*/
11 | /* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
12 | /* run-command: "{cmd}";*/
13 | /* run-list-command: "";*/
14 | /* run-shell-command: "{terminal} -e {cmd}";*/
15 | /* window-command: "wmctrl -i -R {window}";*/
16 | /* window-match-fields: "all";*/
17 | /* icon-theme: ;*/
18 | /* drun-match-fields: "name,generic,exec,categories,keywords";*/
19 | /* drun-categories: ;*/
20 | /* drun-show-actions: false;*/
21 | /* drun-display-format: "{name} [({generic})]";*/
22 | /* drun-url-launcher: "xdg-open";*/
23 | /* disable-history: false;*/
24 | /* ignored-prefixes: "";*/
25 | /* sort: false;*/
26 | /* sorting-method: "normal";*/
27 | /* case-sensitive: false;*/
28 | /* cycle: true;*/
29 | /* sidebar-mode: false;*/
30 | /* hover-select: false;*/
31 | /* eh: 1;*/
32 | /* auto-select: false;*/
33 | /* parse-hosts: false;*/
34 | /* parse-known-hosts: true;*/
35 | /* combi-modi: "window,run";*/
36 | /* matching: "normal";*/
37 | /* tokenize: true;*/
38 | /* m: "-5";*/
39 | /* filter: ;*/
40 | /* dpi: -1;*/
41 | /* threads: 0;*/
42 | /* scroll-method: 0;*/
43 | /* window-format: "{w} {c} {t}";*/
44 | /* click-to-exit: true;*/
45 | /* theme: ;*/
46 | /* max-history-size: 25;*/
47 | /* combi-hide-mode-prefix: false;*/
48 | /* matching-negate-char: '-' /* unsupported */;*/
49 | /* cache-dir: ;*/
50 | /* window-thumbnail: false;*/
51 | /* drun-use-desktop-cache: false;*/
52 | /* drun-reload-desktop-cache: false;*/
53 | /* normalize-match: false;*/
54 | /* steal-focus: false;*/
55 | /* application-fallback-icon: ;*/
56 | /* pid: "/run/user/1000/rofi.pid";*/
57 | /* display-window: ;*/
58 | /* display-windowcd: ;*/
59 | /* display-run: ;*/
60 | /* display-ssh: ;*/
61 | /* display-drun: ;*/
62 | /* display-combi: ;*/
63 | /* display-keys: ;*/
64 | /* display-filebrowser: ;*/
65 | /* kb-primary-paste: "Control+V,Shift+Insert";*/
66 | /* kb-secondary-paste: "Control+v,Insert";*/
67 | /* kb-clear-line: "Control+w";*/
68 | /* kb-move-front: "Control+a";*/
69 | /* kb-move-end: "Control+e";*/
70 | /* kb-move-word-back: "Alt+b,Control+Left";*/
71 | /* kb-move-word-forward: "Alt+f,Control+Right";*/
72 | /* kb-move-char-back: "Left,Control+b";*/
73 | /* kb-move-char-forward: "Right,Control+f";*/
74 | /* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
75 | /* kb-remove-word-forward: "Control+Alt+d";*/
76 | /* kb-remove-char-forward: "Delete,Control+d";*/
77 | /* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
78 | /* kb-remove-to-eol: "Control+k";*/
79 | /* kb-remove-to-sol: "Control+u";*/
80 | /* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
81 | /* kb-accept-custom: "Control+Return";*/
82 | /* kb-accept-custom-alt: "Control+Shift+Return";*/
83 | /* kb-accept-alt: "Shift+Return";*/
84 | /* kb-delete-entry: "Shift+Delete";*/
85 | /* kb-mode-next: "Shift+Right,Control+Tab";*/
86 | /* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
87 | /* kb-mode-complete: "Control+l";*/
88 | /* kb-row-left: "Control+Page_Up";*/
89 | /* kb-row-right: "Control+Page_Down";*/
90 | /* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/
91 | /* kb-row-down: "Down,Control+n";*/
92 | /* kb-row-tab: "Tab";*/
93 | /* kb-page-prev: "Page_Up";*/
94 | /* kb-page-next: "Page_Down";*/
95 | /* kb-row-first: "Home,KP_Home";*/
96 | /* kb-row-last: "End,KP_End";*/
97 | /* kb-row-select: "Control+space";*/
98 | /* kb-screenshot: "Alt+S";*/
99 | /* kb-ellipsize: "Alt+period";*/
100 | /* kb-toggle-case-sensitivity: "grave,dead_grave";*/
101 | /* kb-toggle-sort: "Alt+grave";*/
102 | /* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
103 | /* kb-custom-1: "Alt+1";*/
104 | /* kb-custom-2: "Alt+2";*/
105 | /* kb-custom-3: "Alt+3";*/
106 | /* kb-custom-4: "Alt+4";*/
107 | /* kb-custom-5: "Alt+5";*/
108 | /* kb-custom-6: "Alt+6";*/
109 | /* kb-custom-7: "Alt+7";*/
110 | /* kb-custom-8: "Alt+8";*/
111 | /* kb-custom-9: "Alt+9";*/
112 | /* kb-custom-10: "Alt+0";*/
113 | /* kb-custom-11: "Alt+exclam";*/
114 | /* kb-custom-12: "Alt+at";*/
115 | /* kb-custom-13: "Alt+numbersign";*/
116 | /* kb-custom-14: "Alt+dollar";*/
117 | /* kb-custom-15: "Alt+percent";*/
118 | /* kb-custom-16: "Alt+dead_circumflex";*/
119 | /* kb-custom-17: "Alt+ampersand";*/
120 | /* kb-custom-18: "Alt+asterisk";*/
121 | /* kb-custom-19: "Alt+parenleft";*/
122 | /* kb-select-1: "Super+1";*/
123 | /* kb-select-2: "Super+2";*/
124 | /* kb-select-3: "Super+3";*/
125 | /* kb-select-4: "Super+4";*/
126 | /* kb-select-5: "Super+5";*/
127 | /* kb-select-6: "Super+6";*/
128 | /* kb-select-7: "Super+7";*/
129 | /* kb-select-8: "Super+8";*/
130 | /* kb-select-9: "Super+9";*/
131 | /* kb-select-10: "Super+0";*/
132 | /* ml-row-left: "ScrollLeft";*/
133 | /* ml-row-right: "ScrollRight";*/
134 | /* ml-row-up: "ScrollUp";*/
135 | /* ml-row-down: "ScrollDown";*/
136 | /* me-select-entry: "MousePrimary";*/
137 | /* me-accept-entry: "MouseDPrimary";*/
138 | /* me-accept-custom: "Control+MouseDPrimary";*/
139 | timeout {
140 | action: "kb-cancel";
141 | delay: 0;
142 | }
143 | filebrowser {
144 | directories-first: true;
145 | sorting-method: "name";
146 | }
147 | }
148 |
149 | * {
150 | selected-normal-foreground: #333355;
151 | foreground: rgba ( 255, 255, 255, 100 % );
152 | normal-foreground: @foreground;
153 | alternate-normal-background: transparent;
154 | red: rgba ( 220, 50, 47, 100 % );
155 | selected-urgent-foreground: rgba ( 255, 195, 156, 100 % );
156 | blue: rgba ( 38, 139, 210, 100 % );
157 | urgent-foreground: rgba ( 243, 132, 61, 100 % );
158 | alternate-urgent-background: transparent;
159 | active-foreground: rgba ( 38, 139, 210, 100 % );
160 | lightbg: rgba ( 238, 232, 213, 100 % );
161 | selected-active-foreground: rgba ( 32, 81, 113, 100 % );
162 | alternate-active-background: transparent;
163 | background: transparent;
164 | bordercolor: rgba ( 57, 57, 57, 100 % );
165 | alternate-normal-foreground: @foreground;
166 | normal-background: transparent;
167 | lightfg: rgba ( 88, 104, 117, 100 % );
168 | selected-normal-background: #FF77AA;
169 | border-color: #222244;
170 | spacing: 2;
171 | separatorcolor: #333355;
172 | urgent-background: transparent;
173 | selected-urgent-background: rgba ( 38, 139, 210, 100 % );
174 | alternate-urgent-foreground: @urgent-foreground;
175 | background-color: rgba ( 0, 0, 0, 0 % );
176 | alternate-active-foreground: @active-foreground;
177 | active-background: rgba ( 57, 57, 57, 100 % );
178 | selected-active-background: rgba ( 38, 139, 210, 100 % );
179 | }
180 | window {
181 | background-color: #444488;
182 | border: 2;
183 | padding: 5;
184 | width: 360px;
185 | }
186 | mainbox {
187 | border: 0;
188 | padding: 0;
189 | }
190 | message {
191 | border: 1px dash 0px 0px ;
192 | border-color: @separatorcolor;
193 | padding: 1px ;
194 | }
195 | textbox {
196 | text-color: @foreground;
197 | }
198 | listview {
199 | fixed-height: 0;
200 | border: 1px dash 0px 0px ;
201 | border-color: @separatorcolor;
202 | spacing: 2px ;
203 | scrollbar: true;
204 | padding: 4px 0px 0px ;
205 | }
206 | element {
207 | border: 0;
208 | padding: 1px ;
209 | }
210 | element-text {
211 | background-color: inherit;
212 | text-color: inherit;
213 | }
214 | element.normal.normal {
215 | background-color: @normal-background;
216 | text-color: @normal-foreground;
217 | }
218 | element.normal.urgent {
219 | background-color: @urgent-background;
220 | text-color: @urgent-foreground;
221 | }
222 | element.normal.active {
223 | background-color: @active-background;
224 | text-color: @active-foreground;
225 | }
226 | element.selected.normal {
227 | background-color: @selected-normal-background;
228 | text-color: @selected-normal-foreground;
229 | }
230 | element.selected.urgent {
231 | background-color: @selected-urgent-background;
232 | text-color: @selected-urgent-foreground;
233 | }
234 | element.selected.active {
235 | background-color: @selected-active-background;
236 | text-color: @selected-active-foreground;
237 | }
238 | element.alternate.normal {
239 | background-color: @alternate-normal-background;
240 | text-color: @alternate-normal-foreground;
241 | }
242 | element.alternate.urgent {
243 | background-color: @alternate-urgent-background;
244 | text-color: @alternate-urgent-foreground;
245 | }
246 | element.alternate.active {
247 | background-color: @alternate-active-background;
248 | text-color: @alternate-active-foreground;
249 | }
250 | scrollbar {
251 | width: 4px ;
252 | border: 0;
253 | handle-width: 8px ;
254 | padding: 0;
255 | }
256 | mode-switcher {
257 | border: 2px dash 0px 0px ;
258 | border-color: @separatorcolor;
259 | }
260 | button.selected {
261 | background-color: @selected-normal-background;
262 | text-color: @selected-normal-foreground;
263 | }
264 | button {
265 | background-color: @background;
266 | text-color: @foreground;
267 | }
268 | inputbar {
269 | spacing: 0;
270 | text-color: @normal-foreground;
271 | padding: 1px ;
272 | }
273 | case-indicator {
274 | spacing: 0;
275 | text-color: @normal-foreground;
276 | }
277 | entry {
278 | spacing: 0;
279 | placeholder: "";
280 | text-color: @normal-foreground;
281 | }
282 | prompt {
283 | enabled: false;
284 | spacing: 0;
285 | text-color: @normal-foreground;
286 | }
287 | inputbar {
288 | children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
289 | }
290 | textbox-prompt-colon {
291 | enabled: false;
292 | expand: false;
293 | str: ":";
294 | margin: 0px 0.3em 0em 0em ;
295 | text-color: @normal-foreground;
296 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 
2 |
3 | **Long intro:** loopy-desktop is a comprehensive IRIX-like, dark-purple-with-pink-and-cyan-accents desktop theme for fvwm3 and more. Its name comes from the [Casio Loopy game console](https://en.wikipedia.org/wiki/Casio_Loopy), of which the color scheme also came from.
4 |
5 | **Short intro:** These are my dotfiles.
6 |
7 | 
8 |
9 | Please read through this entire README before applying parts of the theme. Issues clearly opened without reading through it beforehand will be closed.
10 |
11 | ## Recommended Programs
12 |
13 | Feel free to use alternatives, but keep in mind not all programs will use the standard GTK/Qt themes and may require manual theming. If you create a theme for a program not covered by loopy-desktop, feel free to make a PR.
14 |
15 | - **Window manger:** fvwm3 (see notes)
16 | - **Terminal:** rxvt-unicode
17 | - **Shell:** fish (see notes)
18 | - **Dock/Panel:** xfce4-panel (plus [xfce4-docklike-plugin](https://gitlab.xfce.org/panel-plugins/xfce4-docklike-plugin/))
19 | - **Launcher:** rofi
20 | - **Notifications:** dunst
21 | - **File manager:** PCManFM or Thunar
22 | - **Text editor:** XNEdit
23 | - **Theme applicators:** lxappearance + qt5ct
24 |
25 | ## Install Notes
26 |
27 | ### FVWM
28 |
29 | loopy-desktop practically revolves around fvwm3; if you want to use a different window manager, your window decorations will not look correct after applying the GTK/Qt themes. Most distros package fvwm2 as just 'fvwm', so make sure to specify 'fvwm3' or check the version of 'fvwm' in your package manager before installing. Distributions such as Debian don't package fvwm3 (*yet!*), so in that case you'll need to install it manually from the [releases](https://github.com/fvwmorg/fvwm3/releases). [More details on that](https://github.com/fvwmorg/fvwm3/blob/master/dev-docs/INSTALL.md); take note of the section titled "Installing From Release Tarball".
30 |
31 | The config included here is the one I use on a daily basis, so you might want to change a few things.
32 |
33 | - Nearly all virtual desktop features have been removed; if it's something you rely on, you'll need to add it all back in by comparing with fvwm's default config.
34 | - Some of the Platinum sound effects from MacOS have been added, and require mpg123 to be played. If you hate the idea of sound effects, comment out the following:
35 | - In StartFunction, `+ I Module FvwmEvent EventSounds`
36 | - In RaiseMoveX, `+ M PlaySound windowMoveDone.mp3`
37 | - In Thumbnail, `+ I PlaySound windowClose.mp3`
38 | - EwmhBaseStruts defines what space is avoided when creating new windows or maximizing them. In my case, I have 30 pixels at the top of my primary monitor (`DVI-D-0`) reserved for xfce4-panel. You will definitely need to change this; If you have a single screen, remove the `screen DVI-D-0` portion entirely. If you have multiple monitors, use `xrandr -q` to list your display names, find your preferred monitor, and replace `DVI-D-0` with that.
39 | - The locking mechanism in `onLock.sh` and `onSuspend.sh` assumes you have [xsecurelock+xss-lock installed and configured properly](https://github.com/google/xsecurelock). In my case, xss-lock handles locking before suspend via `~/.Xsession`. You'll want to edit these scripts, either to switch the screen locker entirely, or to tweak the appearance of XSL.
40 |
41 | Some notes on shortcuts:
42 |
43 | - Since screen-edge-resizing (I refuse to call it "Aero Snap", okay?) isn't really a thing in FVWM, I've set up a sort-of tiling system via the arrow keys/keypad. All shortcuts will toggle between the desired shape and the window's original shape.
44 | - **Super+Left/Right or Keypad4/6:** Left/right sides
45 | - **Super+Up or Keypad5:** Maximize
46 | - **Super+Down:** Upper-left corner (for those without a keypad)
47 | - **Super+Keypad8/2:** Upper/lower
48 | - **Super+Keypad7/9/1/3:** Corners
49 | - **Super+Space** will open rofi as an application launcher.
50 | - Do mouse bindings count as shortcuts? Here are some useful ones:
51 | - Double-click titlebars to maximize/restore
52 | - Right-click titlebars to shade
53 | - Middle-click+drag window borders to move them
54 |
55 | Installation for the fvwm config is simple; remove `.fvwm` from your home directory, then copy `.fvwm` from the repository to your home.
56 |
57 | ### Qt
58 |
59 | This covers almost every Qt-based program under the sun, including the KDE ones such as Kdenlive and Krita. It comes in two parts: a qt5ct theme, and a KDE color scheme. Place `.config/qt5ct/colors/Loopy.conf` and `.local/share/color-schemes/Loopy.colors` into their respective locations in your home directory, creating the directories as necessary if they don't exist. Use qt5ct to set the style to "Windows", and the palette to "Custom", selecting "Loopy" in the dropdown. You should also set your fonts and icon theme here (see the notes on those in the "Not Included" section).
60 |
61 | Some Qt-based programs won't have the theme applied right away. You'll need to look around in the settings for a theme option, and select "qt5ct" there. Apps like Kdenlive and Krita won't get the colors from qt5ct, and that's where the .colors file comes in; listed along with Breeze, Breeze Dark, etc. will be the Loopy colorset.
62 |
63 | ### rxvt-unicode
64 |
65 | Copy `.Xresources`, `.termBG.png`, and `.urxvt` to your home directory. Run `xrdb ~/.Xresources` to apply.
66 |
67 | ### XNEdit
68 |
69 | [XNEdit](https://github.com/unixwork/xnedit) is a somewhat-modern fork of NEdit. Its predecessor's life as the default IRIX text editor helps it fit nicely into loopy-desktop. To apply the theme, copy `.Xresources` and `.xnedit` to your home directory. Run `xrdb ~/.Xresources` to apply, if you haven't already.
70 |
71 | ### Fish
72 |
73 | I actually don't know why I made this a part of loopy-desktop. I guess I was anticipating people asking for my shell setup?
74 |
75 | Anyway, you'll need Fish along with the [Tide](https://github.com/IlanCosman/tide) prompt. Copy the contents of `.config/fish` over once you've finished installing that. You'll also need to copy over `.scripts` to your home directory for the MOTD and weather scripts; add a cronjob to run `weather.sh` every hour.
76 |
77 | If you don't want to switch over to Fish and are currently using Zsh, check out [powerlevel10k](https://github.com/romkatv/powerlevel10k). Although it's a bit... *much*, you should be able to configure the prompt to look like the one in the screenshot.
78 |
79 | ### Rofi
80 |
81 | Self explanatory; copy `.config/rofi/config.rasi` where it belongs.
82 |
83 | ## Not Included
84 |
85 | Some components of the theme couldn't be included here for one reason or another.
86 |
87 | ### GTK
88 |
89 | loopy-desktop uses a modified version of the [Redmond97 theme](https://github.com/matthewmx86/Redmond97). You'll need to do the following in order to install it:
90 |
91 | 1. Install imagemagick.
92 | 2. Clone the [Redmond97 repository](https://github.com/matthewmx86/Redmond97) locally.
93 | 3. In Extras/Theme_Builder/base.tar.gz, edit /gtk-3.0/settings.ini, remove the line starting with `gtk-icon-theme-name`. In /index.theme, remove the line starting with `IconTheme=`.
94 | 4. In Extras/Theme_Builder, delete theme.conf and replace it with the one in this repository, renaming as necessary.
95 | 5. In the same directory, run `gen_theme.sh`. Use lxappearance to set the theme.
96 |
97 | **Note:** Many applications won't look correct until you install gdk2-engines-pixbuf, or your distro's equivalent package.
98 |
99 | ### Fonts
100 |
101 | You *technically* already have all of the fonts needed, provided you have xfonts-base and xfonts-75dpi installed (with the exception of HCP Maru Gothic, which I used for xsecurelock). There's a bit more setup involved to get them available to most applications, though;
102 |
103 | - Remove `/etc/fonts/conf.d/70-no-bitmaps.conf`, or whatever the equivalent is in your distro.
104 | - Use fontforge to convert the following fonts to .otb. Save them somewhere in your home directory.
105 | - `/usr/share/fonts/X11/75dpi/helvR12.pcf.gz`, `/usr/share/fonts/X11/75dpi/helvR14.pcf.gz`
106 | - You could do the rest of the sizes, but I've found these two work well enough for most cases.
107 | - `/usr/share/fonts/X11/misc/6x13.pcf.gz`
108 | - `/usr/share/fonts/X11/misc/8x16.pcf.gz`
109 | - You can skip this one if you want; provides a slightly bigger monospace font
110 | - `/usr/share/fonts/X11/misc/10x20.pcf.gz`
111 | - You can skip this one if you want; provides an even larger monospace font
112 | - Move the .otb files you've just created to the appropriate locations. For example, `helvR12.otb` would go in `/usr/share/fonts/X11/75dpi`, and `6x13.otb` would go in `/usr/share/fonts/X11/misc`.
113 | - Run `sudo fc-cache -fv`
114 |
115 | **Note:** You can also batch convert every font containing 'helv' with some very light bash/fontforge scripting. This'll give you many more options for font sizes, but it isn't required. Same goes for a lot of the X11 misc fixed fonts, but you may need to do those one at a time (otherwise you'll end up with *a lot* of symbol fonts). In the future, I may add a small helper script to complete this step.
116 |
117 | Then use lxappearance to set the font to "Helvetica Medium 9", and qt5ct to set the general font to the same. qt5ct also has a setting for the fixed width font; set that to "Fixed", with whatever size you'd like (based on which fixed width fonts you ended up converting).
118 |
119 | Though the system generally uses the bitmap fonts in places that make sense, there's sometimes a bit of leakage; for example, web browsers will continue to render pages as intended with proper font anti-aliasing, but will disable it for text that's to be rendered with Helvetica. It's not that big of a problem though, as web designers seem to be getting tired of it. If you *do* want Firefox to use bitmap fonts in pages, check Settings for the "Fonts" subheading, and click "Advanced...". There you can set your sans-serif font to Helvetica, and your monospace font to Fixed. (One of the fonts in X11's misc fonts provides Times, so you can use that for the serif font once you've converted it to otb.)
120 |
121 | ### Firefox
122 |
123 | [Theme available here.](https://addons.mozilla.org/en-US/firefox/addon/loopy/)
124 |
125 | ### VSCode
126 |
127 | [Theme available here.](https://marketplace.visualstudio.com/items?itemName=kokoscript.loopytheme)
128 |
129 | ### Icons
130 |
131 | There is no specific icon theme associated with loopy-desktop. I recommend using the [Papirus icon theme](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme) since it has somewhat-vibrant colors that work well with the purple, but realistically any theme should work.
132 |
133 | If you end up using Papirus, use the `papirus-folders` tool and play around with the colors; either cyan or pink should work best.
134 |
135 | (*Sidenote: I originally wanted to create an IRIX-like icon theme to go along with loopy-desktop, but realized it would take far too much of my time- even with scripts to practically make the theme for me- so I've shelved it for now. Once I do create it, if at all, it'll be added.*)
136 |
137 | ### Cursors
138 |
139 | To revert to the basic X11 cursors, edit `~/.icons/default/index.theme`, clearing out the value after `Inherits=`. Do the same with `~/.config/gtk-3.0/settings.ini`, but with the `gtk-cursor-theme-name` variable. **You'll need to do this *after* you've finished using lxappearance, otherwise cursors will be reset to the system default.**
140 |
141 | In the case that the basic X11 cursors *still* don't show up, edit the .theme files in `/etc/X11/cursors`, clearing the value of `Inherits` for each as before.
142 |
143 | ### WINE programs
144 |
145 | Wine can make use of older Windows themes through `winecfg`. A [version of the Loopy colorscheme I made for Windows](https://kokoscript.com/depot/themes/kokoscript-loopy.Theme) appears to work nicely with it. Once you've downloaded it, open the "Desktop Integration" tab, click "Install Theme...", and browse to the theme file.
146 |
147 | ## That's it!
148 |
149 | If you have any suggestions or problems (**after reading everything here**), feel free to open an issue. If you have any *improvements*, feel free to open a PR. Comments can be left anywhere that isn't the issues page. Please.
150 |
151 | ### ...but I'm on Windows! :(
152 |
153 | Hope you're on Windows XP or earlier, because [this is all I've got](https://kokoscript.com/depot/themes/kokoscript-loopy.Theme).
154 |
155 | ### ...but I'm on (Classic) MacOS! :\(
156 |
157 | I swear I have a version of loopy for Kaleidoscope ready to go, I've just never posted it anywhere lol
158 |
159 | ### ...but I'm on Haiku! :\(
160 |
161 | [Loopy for Haiku!](https://github.com/kokoscript/loopy-haiku)
162 |
--------------------------------------------------------------------------------
/.config/dunst/dunstrc:
--------------------------------------------------------------------------------
1 | # See dunst(5) for all configuration options
2 |
3 | [global]
4 | ### Display ###
5 |
6 | # Which monitor should the notifications be displayed on.
7 | monitor = 0
8 |
9 | # Display notification on focused monitor. Possible modes are:
10 | # mouse: follow mouse pointer
11 | # keyboard: follow window with keyboard focus
12 | # none: don't follow anything
13 | #
14 | # "keyboard" needs a window manager that exports the
15 | # _NET_ACTIVE_WINDOW property.
16 | # This should be the case for almost all modern window managers.
17 | #
18 | # If this option is set to mouse or keyboard, the monitor option
19 | # will be ignored.
20 | follow = none
21 |
22 | ### Geometry ###
23 |
24 | # dynamic width from 0 to 300
25 | # width = (0, 300)
26 | # constant width of 300
27 | width = 300
28 |
29 | # The maximum height of a single notification, excluding the frame.
30 | height = 300
31 |
32 | # Position the notification in the top right corner
33 | origin = top-right
34 |
35 | # Offset from the origin
36 | offset = 10x38
37 |
38 | # Scale factor. It is auto-detected if value is 0.
39 | scale = 0
40 |
41 | # Maximum number of notification (0 means no limit)
42 | notification_limit = 0
43 |
44 | ### Progress bar ###
45 |
46 | # Turn on the progess bar. It appears when a progress hint is passed with
47 | # for example dunstify -h int:value:12
48 | progress_bar = true
49 |
50 | # Set the progress bar height. This includes the frame, so make sure
51 | # it's at least twice as big as the frame width.
52 | progress_bar_height = 6
53 |
54 | # Set the frame width of the progress bar
55 | progress_bar_frame_width = 1
56 |
57 | # Set the minimum width for the progress bar
58 | progress_bar_min_width = 150
59 |
60 | # Set the maximum width for the progress bar
61 | progress_bar_max_width = 300
62 |
63 |
64 | # Show how many messages are currently hidden (because of
65 | # notification_limit).
66 | indicate_hidden = yes
67 |
68 | # The transparency of the window. Range: [0; 100].
69 | # This option will only work if a compositing window manager is
70 | # present (e.g. xcompmgr, compiz, etc.). (X11 only)
71 | transparency = 0
72 |
73 | # Draw a line of "separator_height" pixel height between two
74 | # notifications.
75 | # Set to 0 to disable.
76 | separator_height = 1
77 |
78 | # Padding between text and separator.
79 | padding = 8
80 |
81 | # Horizontal padding.
82 | horizontal_padding = 4
83 |
84 | # Padding between text and icon.
85 | text_icon_padding = 0
86 |
87 | # Defines width in pixels of frame around the notification window.
88 | # Set to 0 to disable.
89 | frame_width = 1
90 |
91 | # Defines color of the frame around the notification window.
92 | frame_color = "#111133"
93 | highlight = "#ff77aa"
94 | # Define a color for the separator.
95 | # possible values are:
96 | # * auto: dunst tries to find a color fitting to the background;
97 | # * foreground: use the same color as the foreground;
98 | # * frame: use the same color as the frame;
99 | # * anything else will be interpreted as a X color.
100 | separator_color = frame
101 |
102 | # Sort messages by urgency.
103 | sort = yes
104 |
105 | # Don't remove messages, if the user is idle (no mouse or keyboard input)
106 | # for longer than idle_threshold seconds.
107 | # Set to 0 to disable.
108 | # A client can set the 'transient' hint to bypass this. See the rules
109 | # section for how to disable this if necessary
110 | # idle_threshold = 60
111 |
112 | ### Text ###
113 |
114 | font = Helvetica 9
115 |
116 | # The spacing between lines. If the height is smaller than the
117 | # font height, it will get raised to the font height.
118 | line_height = 0
119 |
120 | # Possible values are:
121 | # full: Allow a small subset of html markup in notifications:
122 | # bold
123 | # italic
124 | # strikethrough
125 | # underline
126 | #
127 | # For a complete reference see
128 | # .
129 | #
130 | # strip: This setting is provided for compatibility with some broken
131 | # clients that send markup even though it's not enabled on the
132 | # server. Dunst will try to strip the markup but the parsing is
133 | # simplistic so using this option outside of matching rules for
134 | # specific applications *IS GREATLY DISCOURAGED*.
135 | #
136 | # no: Disable markup parsing, incoming notifications will be treated as
137 | # plain text. Dunst will not advertise that it has the body-markup
138 | # capability if this is set as a global setting.
139 | #
140 | # It's important to note that markup inside the format option will be parsed
141 | # regardless of what this is set to.
142 | markup = full
143 |
144 | # The format of the message. Possible variables are:
145 | # %a appname
146 | # %s summary
147 | # %b body
148 | # %i iconname (including its path)
149 | # %I iconname (without its path)
150 | # %p progress value if set ([ 0%] to [100%]) or nothing
151 | # %n progress value if set without any extra characters
152 | # %% Literal %
153 | # Markup is allowed
154 | format = "%s\n%b"
155 |
156 | # Alignment of message text.
157 | # Possible values are "left", "center" and "right".
158 | alignment = left
159 |
160 | # Vertical alignment of message text and icon.
161 | # Possible values are "top", "center" and "bottom".
162 | vertical_alignment = top
163 |
164 | # Show age of message if message is older than show_age_threshold
165 | # seconds.
166 | # Set to -1 to disable.
167 | show_age_threshold = 60
168 |
169 | # Specify where to make an ellipsis in long lines.
170 | # Possible values are "start", "middle" and "end".
171 | ellipsize = middle
172 |
173 | # Ignore newlines '\n' in notifications.
174 | ignore_newline = no
175 |
176 | # Stack together notifications with the same content
177 | stack_duplicates = true
178 |
179 | # Hide the count of stacked notifications with the same content
180 | hide_duplicate_count = false
181 |
182 | # Display indicators for URLs (U) and actions (A).
183 | show_indicators = yes
184 |
185 | ### Icons ###
186 |
187 | # Align icons left/right/top/off
188 | icon_position = left
189 |
190 | # Scale small icons up to this size, set to 0 to disable. Helpful
191 | # for e.g. small files or high-dpi screens. In case of conflict,
192 | # max_icon_size takes precedence over this.
193 | min_icon_size = 32
194 |
195 | # Scale larger icons down to this size, set to 0 to disable
196 | max_icon_size = 32
197 |
198 | # Paths to default icons.
199 | icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
200 |
201 | ### History ###
202 |
203 | # Should a notification popped up from history be sticky or timeout
204 | # as if it would normally do.
205 | sticky_history = yes
206 |
207 | # Maximum amount of notifications kept in history
208 | history_length = 20
209 |
210 | ### Misc/Advanced ###
211 |
212 | # dmenu path.
213 | #dmenu = /usr/bin/dmenu -p dunst:
214 |
215 | # Browser for opening urls in context menu.
216 | browser = /usr/bin/xdg-open
217 |
218 | # Always run rule-defined scripts, even if the notification is suppressed
219 | always_run_script = true
220 |
221 | # Define the title of the windows spawned by dunst
222 | title = Dunst
223 |
224 | # Define the class of the windows spawned by dunst
225 | class = Dunst
226 |
227 | # Define the corner radius of the notification window
228 | # in pixel size. If the radius is 0, you have no rounded
229 | # corners.
230 | # The radius will be automatically lowered if it exceeds half of the
231 | # notification height to avoid clipping text and/or icons.
232 | corner_radius = 0
233 |
234 | # Ignore the dbus closeNotification message.
235 | # Useful to enforce the timeout set by dunst configuration. Without this
236 | # parameter, an application may close the notification sent before the
237 | # user defined timeout.
238 | ignore_dbusclose = false
239 |
240 | ### Wayland ###
241 | # These settings are Wayland-specific. They have no effect when using X11
242 |
243 | # Uncomment this if you want to let notications appear under fullscreen
244 | # applications (default: overlay)
245 | # layer = top
246 |
247 | # Set this to true to use X11 output on Wayland.
248 | force_xwayland = false
249 |
250 | ### Legacy
251 |
252 | # Use the Xinerama extension instead of RandR for multi-monitor support.
253 | # This setting is provided for compatibility with older nVidia drivers that
254 | # do not support RandR and using it on systems that support RandR is highly
255 | # discouraged.
256 | #
257 | # By enabling this setting dunst will not be able to detect when a monitor
258 | # is connected or disconnected which might break follow mode if the screen
259 | # layout changes.
260 | force_xinerama = false
261 |
262 | ### mouse
263 |
264 | # Defines list of actions for each mouse event
265 | # Possible values are:
266 | # * none: Don't do anything.
267 | # * do_action: Invoke the action determined by the action_name rule. If there is no
268 | # such action, open the context menu.
269 | # * open_url: If the notification has exactly one url, open it. If there are multiple
270 | # ones, open the context menu.
271 | # * close_current: Close current notification.
272 | # * close_all: Close all notifications.
273 | # * context: Open context menu for the notification.
274 | # * context_all: Open context menu for all notifications.
275 | # These values can be strung together for each mouse event, and
276 | # will be executed in sequence.
277 | mouse_left_click = close_current
278 | mouse_middle_click = do_action, close_current
279 | mouse_right_click = close_all
280 |
281 | # Experimental features that may or may not work correctly. Do not expect them
282 | # to have a consistent behaviour across releases.
283 | [experimental]
284 | # Calculate the dpi to use on a per-monitor basis.
285 | # If this setting is enabled the Xft.dpi value will be ignored and instead
286 | # dunst will attempt to calculate an appropriate dpi value for each monitor
287 | # using the resolution and physical size. This might be useful in setups
288 | # where there are multiple screens with very different dpi values.
289 | per_monitor_dpi = false
290 |
291 |
292 | [urgency_low]
293 | # IMPORTANT: colors have to be defined in quotation marks.
294 | # Otherwise the "#" and following would be interpreted as a comment.
295 | background = "#222244"
296 | foreground = "#ffffff"
297 | timeout = 10
298 | # Icon for notifications with low urgency, uncomment to enable
299 | #default_icon = /path/to/icon
300 |
301 | [urgency_normal]
302 | background = "#222244"
303 | foreground = "#ffffff"
304 | timeout = 10
305 | # Icon for notifications with normal urgency, uncomment to enable
306 | #default_icon = /path/to/icon
307 |
308 | [urgency_critical]
309 | background = "#222244"
310 | foreground = "#ffffff"
311 | frame_color = "#ff0000"
312 | timeout = 0
313 | # Icon for notifications with critical urgency, uncomment to enable
314 | #default_icon = /path/to/icon
315 |
316 | # Every section that isn't one of the above is interpreted as a rules to
317 | # override settings for certain messages.
318 | #
319 | # Messages can be matched by
320 | # appname (discouraged, see desktop_entry)
321 | # body
322 | # category
323 | # desktop_entry
324 | # icon
325 | # match_transient
326 | # msg_urgency
327 | # stack_tag
328 | # summary
329 | #
330 | # and you can override the
331 | # background
332 | # foreground
333 | # format
334 | # frame_color
335 | # fullscreen
336 | # new_icon
337 | # set_stack_tag
338 | # set_transient
339 | # set_category
340 | # timeout
341 | # urgency
342 | # icon_position
343 | # skip_display
344 | # history_ignore
345 | # action_name
346 | # word_wrap
347 | # ellipsize
348 | # alignment
349 | # hide_text
350 | #
351 | # Shell-like globbing will get expanded.
352 | #
353 | # Instead of the appname filter, it's recommended to use the desktop_entry filter.
354 | # GLib based applications export their desktop-entry name. In comparison to the appname,
355 | # the desktop-entry won't get localized.
356 | #
357 | # SCRIPTING
358 | # You can specify a script that gets run when the rule matches by
359 | # setting the "script" option.
360 | # The script will be called as follows:
361 | # script appname summary body icon urgency
362 | # where urgency can be "LOW", "NORMAL" or "CRITICAL".
363 | #
364 | # NOTE: It might be helpful to run dunst -print in a terminal in order
365 | # to find fitting options for rules.
366 |
367 | # Disable the transient hint so that idle_threshold cannot be bypassed from the
368 | # client
369 | #[transient_disable]
370 | # match_transient = yes
371 | # set_transient = no
372 | #
373 | # Make the handling of transient notifications more strict by making them not
374 | # be placed in history.
375 | #[transient_history_ignore]
376 | # match_transient = yes
377 | # history_ignore = yes
378 |
379 | # fullscreen values
380 | # show: show the notifications, regardless if there is a fullscreen window opened
381 | # delay: displays the new notification, if there is no fullscreen window active
382 | # If the notification is already drawn, it won't get undrawn.
383 | # pushback: same as delay, but when switching into fullscreen, the notification will get
384 | # withdrawn from screen again and will get delayed like a new notification
385 | #[fullscreen_delay_everything]
386 | # fullscreen = delay
387 | #[fullscreen_show_critical]
388 | # msg_urgency = critical
389 | # fullscreen = show
390 |
391 | #[espeak]
392 | # summary = "*"
393 | # script = dunst_espeak.sh
394 |
395 | #[script-test]
396 | # summary = "*script*"
397 | # script = dunst_test.sh
398 |
399 | #[ignore]
400 | # # This notification will not be displayed
401 | # summary = "foobar"
402 | # skip_display = true
403 |
404 | #[history-ignore]
405 | # # This notification will not be saved in history
406 | # summary = "foobar"
407 | # history_ignore = yes
408 |
409 | #[skip-display]
410 | # # This notification will not be displayed, but will be included in the history
411 | # summary = "foobar"
412 | # skip_display = yes
413 |
414 | #[signed_on]
415 | # appname = Pidgin
416 | # summary = "*signed on*"
417 | # urgency = low
418 | #
419 | #[signed_off]
420 | # appname = Pidgin
421 | # summary = *signed off*
422 | # urgency = low
423 | #
424 | #[says]
425 | # appname = Pidgin
426 | # summary = *says*
427 | # urgency = critical
428 | #
429 | #[twitter]
430 | # appname = Pidgin
431 | # summary = *twitter.com*
432 | # urgency = normal
433 | #
434 | #[stack-volumes]
435 | # appname = "some_volume_notifiers"
436 | # set_stack_tag = "volume"
437 | #
438 | # vim: ft=cfg
439 |
--------------------------------------------------------------------------------
/.xnedit/nedit.rc:
--------------------------------------------------------------------------------
1 | ! Preferences file for NEdit
2 | ! (User settings in X "application defaults" format)
3 | !
4 | ! This file is overwritten by the "Save Defaults..." command in NEdit
5 | ! and serves only the interactively settable options presented in the NEdit
6 | ! "Preferences" menu. To modify other options, such as key bindings, use
7 | ! the .Xdefaults file in your home directory (or the X resource
8 | ! specification method appropriate to your system). The contents of this
9 | ! file can be moved into an X resource file, but since resources in this file
10 | ! override their corresponding X resources, either this file should be
11 | ! deleted or individual resource lines in the file should be deleted for the
12 | ! moved lines to take effect.
13 |
14 | nedit.fileVersion: 6.2
15 | nedit.shellCommands: \
16 | spell:Alt+B:s:EX:\n\
17 | cat>spellTmp; xterm -e ispell -x spellTmp; cat spellTmp; rm spellTmp\n\
18 | wc::w:ED:\n\
19 | wc | awk '{print $1 " lines, " $2 " words, " $3 " characters"}'\n\
20 | sort::o:EX:\n\
21 | sort\n\
22 | number lines::n:AW:\n\
23 | nl -ba\n\
24 | make:Alt+Z:m:W:\n\
25 | make\n\
26 | expand::p:EX:\n\
27 | expand\n\
28 | unexpand::u:EX:\n\
29 | unexpand\n
30 | nedit.macroCommands: \
31 | Complete Word:Alt+D::: {\n\
32 | # This macro attempts to complete the current word by\n\
33 | # finding another word in the same document that has\n\
34 | # the same prefix; repeated invocations of the macro\n\
35 | # (by repeated typing of its accelerator, say) cycles\n\
36 | # through the alternatives found.\n\
37 | # \n\
38 | # Make sure $compWord contains something (a dummy index)\n\
39 | $compWord[""] = ""\n\
40 | \n\
41 | # Test whether the rest of $compWord has been initialized:\n\
42 | # this avoids having to initialize the global variable\n\
43 | # $compWord in an external macro file\n\
44 | if (!("wordEnd" in $compWord)) {\n\
45 | # we need to initialize it\n\
46 | $compWord["wordEnd"] = 0\n\
47 | $compWord["repeat"] = 0\n\
48 | $compWord["init"] = 0\n\
49 | $compWord["wordStart"] = 0\n\
50 | }\n\
51 | \n\
52 | if ($compWord["wordEnd"] == $cursor) {\n\
53 | $compWord["repeat"] += 1\n\
54 | }\n\
55 | else {\n\
56 | $compWord["repeat"] = 1\n\
57 | $compWord["init"] = $cursor\n\
58 | \n\
59 | # search back to a word boundary to find the word to complete\n\
60 | # (we use \\w here to allow for programming "words" that can include\n\
61 | # digits and underscores; use \\l for letters only)\n\
62 | $compWord["wordStart"] = search("<\\\\w+", $cursor, "backward", "regex", "wrap")\n\
63 | \n\
64 | if ($compWord["wordStart"] == -1)\n\
65 | return\n\
66 | \n\
67 | if ($search_end == $cursor)\n\
68 | $compWord["word"] = get_range($compWord["wordStart"], $cursor)\n\
69 | else\n\
70 | return\n\
71 | }\n\
72 | s = $cursor\n\
73 | for (i=0; i <= $compWord["repeat"]; i++)\n\
74 | s = search($compWord["word"], s - 1, "backward", "regex", "wrap")\n\
75 | \n\
76 | if (s == $compWord["wordStart"]) {\n\
77 | beep()\n\
78 | $compWord["repeat"] = 0\n\
79 | s = $compWord["wordStart"]\n\
80 | se = $compWord["init"]\n\
81 | }\n\
82 | else\n\
83 | se = search(">", s, "regex")\n\
84 | \n\
85 | replace_range($compWord["wordStart"], $cursor, get_range(s, se))\n\
86 | \n\
87 | $compWord["wordEnd"] = $cursor\n\
88 | }\n\
89 | Fill Sel. w/Char:::R: {\n\
90 | # This macro replaces each character position in\n\
91 | # the selection with the string typed into the dialog\n\
92 | # it displays.\n\
93 | if ($selection_start == -1) {\n\
94 | beep()\n\
95 | return\n\
96 | }\n\
97 | \n\
98 | # Ask the user what character to fill with\n\
99 | fillChar = string_dialog("Fill selection with what character?", \\\n\
100 | "OK", "Cancel")\n\
101 | if ($string_dialog_button == 2 || $string_dialog_button == 0)\n\
102 | return\n\
103 | \n\
104 | # Count the number of lines (NL characters) in the selection\n\
105 | # (by removing all non-NLs in selection and counting the remainder)\n\
106 | nLines = length(replace_in_string(get_selection(), \\\n\
107 | "^.*$", "", "regex"))\n\
108 | \n\
109 | rectangular = $selection_left != -1\n\
110 | \n\
111 | # work out the pieces of required of the replacement text\n\
112 | # this will be top mid bot where top is empty or ends in NL,\n\
113 | # mid is 0 or more lines of repeats ending with NL, and\n\
114 | # bot is 0 or more repeats of the fillChar\n\
115 | \n\
116 | toplen = -1 # top piece by default empty (no NL)\n\
117 | midlen = 0\n\
118 | botlen = 0\n\
119 | \n\
120 | if (rectangular) {\n\
121 | # just fill the rectangle: mid\\n \\ nLines\n\
122 | # mid\\n /\n\
123 | # bot - last line with no nl\n\
124 | midlen = $selection_right - $selection_left\n\
125 | botlen = $selection_right - $selection_left\n\
126 | } else {\n\
127 | # |col[0]\n\
128 | # .........toptoptop\\n |col[0]\n\
129 | # either midmidmidmidmidmid\\n \\ nLines - 1 or ...botbot...\n\
130 | # midmidmidmidmidmid\\n / |col[1]\n\
131 | # botbot... |\n\
132 | # |col[1] |wrap margin\n\
133 | # we need column positions col[0], col[1] of selection start and\n\
134 | # end (use a loop and arrays to do the two positions)\n\
135 | sel[0] = $selection_start\n\
136 | sel[1] = $selection_end\n\
137 | \n\
138 | # col[0] = pos_to_column($selection_start)\n\
139 | # col[1] = pos_to_column($selection_end)\n\
140 | \n\
141 | for (i = 0; i < 2; ++i) {\n\
142 | end = sel[i]\n\
143 | pos = search("^", end, "regex", "backward")\n\
144 | thisCol = 0\n\
145 | while (pos < end) {\n\
146 | nexttab = search("\\t", pos)\n\
147 | if (nexttab < 0 || nexttab >= end) {\n\
148 | thisCol += end - pos # count remaining non-tabs\n\
149 | nexttab = end\n\
150 | } else {\n\
151 | thisCol += nexttab - pos + $tab_dist\n\
152 | thisCol -= (thisCol % $tab_dist)\n\
153 | }\n\
154 | pos = nexttab + 1 # skip past the tab or end\n\
155 | }\n\
156 | col[i] = thisCol\n\
157 | }\n\
158 | toplen = max($wrap_margin - col[0], 0)\n\
159 | botlen = min(col[1], $wrap_margin)\n\
160 | \n\
161 | if (nLines == 0) {\n\
162 | toplen = -1\n\
163 | botlen = max(botlen - col[0], 0)\n\
164 | } else {\n\
165 | midlen = $wrap_margin\n\
166 | if (toplen < 0)\n\
167 | toplen = 0\n\
168 | nLines-- # top piece will end in a NL\n\
169 | }\n\
170 | }\n\
171 | \n\
172 | # Create the fill text\n\
173 | # which is the longest piece? make a line of that length\n\
174 | # (use string doubling - this allows the piece to be\n\
175 | # appended to double in size at each iteration)\n\
176 | \n\
177 | len = max(toplen, midlen, botlen)\n\
178 | charlen = length(fillChar) # maybe more than one char given!\n\
179 | \n\
180 | line = ""\n\
181 | while (len > 0) {\n\
182 | if (len % 2)\n\
183 | line = line fillChar\n\
184 | len /= 2\n\
185 | if (len > 0)\n\
186 | fillChar = fillChar fillChar\n\
187 | }\n\
188 | # assemble our pieces\n\
189 | toppiece = ""\n\
190 | midpiece = ""\n\
191 | botpiece = ""\n\
192 | if (toplen >= 0)\n\
193 | toppiece = substring(line, 0, toplen * charlen) "\\n"\n\
194 | if (botlen > 0)\n\
195 | botpiece = substring(line, 0, botlen * charlen)\n\
196 | \n\
197 | # assemble midpiece (use doubling again)\n\
198 | line = substring(line, 0, midlen * charlen) "\\n"\n\
199 | while (nLines > 0) {\n\
200 | if (nLines % 2)\n\
201 | midpiece = midpiece line\n\
202 | nLines /= 2\n\
203 | if (nLines > 0)\n\
204 | line = line line\n\
205 | }\n\
206 | # Replace the selection with the complete fill text\n\
207 | replace_selection(toppiece midpiece botpiece)\n\
208 | }\n\
209 | Comments>/* Comment */@C@C++@Java@CSS@JavaScript@Lex:::R: {\n\
210 | selStart = $selection_start\n\
211 | selEnd = $selection_end\n\
212 | replace_range(selStart, selEnd, "/* " get_selection() " */")\n\
213 | select(selStart, selEnd + 6)\n\
214 | }\n\
215 | Comments>/* Uncomment */@C@C++@Java@CSS@JavaScript@Lex:::R: {\n\
216 | pos = search("(?n\\\\s*/\\\\*\\\\s*)", $selection_start, "regex")\n\
217 | start = $search_end\n\
218 | end = search("(?n\\\\*/\\\\s*)", $selection_end, "regex", "backward")\n\
219 | if (pos != $selection_start || end == -1 )\n\
220 | return\n\
221 | replace_selection(get_range(start, end))\n\
222 | select(pos, $cursor)\n\
223 | }\n\
224 | Comments>// Comment@C@C++@Java@JavaScript:::R: {\n\
225 | replace_in_selection("^.*$", "// &", "regex")\n\
226 | }\n\
227 | Comments>// Uncomment@C@C++@Java@JavaScript:::R: {\n\
228 | replace_in_selection("(^[ \\\\t]*// ?)(.*)$", "\\\\2", "regex")\n\
229 | }\n\
230 | Comments># Comment@Perl@Sh Ksh Bash@NEdit Macro@Makefile@Awk@Csh@Python@Tcl:::R: {\n\
231 | replace_in_selection("^.*$", "#&", "regex")\n\
232 | }\n\
233 | Comments># Uncomment@Perl@Sh Ksh Bash@NEdit Macro@Makefile@Awk@Csh@Python@Tcl:::R: {\n\
234 | replace_in_selection("(^[ \\\\t]*#)(.*)$", "\\\\2", "regex")\n\
235 | }\n\
236 | Comments>-- Comment@SQL:::R: {\n\
237 | replace_in_selection("^.*$", "--&", "regex")\n\
238 | }\n\
239 | Comments>-- Uncomment@SQL:::R: {\n\
240 | replace_in_selection("(^[ \\\\t]*--)(.*)$", "\\\\2", "regex")\n\
241 | }\n\
242 | Comments>! Comment@X Resources:::R: {\n\
243 | replace_in_selection("^.*$", "!&", "regex")\n\
244 | }\n\
245 | Comments>! Uncomment@X Resources:::R: {\n\
246 | replace_in_selection("(^[ \\\\t]*!)(.*)$", "\\\\2", "regex")\n\
247 | }\n\
248 | Comments>% Comment@LaTeX:::R: {\n\
249 | replace_in_selection("^.*$", "%&", "regex")\n\
250 | }\n\
251 | Comments>% Uncomment@LaTeX:::R: {\n\
252 | replace_in_selection("(^[ \\\\t]*%)(.*)$", "\\\\2", "regex")\n\
253 | }\n\
254 | Comments>Bar Comment@C:::R: {\n\
255 | if ($selection_left != -1) {\n\
256 | dialog("Selection must not be rectangular")\n\
257 | return\n\
258 | }\n\
259 | start = $selection_start\n\
260 | end = $selection_end-1\n\
261 | origText = get_range($selection_start, $selection_end-1)\n\
262 | newText = "/*\\n" replace_in_string(get_range(start, end), \\\n\
263 | "^", " * ", "regex") "\\n */\\n"\n\
264 | replace_selection(newText)\n\
265 | select(start, start + length(newText))\n\
266 | }\n\
267 | Comments>Bar Uncomment@C:::R: {\n\
268 | selStart = $selection_start\n\
269 | selEnd = $selection_end\n\
270 | pos = search("/\\\\*\\\\s*\\\\n", selStart, "regex")\n\
271 | if (pos != selStart) return\n\
272 | start = $search_end\n\
273 | end = search("\\\\n\\\\s*\\\\*/\\\\s*\\\\n?", selEnd, "regex", "backward")\n\
274 | if (end == -1 || $search_end < selEnd) return\n\
275 | newText = get_range(start, end)\n\
276 | newText = replace_in_string(newText,"^ *\\\\* ?", "", "regex", "copy")\n\
277 | if (get_range(selEnd, selEnd - 1) == "\\n") selEnd -= 1\n\
278 | replace_range(selStart, selEnd, newText)\n\
279 | select(selStart, selStart + length(newText))\n\
280 | }\n\
281 | Make C Prototypes@C@C++:::: {\n\
282 | # simplistic extraction of C function prototypes, usually good enough\n\
283 | if ($selection_start == -1) {\n\
284 | start = 0\n\
285 | end = $text_length\n\
286 | } else {\n\
287 | start = $selection_start\n\
288 | end = $selection_end\n\
289 | }\n\
290 | string = get_range(start, end)\n\
291 | # remove all C++ and C comments, then all blank lines in the extracted range\n\
292 | string = replace_in_string(string, "//.*$", "", "regex", "copy")\n\
293 | string = replace_in_string(string, "(?n/\\\\*.*?\\\\*/)", "", "regex", "copy")\n\
294 | string = replace_in_string(string, "^\\\\s*\\n", "", "regex", "copy")\n\
295 | nDefs = 0\n\
296 | searchPos = 0\n\
297 | prototypes = ""\n\
298 | staticPrototypes = ""\n\
299 | for (;;) {\n\
300 | headerStart = search_string(string, \\\n\
301 | "^[a-zA-Z]([^;#\\"'{}=>?~":\n\
372 | C:.c .h::::::".,/\\`'!|@#%^&*()-=+{}[]"":;<>?~":\n\
373 | CSS:css::Auto:None:::".,/\\`'!|@#%^&*()=+{}[]"":;<>?~":\n\
374 | Csh:.csh .cshrc .tcshrc .login .logout:"^[ \\t]*#[ \\t]*![ \\t]*/bin/t?csh"::::::\n\
375 | Fortran:.f .f77 .for:::::::\n\
376 | Java:.java:::::::\n\
377 | JavaScript:.js:::::::\n\
378 | LaTeX:.tex .sty .cls .ltx .ins .clo .fd:::::::\n\
379 | Lex:.lex:::::::\n\
380 | Lua:.lua:::::::\n\
381 | Makefile:Makefile makefile .gmk:::None:8:8::\n\
382 | Markdown:.md .markdown .mdtxt .mdtext:::::::\n\
383 | Matlab:.m .oct .sci:::::::\n\
384 | NEdit Macro:.nm .neditmacro:::::::\n\
385 | OCaml:.ml::Auto:None:8:2:".,/\\`'!|@#%^&*()-=+{}[]"":;<>?~":\n\
386 | Pascal:.pas .p .int:::::::\n\
387 | Perl:.pl .pm .p5 .PL:"^[ \\t]*#[ \\t]*!.*perl":Auto:None:::".,/\\\\`'!$@#%^&*()-=+{}[]"":;<>?~|":\n\
388 | PostScript:.ps .eps .epsf .epsi:"^%!":::::"/%(){}[]<>":\n\
389 | Python:.py:"^#!.*python":Auto:None:::"!""#$%&'()*+,-./:;<=>?@[\\\\]^`{|}~":\n\
390 | Regex:.reg .regex:"\\(\\?[:#=!iInN].+\\)":None:Continuous::::\n\
391 | SGML HTML:.sgml .sgm .html .htm:"\\<[Hh][Tt][Mm][Ll]\\>"::::::\n\
392 | SQL:.sql:::::::\n\
393 | Sh Ksh Bash:.sh .bash .ksh .profile .bashrc .bash_logout .bash_login .bash_profile:"^[ \\t]*#[ \\t]*![ \\t]*/.*bin/(bash|ksh|sh|zsh)"::::::\n\
394 | Tcl:.tcl .tk .itcl .itk::Smart:None::::\n\
395 | VHDL:.vhd .vhdl .vdl:::::::\n\
396 | Verilog:.v:::::::\n\
397 | XML:.xml .xsl .dtd:"\\<(?i\\?xml|!doctype)"::None:::"<>/=""'()+*?|":\n\
398 | X Resources:.Xresources .Xdefaults .nedit .pats nedit.rc:"^[!#].*([Aa]pp|[Xx]).*[Dd]efaults"::::::\n\
399 | Yacc:.y::::::".,/\\`'!|@#%^&*()-=+{}[]"":;<>?~":
400 | nedit.styles: Plain:#ffffff:Plain\n\
401 | Comment:#63e99a:Italic\n\
402 | Keyword:#f06191:Bold\n\
403 | Operator:#f06191:Bold\n\
404 | Bracket:#ffffff:Bold\n\
405 | Storage Type:#f06191:Bold\n\
406 | Storage Type1:#f06191:Bold\n\
407 | String:#ffe666:Plain\n\
408 | String1:#ffe666:Plain\n\
409 | String2:#ffe666:Bold\n\
410 | Preprocessor:#c573dd:Plain\n\
411 | Preprocessor1:#c573dd:Plain\n\
412 | Preprocessor2:#c573dd:Bold\n\
413 | Character Const:#ffe666:Plain\n\
414 | Numeric Const:#ffe666:Plain\n\
415 | Identifier:#61f2dc:Plain\n\
416 | Identifier1:#61f2dc:Plain\n\
417 | Identifier2:#61f2dc:Plain\n\
418 | Subroutine:#61f2dc:Plain\n\
419 | Subroutine1:#61f2dc:Plain\n\
420 | Ada Attributes:plum:Bold\n\
421 | Label:red:Italic\n\
422 | Flag:red:Bold\n\
423 | Text Comment:SteelBlue4:Italic\n\
424 | Text Key:VioletRed4:Bold\n\
425 | Text Key1:VioletRed4:Plain\n\
426 | Text Arg:RoyalBlue4:Bold\n\
427 | Text Arg1:SteelBlue4:Bold\n\
428 | Text Arg2:RoyalBlue4:Plain\n\
429 | Text Escape:gray30:Bold\n\
430 | LaTeX Math:darkGreen:Plain\n\
431 | Pointer:#660000:Bold\n\
432 | Regex:#009944:Bold\n\
433 | Warning:brown2:Italic\n\
434 | Emphasis:black:Italic\n\
435 | Strong:black:Bold\n\
436 | Header:brown:Bold
437 | nedit.smartIndentInit: C:Default\n\
438 | C++:Default\n\
439 | Python:Default\n\
440 | Matlab:Default
441 | nedit.smartIndentInitCommon: Default
442 | nedit.autoWrap: Continuous
443 | nedit.wrapMargin: 0
444 | nedit.autoIndent: Auto
445 | nedit.autoSave: False
446 | nedit.openInTab: True
447 | nedit.saveOldVersion: False
448 | nedit.showMatching: Delimiter
449 | nedit.matchSyntaxBased: True
450 | nedit.highlightSyntax: True
451 | nedit.highlightCursorLine: True
452 | nedit.indentRainbow: False
453 | nedit.indentRainbowColors: #f0f8ff;#f0fff6;#f8fff0;#fff6f0;#fef0ff;#f0f1ff
454 | nedit.ansiColorList: #2f2a68;#f06191;#63e99a;#ffe666;#61f2dc;#b043d1;#61f2dc;#eeeeec;#38337f;#f06191;#63e99a;#ffe666;#61f2dc;#c573dd;#61f2dc;#ffffff
455 | nedit.ansiColors: False
456 | nedit.backlightChars: False
457 | nedit.searchDialogs: False
458 | nedit.beepOnSearchWrap: False
459 | nedit.retainSearchDialogs: True
460 | nedit.searchWraps: True
461 | nedit.stickyCaseSenseButton: True
462 | nedit.repositionDialogs: True
463 | nedit.autoScroll: False
464 | nedit.appendLF: True
465 | nedit.sortOpenPrevMenu: True
466 | nedit.statisticsLine: False
467 | nedit.iSearchLine: False
468 | nedit.zoomStep: 1
469 | nedit.sortTabs: False
470 | nedit.tabBar: True
471 | nedit.tabBarHideOne: False
472 | nedit.toolTips: True
473 | nedit.globalTabNavigate: False
474 | nedit.lineNumbers: True
475 | nedit.pathInWindowsMenu: True
476 | nedit.warnFileMods: True
477 | nedit.warnRealFileMods: True
478 | nedit.warnExit: True
479 | nedit.searchMethod: Literal
480 | nedit.textRows: 24
481 | nedit.textCols: 80
482 | nedit.tabDistance: 4
483 | nedit.emulateTabs: 0
484 | nedit.insertTabs: True
485 | nedit.textFont: Fixed:size=10:style=SemiCondensed
486 | nedit.boldHighlightFont: Fixed:size=10:style=SemiCondensed:weight=bold
487 | nedit.italicHighlightFont: Fixed:size=10:style=SemiCondensed:slant=italic
488 | nedit.boldItalicHighlightFont: Fixed:size=10:style=SemiCondensed:weight=bold:slant=italic
489 | nedit.textFgColor: #ffffff
490 | nedit.textBgColor: #222244
491 | nedit.selectFgColor: #222244
492 | nedit.selectBgColor: #f06191
493 | nedit.hiliteFgColor: white
494 | nedit.hiliteBgColor: #61f2dc
495 | nedit.lineNoFgColor: #555588
496 | nedit.lineNoBgColor: #222244
497 | nedit.cursorFgColor: #ffffff
498 | nedit.cursorLineBgColor: #333355
499 | nedit.shell: /usr/bin/fish
500 | nedit.smartTags: True
501 | nedit.prefFileRead: True
502 | nedit.titleFormat: %d%f %*S {%c} [%s]
503 | nedit.fsbView: 1
504 | nedit.fsbShowHidden: False
505 | nedit.editorConfig: True
506 | nedit.defaultCharset: locale
507 | nedit.iconSize: small
508 |
--------------------------------------------------------------------------------
/.fvwm/config:
--------------------------------------------------------------------------------
1 | # InfoStoreAdd can be used to store variable data internal to fvwm.
2 | # The variable can then be used in the configuration as $[infostore.name].
3 | #
4 | # You can also use environment variables but for data internal to fvwm
5 | # use InfoStore variables instead.
6 | #
7 | # The following is used in various menus and also sets the terminal
8 | # that FvwmConsole uses. Change this to your terminal of choice
9 | InfoStoreAdd terminal urxvt
10 |
11 | ###########
12 | # 1: Functions
13 | #
14 | # Fvwm can use custom functions for various tasks.
15 | # The syntax for defining a function named FunctionName is:
16 | #
17 | # DestroyFunc FunctionName
18 | # AddToFunc FunctionName
19 | # + I [Action to do Immediately]
20 | # + C [Action to do on a Mouse Click]
21 | # + D [Action to do on a Mouse Double Click]
22 | # + H [Action to do on a Mouse Hold]
23 | # + M [Action to do on a Mouse Motion]
24 | ###########
25 |
26 | # Start Function
27 | #
28 | # The start function is run right after fvwm is done reading
29 | # the config file. This function run after each restart
30 | # so using Test (Init) or Test (Restart) can further control
31 | # actions that are run during the first time run (Init) or
32 | # actions that are run after a restart.
33 | DestroyFunc StartFunction
34 | AddToFunc StartFunction
35 | + I Test (Init, f $[FVWM_USERDIR]/.BGdefault) \
36 | Exec exec fvwm-root $[FVWM_USERDIR]/.BGdefault
37 | + I TestRc (NoMatch) Exec exec fvwm-root \
38 | $[FVWM_USERDIR]/images/background/bg1.png
39 | + I Module FvwmEvent EventNewDesk
40 | + I Module FvwmEvent EventSounds
41 | + I Module FvwmEvent EventDeIcon
42 | + I Test (Init) Exec exec xfce4-panel
43 | + I Test (Init) Exec exec flameshot
44 | + I Test (Init) Exec exec dunst
45 | #+ I Test (Init) Exec exec oneko
46 | #+ I Test (Init) Exec exec ascpu -iconic
47 | #+ I Test (Init) Exec exec asmem -iconic
48 | #+ I Test (Init) Exec exec asclock
49 |
50 | # Mouse Bindings Functions
51 | DestroyFunc RaiseMoveX
52 | AddToFunc RaiseMoveX
53 | + I Raise
54 | + M $0
55 | + M PlaySound windowMoveDone.mp3
56 | + D $1
57 |
58 | DestroyFunc RaiseMove
59 | AddToFunc RaiseMove
60 | + I Raise
61 | + M $0
62 |
63 | # Function: ViewManPage $0
64 | #
65 | # This function loads the man page $0 in an terminal
66 | # and is used with the help menu.
67 | DestroyFunc ViewManPage
68 | AddToFunc ViewManPage
69 | + I Exec exec $[infostore.terminal] -g 80x40 \
70 | -n "Manual Page - $0" -T "Manual Page - $0" -e man "$0"
71 |
72 | # Function: SetBG $0
73 | #
74 | # SetBG is used with the background menu to set the background
75 | # image and configure it to be loaded the next time fvwm is run.
76 | # Note, fvwm-root can't use .jpeg or resize images. Use something
77 | # like display, feh, etc.
78 | DestroyFunc SetBG
79 | AddToFunc SetBG
80 | + I Test (f $[FVWM_USERDIR]/images/background/$0) \
81 | Exec exec fvwm-root $[FVWM_USERDIR]/images/background/$0
82 | + I TestRc (Match) Exec exec ln -fs images/background/$0 \
83 | $[FVWM_USERDIR]/.BGdefault
84 | + I TestRc (Match) Break
85 | + I Test (!f $[FVWM_DATADIR]/default-config/images/background/$0) Break
86 | + I Exec exec fvwm-root $[FVWM_DATADIR]/default-config/images/background/$0
87 | + I Exec exec ln -fs $[FVWM_DATADIR]/default-config/images/background/$0 \
88 | $[FVWM_USERDIR]/.BGdefault
89 |
90 | # Function: ToggleTitle
91 | #
92 | # This function will toggle if fvwm shows the TitleBar.
93 | DestroyFunc ToggleTitle
94 | AddToFunc ToggleTitle
95 | + I ThisWindow (State 1) WindowStyle Title
96 | + I TestRc (Match) State 1 False
97 | + I TestRc (Match) Break
98 | + I WindowStyle !Title
99 | + I State 1 True
100 |
101 | #############
102 | # 2: Styles #
103 | #############
104 |
105 | CursorStyle ROOT left_ptr
106 | CursorStyle TITLE left_ptr
107 | CursorStyle DEFAULT left_ptr
108 | CursorStyle MENU left_ptr
109 |
110 | DesktopName 0 Main
111 | DesktopSize 1x1
112 | EdgeScroll 0 0
113 |
114 | # EwmhBaseStruts [left] [right] [top] [bottom]
115 | # Reserves space along the edge(s) of the Screen that will not
116 | # be covered when maximizing or placing windows.
117 | EwmhBaseStruts screen DVI-D-0 0 0 30 0
118 |
119 | # This sets the ClickTime and MoveThreshold used to determine
120 | # Double Clicks, Hold and Move for the mouse.
121 | ClickTime 250
122 | MoveThreshold 3
123 |
124 | # Sets the focus style to SloppyFocus and a mouse click
125 | # in a window will Raise it.
126 | Style * SloppyFocus, MouseFocusClickRaises, ClickToFocus
127 |
128 | # Default Font
129 | DefaultFont "xft:Helvetica:Bold:Italic:size=11:antialias=False"
130 |
131 | # Window Placement
132 | Style * MinOverlapPlacement, !UsePPosition
133 | Style * GrabFocus, GrabFocusTransient
134 |
135 | # Sets all windows to OpaqueMove (vs a wired frame) and windows will
136 | # snap to each other and the edge of the screen.
137 | #OpaqueMoveSize unlimited
138 | Style * SnapAttraction 15 SameType ScreenAll, SnapGrid
139 |
140 | # Transient Windows (such as open file windows)
141 | Style * DecorateTransient, StackTransientParent
142 | Style * !FPGrabFocusTransient, FPReleaseFocusTransient
143 |
144 | # WindowShade
145 | Style * WindowShadeScrolls, WindowShadeSteps 10
146 |
147 | # Ignore Numlock and other modifiers for bindings
148 | # See http://fvwm.org/documentation/faq/#why-do-numlock-capslock-and-scrolllock-interfere-with-clicktofocus-andor-my-mouse-bindings
149 | IgnoreModifiers L25
150 |
151 | # Decor Styles
152 | Style * BorderWidth 1, HandleWidth 7, MWMButtons, FvwmBorder, FirmBorder
153 | Style * Colorset 1, HilightColorset 2
154 | Style * BorderColorset 3, HilightBorderColorset 4
155 |
156 | # Disable Icons from appearing on desktop.
157 | # Comment this out or use Style * Icon to get the icons back.
158 | #Style * !Icon
159 |
160 | # Window Specific Styles
161 | Style ConfirmQuit !Title, PositionPlacement Center, WindowListSkip, Layer 6
162 | Style ConfirmReboot !Title, PositionPlacement Center, WindowListSkip, Layer 6
163 | Style ConfirmShutdown !Title, PositionPlacement Center, WindowListSkip, Layer 6
164 | Style FvwmIdent WindowListSkip
165 |
166 | Style "jetbrains-idea" ClickToFocus, Lenience
167 |
168 | Style "Steam*" !UsePPosition
169 | Style "Steam*" !UseUSPosition, FixedPPosition
170 | Style "Steam*" !Title
171 |
172 | #######
173 | # 3: Colorsets
174 | #
175 | # Colorsets can be used to configure the color of the various
176 | # parts of fvwm such as window decor, menus, modules, etc.
177 | #
178 | # Colorset Convention
179 | #
180 | # 0 - Default
181 | # 1 - Inactive Windows
182 | # 2 - Active Window
183 | # 3 - Inactive Windows Borders
184 | # 4 - Active Windows Borders
185 | # 5 - Menu - Inactive Item
186 | # 6 - Menu - Active Item
187 | # 7 - Menu - Grayed Item
188 | # 8 - Menu - Title
189 | # 9 - Reserved
190 | # 10+ Modules
191 | # 10 - Module Default
192 | # 11 - Module Hilight
193 | # 12 - Module ActiveButton (Mouse Hover)
194 | # 13 - FvwmPager Active Page
195 | # 14 - FvwmIconMan Iconified Button
196 | ###########
197 | Colorset 0 fg #fff, bg #003c3c, hi, sh, Plain, NoShape
198 | Colorset 1 fg #ddf, bg #559, hi, sh, Plain, NoShape
199 | Colorset 2 fg #fff, bg #337, hi #55a, sh #113, Plain, NoShape
200 | Colorset 3 fg #fff, bg #559, hi, sh, Plain, NoShape
201 | Colorset 4 fg #620031, bg #337, hi #55a, sh #113, Plain, NoShape
202 | Colorset 5 fg #fff, bg #559, hi, sh, Plain, NoShape
203 | Colorset 6 fg #224, bg #f06191, hi, sh, Plain, NoShape
204 | Colorset 7 fg grey30, bg #fff, hi, sh, Plain, NoShape
205 | Colorset 8 fg #fff, bg #337, hi, sh, Plain, NoShape
206 | Colorset 10 fg #fff, bg #224, hi #55a, sh #113, Plain, NoShape
207 | Colorset 11 fg #fff, bg #820041, hi #fff, sh #fff, Plain, NoShape
208 | Colorset 12 fg #fff, bg #ff99cd, hi, sh, Plain, NoShape
209 | Colorset 13 fg #fff, bg #ff99cd, hi, sh, Plain, NoShape
210 | Colorset 14 fg #ff99cd, bg #420021, hi #aaaaaa, sh #999, Plain, NoShape
211 | Colorset 15 fg #fff, bg #fc0, hi #fff, sh #fff, Plain, NoShape
212 |
213 | ###########
214 | # 4: Menus
215 | ###########
216 | MenuStyle * MenuColorset 5, ActiveColorset 6, GreyedColorset 7, TitleColorset 8
217 | MenuStyle * Hilight3DOff, HilightBack, HilightTitleBack, SeparatorsLong
218 | MenuStyle * TrianglesSolid, TrianglesUseFore
219 | MenuStyle * ItemFormat "%|%3.1i%5.3l%5.3>%|"
220 | MenuStyle * Font "xft:Helvetica:Bold:Italic:size=11:antialias=False"
221 |
222 | # Root Menu
223 | #
224 | # The root menu will PopUp with a click in the root
225 | # window or using alt-f1 (or menu).
226 | DestroyMenu MenuFvwmRoot
227 | AddToMenu MenuFvwmRoot "Toolchest" Title
228 | #+ "&Programs%icons/programs.png%" Popup MenuPrograms
229 | + "&Programs%images/icons/apps.png%" Popup Programs
230 | + "&XTerm%images/icons/terminal.png%" Exec exec $[infostore.terminal]
231 | + "" Nop
232 | Piperead "hostnamectl | awk '{if (NR == 10) print }' | grep -q \"ThinkPad\"; if [ $? = 0 ]; then echo '+ \"ThinkPad Options%images/icons/tpad.png%\" Popup ThinkPadOptions'; echo '+ \"\" Nop'; fi"
233 | + "Fvwm&Console%images/icons/terminal.png%" Module FvwmConsole -terminal $[infostore.terminal]
234 | + "&Wallpapers%images/icons/wallpaper.png%" Popup BGMenu
235 | + "Fvwm &help%images/icons/help.png%" Popup MenuFvwmManPages
236 | + "" Nop
237 | + "Re&fresh Fvwm%images/icons/refresh.png%" Refresh
238 | + "&Restart Fvwm%images/icons/restart.png%" Restart
239 | + "&Leave Session%images/icons/quit.png%" Popup SessionMenu
240 |
241 | # Generate XDGMenu
242 | PipeRead "fvwm-menu-desktop -e --enable-mini-icons --size 16 -t Programs"
243 |
244 | DestroyMenu SessionMenu
245 | AddToMenu SessionMenu "Leave Session" Title
246 | + "Lock Screen%images/icons/quit.png%" Exec exec ~/.fvwm/onLock.sh
247 | + "Suspend%images/icons/quit.png%" Exec exec ~/.fvwm/onSuspend.sh
248 | + "Exit X%images/icons/quit.png%" Module FvwmScript FvwmScript-ConfirmQuit
249 | + "Reboot%images/icons/quit.png%" Module FvwmScript FvwmScript-ConfirmReboot
250 | + "Power Off%images/icons/quit.png%" Module FvwmScript FvwmScript-ConfirmShutdown
251 |
252 | # Background Menu
253 | #
254 | # Backgrounds are located in ~/.fvwm/images/background/
255 | # Menu icons are located in ~/.fvwm/images/bgicons/
256 | DestroyMenu BGMenu
257 | AddToMenu BGMenu "Wallpapers" Title
258 | + "IRIX Wallpapers%images/background/ess-gee-eye.png%" Popup BGMenu-IRIX
259 | + "Abstrakt%images/background/abstrakt-icon.png%" SetBG abstrakt.png
260 | + "Metal%images/background/bg1.png%" SetBG bg1.png
261 | + "Metal Dark%images/background/bg1-dark.png%" SetBG bg1-dark.png
262 | + "Metal Darker%images/background/bg1-darker.png%" SetBG bg1-darker.png
263 | + "Sweet Silicon%images/background/bg-sgi-icon.png%" SetBG bg-sgi.png
264 | + "Sweet Silicon Dark%images/background/bg-sgi-dark-icon.png%" SetBG bg-sgi-dark.png
265 | + "Traitor!%images/background/bg-sun.png%" SetBG bg-sun.png
266 | + "Traitor! Dark%images/background/bg-sun-dark.png%" SetBG bg-sun-dark.png
267 | + "Traitor!x2%images/background/bg-sun2x.png%" SetBG bg-sun2x.png
268 | + "Traitor!x2 Dark%images/background/bg-sun2x-dark.png%" SetBG bg-sun2x-dark.png
269 | + "Iso%images/background/iso.png%" SetBG iso.png
270 |
271 | DestroyMenu BGMenu-IRIX
272 | AddToMenu BGMenu-IRIX "IRIX" Title
273 | + "Brain" SetBG irix/Brain.png
274 | + "Bulge" SetBG irix/Bulge.png
275 | + "Burlap" SetBG irix/Burlap.png
276 | + "Cirrostratus" SetBG irix/Cirrostratus.png
277 | + "Cracked" SetBG irix/Cracked.png
278 | + "Crumpled" SetBG irix/Crumpled.png
279 | + "Dither 1x1" SetBG irix/Dither1x1.png
280 | + "Dither 2x2" SetBG irix/Dither2x2.png
281 | + "Escher Knot" SetBG irix/EscherKnot.png
282 | + "Fabric" SetBG irix/Fabric.png
283 | + "Granite" SetBG irix/Granite.png
284 | + "Linen" SetBG irix/Linen.png
285 | + "Luna Pearl" SetBG irix/LunaPearl.png
286 | + "Moorish" SetBG irix/Moorish.png
287 | + "Nebula" SetBG irix/Nebula.png
288 | + "Rhodo" SetBG irix/Rhodo.png
289 | + "Rockface" SetBG irix/Rockface.png
290 | + "Scales" SetBG irix/Scales.png
291 | + "Scallop" SetBG irix/Scallop.png
292 | + "Scatter Blue" SetBG irix/ScatterBlue.png
293 | + "Scatter Classic" SetBG irix/ScatterClassic.png
294 | + "Scatter Green" SetBG irix/ScatterGreen.png
295 | + "Scatter Purple" SetBG irix/ScatterPurple.png
296 | + "Scatter" SetBG irix/Scatter.png
297 | + "Scribble" SetBG irix/Scribble.png
298 | + "Solid" SetBG irix/Solid.png
299 | + "Sprinkle" SetBG irix/Sprinkle.png
300 | + "Swirl" SetBG irix/Swirl.png
301 | + "Tide Pool" SetBG irix/TidePool.png
302 | + "Verde Marble" SetBG irix/VerdeMarble.png
303 | + "Vertigo" SetBG irix/Vertigo.png
304 | + "Wicker" SetBG irix/Wicker.png
305 |
306 | # Window Operations Menus
307 | DestroyMenu MenuWindowOps
308 | AddToMenu MenuWindowOps
309 | + "Move" Move
310 | + "Resize" Resize
311 | + "Iconify" Iconify
312 | + "Maximize" Maximize
313 | + "Shade" WindowShade
314 | + "Move to..." Popup MenuSendTo
315 | + "" Nop
316 | + "Close" Close
317 | + "More..." Menu MenuWindowOpsLong This 0 0
318 |
319 | DestroyMenu MenuWindowOpsLong
320 | AddToMenu MenuWindowOpsLong
321 | + "Move" Move
322 | + "Resize" Resize
323 | + "(De)Iconify" Iconify
324 | + "(Un)Maximize" Maximize
325 | + "(Un)Shade" WindowShade
326 | + "Move to..." Popup MenuSendTo
327 | + "" Nop
328 | + "Close" Close
329 | + "Destroy" Destroy
330 | + "" Nop
331 | + "Raise" Raise
332 | + "Lower" Lower
333 | + "" Nop
334 | + "StaysOnTop" Pick (CirculateHit) Layer 0 6
335 | + "StaysPut" Pick (CirculateHit) Layer 0 4
336 | + "StaysOnBottom" Pick (CirculateHit) Layer 0 2
337 | + "" Nop
338 | + "Identify" Module FvwmIdent
339 |
340 | DestroyMenu MenuIconOps
341 | AddToMenu MenuIconOps
342 | + "(De)Iconify" Iconify
343 | + "(Un)Maximize" Maximize
344 | + "(Un)Shade" WindowShade
345 | + "Move to..." Popup MenuSendTo
346 | + "" Nop
347 | + "Close" Close
348 | + "Destroy" Destroy
349 | + "" Nop
350 | + "Raise" Raise
351 | + "Lower" Lower
352 | + "" Nop
353 | + "StaysOnTop" Pick (CirculateHit) Layer 0 6
354 | + "StaysPut" Pick (CirculateHit) Layer 0 4
355 | + "StaysOnBottom" Pick (CirculateHit) Layer 0 2
356 | + "" Nop
357 | + "Identify" Module FvwmIdent
358 |
359 | DestroyMenu MenuSendTo
360 | AddToMenu MenuSendTo
361 | + "Main" MoveToDesk 0 0
362 | + "Second" MoveToDesk 0 1
363 |
364 | # Fvwm Man Pages (Help) Menu
365 | DestroyMenu MenuFvwmManPages
366 | AddToMenu MenuFvwmManPages "Help" Title
367 | + "fvwm" ViewManPage fvwm
368 | + "FvwmAnimate" ViewManPage FvwmAnimate
369 | + "FvwmAuto" ViewManPage FvwmAuto
370 | + "FvwmBacker" ViewManPage FvwmBacker
371 | + "FvwmBanner" ViewManPage FvwmBanner
372 | + "FvwmButtons" ViewManPage FvwmButtons
373 | + "FvwmCommand" ViewManPage FvwmCommand
374 | + "FvwmConsole" ViewManPage FvwmConsole
375 | + "FvwmEvent" ViewManPage FvwmEvent
376 | + "FvwmForm" ViewManPage FvwmForm
377 | + "FvwmIconMan" ViewManPage FvwmIconMan
378 | + "FvwmIdent" ViewManPage FvwmIdent
379 | + "FvwmPager" ViewManPage FvwmPager
380 | + "FvwmPerl" ViewManPage FvwmPerl
381 | + "FvwmProxy" ViewManPage FvwmProxy
382 | + "FvwmRearrange" ViewManPage FvwmRearrange
383 | + "FvwmScript" ViewManPage FvwmScript
384 | + "" Nop
385 | + "fvwm-root" ViewManPage fvwm-root
386 | + "fvwm-menu-desktop" ViewManPage fvwm-menu-desktop
387 | + "fvwm-menu-directory" ViewManPage fvwm-menu-directory
388 | + "fvwm-menu-headlines" ViewManPage fvwm-menu-headlines
389 | + "fvwm-menu-xlock" ViewManPage fvwm-menu-xlock
390 | + "fvwm-config" ViewManPage fvwm-config
391 |
392 | DestroyMenu ThinkPadOptions
393 | AddToMenu ThinkPadOptions "ThinkPad Options" Title
394 | + "Middle Mouse%images/icons/tpad-mmb.png%" Popup ThinkPadMiddleMouse
395 | + "Power Light%images/icons/light.png%" Popup ThinkPadPowerLight
396 | + "Lid Light%images/icons/tpad-lid.png%" Popup ThinkPadLidLight
397 |
398 | DestroyMenu ThinkPadMiddleMouse
399 | AddToMenu ThinkPadMiddleMouse "Middle Mouse" Title
400 | + "Middle Mouse: Scroll%images/icons/tpad-mmb-scroll.png%" Exec exec xinput set-prop "TPPS/2 Elan TrackPoint" "libinput Scroll Method Enabled" 0, 0, 1
401 | + "Middle Mouse: Click%images/icons/tpad-mmb.png%" Exec exec xinput set-prop "TPPS/2 Elan TrackPoint" "libinput Scroll Method Enabled" 0, 0, 0
402 |
403 | DestroyMenu ThinkPadPowerLight
404 | AddToMenu ThinkPadPowerLight "Power Light" Title
405 | + "Power Light: On%images/icons/light.png%" Exec exec light -s sysfs/leds/tpacpi::power -S 1
406 | + "Power Light: Off%images/icons/light-off.png%" Exec exec light -s sysfs/leds/tpacpi::power -S 0
407 |
408 | DestroyMenu ThinkPadLidLight
409 | AddToMenu ThinkPadLidLight "Lid Light" Title
410 | + "Lid Light: On%images/icons/tpad-lid.png%" Exec exec light -s sysfs/leds/tpacpi::lid_logo_dot -S 1
411 | + "Lid Light: Off%images/icons/tpad-lid-off.png%" Exec exec light -s sysfs/leds/tpacpi::lid_logo_dot -S 0
412 |
413 | #######
414 | # 5: Mouse and Key bindings
415 | #
416 | # Contexts:
417 | # R = Root Window rrrrrrrrrrrrrrrrrrrrrr
418 | # W = Application Window rIrrrr<---------^rrrrr
419 | # F = Frame Corners rrrrrr[13TTTT642]rrrrr
420 | # S = Frame Sides rIrrrr[wwwwwwwww]rrrrr
421 | # T = Title Bar rrrrrr[wwwwwwwww]rrrrr
422 | # I = Icon rIrrrrv_________>rrrrr
423 | # rrrrrrrrrrrrrrrrrrrrrr
424 | #
425 | # Numbers are buttons: [1 3 5 7 9 TTTTT 0 8 6 4 2]
426 | #
427 | # Modifiers: (A)ny, (C)ontrol, (S)hift, (M)eta, (N)othing
428 | #
429 | # Format: Key
430 | # Mouse
431 | ####################
432 |
433 | # Alt-F1 or Menu to load the root menu and Alt-Tab for a WindowList.
434 | # Ctrl-F1/F2/F3/F4 will switch between the Virtual Desktops.
435 | # Super_R (windows key) will launch a terminal.
436 | #
437 | # Silent supresses any errors (such as keyboards with no Menu key).
438 | Silent Key F1 A M Menu MenuFvwmRoot
439 | Silent Key Menu A A Menu MenuFvwmRoot
440 | #Silent Key Tab A M WindowList Root c c NoDeskSort, SelectOnRelease Meta_L
441 | # Alt-tab more in-line with windows/macos
442 | Silent Key Tab A M WindowList Root c c CurrentDesk, NoGeometry, CurrentAtEnd
443 | Silent Key Super_R A A Exec exec $[infostore.terminal]
444 | Silent Key Print A A Exec flameshot gui
445 | # laptop
446 | Silent Key F1 A 4 Menu MenuFvwmRoot
447 | Silent Key XF86MonBrightnessDown A A Exec exec light -U 2
448 | Silent Key XF86MonBrightnessUp A A Exec exec light -A 2
449 | Silent Key XF86Favorites A A Exec exec $[infostore.terminal]
450 | Silent Key l A 4 Exec exec ~/.fvwm/onLock.sh
451 | Silent Key 1 A 4 GotoDesk 0 0
452 | Silent Key 2 A 4 GotoDesk 0 1
453 |
454 | # Window Buttons: [1 3 5 7 9 TTTTT 0 8 6 4 2]
455 | # 1 - Open the WindowOps menu.
456 | # 2 - Close on single click, Destory on double click.
457 | # 4 - Maximize (right/middle button will only maximize vertical/horizontal)
458 | # 6 - Iconify (minimize)
459 | Mouse 1 2 A Menu MenuWindowOps Delete
460 | Mouse 1 1 A Delete
461 | Mouse 1 3 A Maximize 100 100
462 | Mouse 2 3 A Maximize 0 100
463 | Mouse 3 3 A Maximize 100 0
464 | Mouse 1 5 A Thumbnail
465 |
466 | # TitleBar: Click to Raise, Move, Double Click to Maximize
467 | # Mouse Wheel Up/Down to WindowShade On/Off
468 | # Borders: Click to raise, Move to Resize
469 | # Root Window: Left Click - Main Menu
470 | # Right Click - WindowOps Menu
471 | # Middle Click - Window List Menu
472 | # Right click TitleBar/Borders for WindowOps Menu
473 | Mouse 1 T A RaiseMoveX Move Maximize
474 | Mouse 1 FS A RaiseMove Resize
475 | Mouse 3 T A WindowShade
476 | Mouse 1 R A Menu MenuFvwmRoot
477 | Mouse 3 R A WindowList
478 | Mouse 2 R A Menu MenuWindowOpsLong
479 | Mouse 1 I A RaiseMoveX Move "Iconify off"
480 | Mouse 2 T A Menu MenuWindowOps
481 | Mouse 3 I A Menu MenuIconOps
482 |
483 | #######
484 | # 6: Window Decor
485 | #
486 | # Buttons Locations: [1 3 5 7 9 TTTTT 0 8 6 4 2]
487 | #
488 | # 1 - Close
489 | # 2 - WindowOps Menu
490 | # 2 - Maximize
491 | # 5 - Minimize
492 | ###########
493 | TitleStyle LeftJustified Height 24 -- Raised
494 | ButtonStyle All -- Raised
495 |
496 | ButtonStyle 2 Active Pixmap images/buttons/menu.png
497 | ButtonStyle 1 Active Colorset 15
498 | AddButtonStyle 1 Active Pixmap images/buttons/close-b.png
499 | ButtonStyle 3 Active Pixmap images/buttons/max.png
500 | ButtonStyle 3 ToggledActiveUp Pixmap images/buttons/res.png
501 | ButtonStyle 5 Active Pixmap images/buttons/min.png
502 |
503 | ButtonStyle 2 Inactive Pixmap images/buttons/menu.png
504 | ButtonStyle 1 Inactive Pixmap images/buttons/close.png
505 | ButtonStyle 3 Inactive Pixmap images/buttons/max.png
506 | ButtonStyle 3 ToggledInactiveUp Pixmap images/buttons/res.png
507 | ButtonStyle 5 Inactive Pixmap images/buttons/min.png
508 |
509 | ButtonStyle All - Clear
510 | ButtonStyle 2 - MwmDecorMenu
511 | ButtonStyle 3 - MwmDecorMax
512 | ButtonStyle 5 - MwmDecorMin
513 |
514 | ############
515 | # 7: Modules
516 | #############
517 |
518 | # FvwmIdent
519 | #
520 | # FvwmIdent is a module that can be used to get the various info about
521 | # a window. One use is getting the class/resource/name of a window.
522 | DestroyModuleConfig FvwmIdent:*
523 | *FvwmIdent: Colorset 10
524 | *FvwmIdent: Font "xft:Fixed:size=10:antialias=False"
525 |
526 | # FvwmScript
527 | #
528 | # FvwmScript is a module that allows one to write custom desktop
529 | # widgets and various other tools. This config uses two FvwmScripts.
530 | # - DateTime - uses the output of "date" to display the date/time
531 | # on the RightPanel.
532 | # - Quit - This is a popup that asks for quit confirmation before
533 | # quitting fvwm.
534 | DestroyModuleConfig FvwmScript:*
535 | *FvwmScript: DefaultColorset 10
536 |
537 | # FvwmEvent
538 | #
539 | # FvwmEvent is a module that can run an action or function
540 | # on specific events. This instance changes which desk number
541 | # is highlighted when the desk is changed.
542 | DestroyModuleConfig EventNewDesk:*
543 | *EventNewDesk: PassID
544 | *EventNewDesk: new_desk ChangeDesk
545 |
546 | DestroyModuleConfig EventSounds:*
547 | *EventSounds: Cmd PlaySound
548 | *EventSounds: deiconify windowOpen.mp3
549 | #*EventSounds: iconify windowClose.mp3 -- iconify sound is played through the Thumbnail function
550 | *EventSounds: add_window windowOpen.mp3
551 | *EventSounds: destroy_window windowClose.mp3
552 | *EventSounds: dewindowshade windowshadeOpen.mp3
553 | *EventSounds: windowshade windowshadeClose.mp3
554 |
555 | DestroyModuleConfig EventDeIcon: *
556 | *EventDeIcon: deiconify DeThumbnail
557 |
558 | DestroyFunc PlaySound
559 | AddToFunc PlaySound
560 | + I Exec exec mpg123 ~/.fvwm/sounds/$0
561 |
562 | # FvwmForm
563 | #
564 | # FvwmForm is a module that can be used to build a GUI
565 | # form. Used with fvwm-menu-desktop-config.fpl.
566 | # This sets the default colorsets.
567 | *FvwmFormDefault: Colorset 10
568 | *FvwmFormDefault: ItemColorset 13
569 |
570 | Style xfce4-panel HandleWidth 0
571 |
572 | DestroyFunc TileFull
573 | AddToFunc TileFull
574 | + I ThisWindow (!Shaded, !Iconic) Maximize 100 100
575 | + I ThisWindow (Maximized, !Shaded, !Iconic) Move +0 +0
576 |
577 | DestroyFunc TileLeft
578 | AddToFunc TileLeft
579 | + I ThisWindow (!Shaded, !Iconic) Maximize 50 100
580 | + I ThisWindow (Maximized, !Shaded, !Iconic) Move +0 +0
581 | DestroyFunc TileRight
582 | AddToFunc TileRight
583 | + I ThisWindow (!Shaded, !Iconic) Maximize 50 100
584 | + I ThisWindow (Maximized, !Shaded, !Iconic) Move -0 +0
585 | DestroyFunc TileTop
586 | AddToFunc TileTop
587 | + I ThisWindow (!Shaded, !Iconic) Maximize 100 50
588 | + I ThisWindow (Maximized, !Shaded, !Iconic) Move +0 +0
589 | DestroyFunc TileBottom
590 | AddToFunc TileBottom
591 | + I ThisWindow (!Shaded, !Iconic) Maximize 100 50
592 | + I ThisWindow (Maximized, !Shaded, !Iconic) Move +0 -0
593 | DestroyFunc TileTopLeft
594 | AddToFunc TileTopLeft
595 | + I ThisWindow (!Shaded, !Iconic) Maximize 50 50
596 | + I ThisWindow (Maximized, !Shaded, !Iconic) Move +0 +0
597 | DestroyFunc TileTopRight
598 | AddToFunc TileTopRight
599 | + I ThisWindow (!Shaded, !Iconic) Maximize 50 50
600 | + I ThisWindow (Maximized, !Shaded, !Iconic) Move -0 +0
601 | DestroyFunc TileBottomLeft
602 | AddToFunc TileBottomLeft
603 | + I ThisWindow (!Shaded, !Iconic) Maximize 50 50
604 | + I ThisWindow (Maximized, !Shaded, !Iconic) Move +0 -0
605 | DestroyFunc TileBottomRight
606 | AddToFunc TileBottomRight
607 | + I ThisWindow (!Shaded, !Iconic) Maximize 50 50
608 | + I ThisWindow (Maximized, !Shaded, !Iconic) Move -0 -0
609 |
610 | Key KP_Left A 4 TileLeft
611 | Key KP_Right A 4 TileRight
612 | Key KP_Up A 4 TileTop
613 | Key KP_Down A 4 TileBottom
614 | Key KP_Home A 4 TileTopLeft
615 | Key KP_Prior A 4 TileTopRight
616 | Key KP_End A 4 TileBottomLeft
617 | Key KP_Next A 4 TileBottomRight
618 | Key KP_Begin A 4 TileFull
619 |
620 | Key Left A 4 TileLeft
621 | Key Right A 4 TileRight
622 | Key Up A 4 TileFull
623 | Key Down A 4 TileTopLeft
624 | Key Space A 4 Exec exec rofi -show drun
625 |
626 | DestroyFunc Thumbnail
627 | AddToFunc Thumbnail
628 | #+ I Raise
629 | + I SetEnv Icon-$[w.id] $[w.iconfile]
630 | + I ThisWindow (!Shaded Iconifiable !Iconic) PipeRead \
631 | "xwd -silent -id $[w.id] | convert -scale 180x180 \
632 | -mattecolor black -quality 0 xwd:- png:$[HOME]/.fvwm/icon.tmp.$[w.id].png \
633 | && echo Nop"
634 | #+ I ThisWindow (!Shaded Iconifiable !Iconic) PipeRead \
635 | # "xwd -silent -id $[w.id] | convert -scale $$(($[w.width]/6)) \
636 | # -mattecolor black -quality 0 xwd:- png:$[HOME]/.fvwm/icon.tmp.$[w.id].png \
637 | # && echo Nop"
638 | #+ I TestRc (Match) Test (f $[fvwm_icon]/$[w.iconfile], f $[HOME]/.fvwm/icon.tmp.$[w.id].png) \
639 | # PipeRead "composite -geometry +2+4 \
640 | # $[fvwm_icon]/$[w.iconfile] $[HOME]/.fvwm/icon.tmp.$[w.id].png \
641 | # $[HOME]/.fvwm/icon.tmp.$[w.id].png && \
642 | # echo WindowStyle IconOverride, Icon $[fvwm_tmp]/icon.tmp.$[w.id].png || echo Nop"
643 | + I PlaySound windowClose.mp3
644 | + I Iconify
645 | + I WindowStyle IconOverride, Icon $[HOME]/.fvwm/icon.tmp.$[w.id].png
646 |
647 | DestroyFunc DeThumbnail
648 | AddToFunc DeThumbnail
649 | + I PipeRead "echo WindowStyle Icon \\$\\[Icon-$[w.id]\\]"
650 | + I UnsetEnv Icon-$[w.id]
651 | + I Exec rm -f $[HOME]/.fvwm/icon.tmp.$[w.id].png
652 |
653 | # leave cursor alone when alt-tabbing (thx https://www.shuangrimu.com/posts/fvwm-and-alt-tab.html)
654 | DestroyFunc WindowListFunc
655 | AddToFunc WindowListFunc
656 | + I Iconify off
657 | + I FlipFocus
658 | + I Raise
659 |
--------------------------------------------------------------------------------