mirror of
https://gitlab.com/linuxstuff/dotfiles.git
synced 2026-06-19 04:06:00 +02:00
Compare commits
210 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7bb0d0378f | |||
| 21a73448a7 | |||
| fc19c144e2 | |||
| 251bc41607 | |||
| d8f193fd6d | |||
| ddb0ee1736 | |||
| 63de7dd7b5 | |||
| 12376b954c | |||
| e890af4c08 | |||
| 7766d291b0 | |||
| 0ae2fa07b9 | |||
| 462fd80e64 | |||
| 3cba733313 | |||
| e357b781d9 | |||
| 9162d5b287 | |||
| f2af25be34 | |||
| aff46a564f | |||
| 070d7cfc55 | |||
| 4a83a2460a | |||
| 5a16c1185b | |||
| 036745ee8f | |||
| 1101e409aa | |||
| e098cd99b4 | |||
| 37f0b2d1b3 | |||
| b544fc602d | |||
| a543e4b642 | |||
| bdf4d75719 | |||
| 499ac07284 | |||
| ed57b8b7fc | |||
| 4ea3b6335b | |||
| d18294cacb | |||
| de6e9583f3 | |||
| 8576130770 | |||
| 00cfd64a2e | |||
| 8477589b4e | |||
| 6f76db390c | |||
| 2acb65e6f8 | |||
| 7230884f3d | |||
| 1cd80c42cc | |||
| 43507d4808 | |||
| e6fef2f6d4 | |||
| 68cd1920a2 | |||
| 81671e1ed3 | |||
| 7e56ab915c | |||
| 77ecc59805 | |||
| 7ff5367a94 | |||
| 5252de796c | |||
| 9409cf977e | |||
| cd92e989a3 | |||
| 3dc070124a | |||
| 31d94b3c7f | |||
| 879b3f4f7e | |||
| bbd6de2200 | |||
| 373b7987d5 | |||
| bcc3952d6d | |||
| d82ef3129e | |||
| 07809667b9 | |||
| 1fcf3ceb94 | |||
| 3d822d9369 | |||
| c3ae4d8dff | |||
| b24012a199 | |||
| 40aa93366a | |||
| 9faf2a3b83 | |||
| 3bab00d310 | |||
| fdb7933c28 | |||
| 136f3082aa | |||
| a0e764d202 | |||
| d8709979c5 | |||
| f6c0f4fa77 | |||
| 816983c165 | |||
| 54ba6b47ac | |||
| 34cbd34be9 | |||
| b38ce7d5f3 | |||
| 07e555dcbe | |||
| 2444537fb6 | |||
| d81229fa7f | |||
| 3b89d14b9c | |||
| 9f68c71d38 | |||
| 79acaea770 | |||
| 25a7944751 | |||
| d9c4705071 | |||
| 84555006aa | |||
| bada910065 | |||
| 3d73f19608 | |||
| 61d634adb6 | |||
| 89116e3d52 | |||
| 1984146a28 | |||
| d6cc395b59 | |||
| 67ddef5067 | |||
| bf457bb148 | |||
| 27c18afbc5 | |||
| 0e252fc53f | |||
| 38738ce4eb | |||
| a5e1b4eee8 | |||
| 167e855b94 | |||
| 7e2f21b27d | |||
| 7b8a0174e2 | |||
| c5cd41b3fd | |||
| dbd7925ca3 | |||
| f6e879cfa8 | |||
| cb726915cf | |||
| 3c7e4b2f9d | |||
| c13b9178f9 | |||
| 09f816c294 | |||
| 9b6b350fd8 | |||
| c05d789689 | |||
| d6fa6e467e | |||
| 7d21d6737d | |||
| f144b718f8 | |||
| dc144ce896 | |||
| c334612df6 | |||
| 4ec1de9e0e | |||
| 68e6b6c893 | |||
| 9c01834b9a | |||
| 8351d2680e | |||
| 1b6b139dce | |||
| 68f42573af | |||
| c4e7e9c6cc | |||
| 219818c036 | |||
| 6781d8f91a | |||
| 8e64273aac | |||
| 595c5f7c2e | |||
| 94ea753b53 | |||
| 28b05c5b1c | |||
| e43a86735f | |||
| 47fa2dd230 | |||
| 2f9084860c | |||
| af768d5a70 | |||
| 254aeecf09 | |||
| 98776714a9 | |||
| e324144733 | |||
| c548575421 | |||
| 72bc6c46fa | |||
| 3048230ee6 | |||
| 3f87ab50e4 | |||
| 5962a0f9dd | |||
| ff94deff38 | |||
| 2a918aae48 | |||
| 11fc2673a4 | |||
| d3238cc969 | |||
| 7c476070b7 | |||
| 20b15692e6 | |||
| c9c28bc39f | |||
| 3724f614e5 | |||
| 26447f9a55 | |||
| b8af442d32 | |||
| b00eeb9abf | |||
| f722e56a74 | |||
| ef70f0cdc5 | |||
| 77b1d30f85 | |||
| 910814a05e | |||
| bcc84be252 | |||
| 00eb5d5528 | |||
| d8e49fdf7d | |||
| 973ac69ed7 | |||
| 27e4cf1b12 | |||
| 7b4beb89d0 | |||
| 62ccfaf995 | |||
| fbf5a7894a | |||
| a6bbf1c6a1 | |||
| bf04949541 | |||
| b27b47b68e | |||
| b6f5551984 | |||
| b309e9c907 | |||
| 3d5c02b2f8 | |||
| 9798a34fe8 | |||
| d796223cc9 | |||
| f961f3766f | |||
| d10a7eb1cc | |||
| df3bd85acc | |||
| 0b079f043d | |||
| adc6d4d03f | |||
| ce27bb13a3 | |||
| 269f203073 | |||
| ecb5319a29 | |||
| a9be83eedc | |||
| d35069480f | |||
| 1a61da086f | |||
| 4a6a2c202d | |||
| 24a7ff6d77 | |||
| 71fcfc9404 | |||
| 58ac4f54d9 | |||
| 28e5abf32b | |||
| fdfdb2db4a | |||
| 30dcbab90d | |||
| ffea56940c | |||
| 2fe7befc1e | |||
| f47d11508e | |||
| 0676852bff | |||
| c8e9684e0e | |||
| f7fc6cd3b7 | |||
| 52c9645ab1 | |||
| e5a1c558f4 | |||
| 36865c82cd | |||
| d4d5fc8312 | |||
| ad8203529c | |||
| 58d535f013 | |||
| 9b41ee15c0 | |||
| f1b3826374 | |||
| 494f9f5776 | |||
| e2592c0c53 | |||
| 8b49bffca6 | |||
| 80a58d4669 | |||
| 5a5286b38c | |||
| eba6aa5a76 | |||
| adcbca2d37 | |||
| dc1a30eab4 | |||
| 3d40be8e61 | |||
| 6780bf167c | |||
| bc93e7217e |
Regular → Executable
+1
@@ -3,3 +3,4 @@ keycode 39 = s S ssharp
|
||||
keycode 38 = a A adiaeresis Adiaeresis
|
||||
keycode 30 = u U udiaeresis Udiaeresis
|
||||
keycode 32 = o O odiaeresis Odiaeresis
|
||||
keycode 26 = e E EuroSign
|
||||
Regular → Executable
-95
@@ -1,95 +0,0 @@
|
||||
Xft.antialias: true
|
||||
Xft.hinting: true
|
||||
Xft.rgba: rgb
|
||||
Xft.hintstyle: hintfull
|
||||
Xft.dpi: 120
|
||||
Xft.autohint: true
|
||||
Xft.lcdfilter: lcddefault
|
||||
|
||||
! Remove me
|
||||
!XTerm*background: #000000
|
||||
!XTerm*foreground: #fafafa
|
||||
!XTerm*pointerColor: #1ABB9B
|
||||
!XTerm*faceName: Fixed
|
||||
!XTerm*faceSize: 11
|
||||
!XTerm*reverseVideo: on
|
||||
!XTerm*selectToClipboard: true
|
||||
|
||||
*fading: 8
|
||||
*fadeColor: black
|
||||
*pointerColorBackground: #2B2C2B
|
||||
*pointerColorForeground: #16A085
|
||||
|
||||
! Thinkpad Red
|
||||
|
||||
! special
|
||||
*.foreground: #ffffff
|
||||
*.background: #171717
|
||||
*.cursorColor: #ffffff
|
||||
|
||||
! black
|
||||
*.color0: #000000
|
||||
*.color8: #090909
|
||||
|
||||
! red
|
||||
*.color1: #cc2929
|
||||
*.color9: #e60012
|
||||
|
||||
! green
|
||||
*.color2: #cc2929
|
||||
*.color10: #e60012
|
||||
|
||||
! yellow
|
||||
*.color3: #cc2929
|
||||
*.color11: #e60012
|
||||
|
||||
! blue
|
||||
*.color4: #cc2929
|
||||
*.color12: #e60012
|
||||
|
||||
! magenta
|
||||
*.color5: #cc2929
|
||||
*.color13: #e60012
|
||||
|
||||
! cyan
|
||||
*.color6: #cc2929
|
||||
*.color14: #e60012
|
||||
|
||||
! white
|
||||
*.color7: #777777
|
||||
*.color15: #707070
|
||||
|
||||
Xcursor.theme: xcursor-breeze-snow
|
||||
Xcursor.size: 0
|
||||
|
||||
! for 'fake' transparency (without Compton) use the following three lines
|
||||
! URxvt*inheritPixmap: true
|
||||
! URxvt*transparent: true
|
||||
! URxvt*shading: 125
|
||||
|
||||
URxvt*foreground: grey
|
||||
|
||||
URxvt*depth: 32
|
||||
URxvt*background: [90]#171717
|
||||
URxvt*scrollBar: false
|
||||
URxvt*mouseWheelScrollPage: false
|
||||
URxvt*cursorBlink: false
|
||||
URxvt*saveLines: 5000
|
||||
|
||||
! Normal copy-paste keybindings without perls
|
||||
URxvt.iso14755: false
|
||||
URxvt.keysym.Shift-Control-V: eval:paste_clipboard
|
||||
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard
|
||||
!Xterm escape codes, word by word movement
|
||||
URxvt.keysym.Control-Left: \033[1;5D
|
||||
URxvt.keysym.Shift-Control-Left: \033[1;6D
|
||||
URxvt.keysym.Control-Right: \033[1;5C
|
||||
URxvt.keysym.Shift-Control-Right: \033[1;6C
|
||||
URxvt.keysym.Control-Up: \033[1;5A
|
||||
URxvt.keysym.Shift-Control-Up: \033[1;6A
|
||||
URxvt.keysym.Control-Down: \033[1;5B
|
||||
URxvt.keysym.Shift-Control-Down: \033[1;6B
|
||||
|
||||
! Find Font with cmd: fc-list -v | grep "Roboto"
|
||||
URxvt*font: xft:Hack Nerd Font Mono:antialias=true
|
||||
URxvt*boldFont: xft:Hack Nerd Font Mono:style=bold:antialias=true
|
||||
@@ -0,0 +1,119 @@
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! Colors
|
||||
!
|
||||
*.background: #2e3440
|
||||
*.foreground: #eceff4
|
||||
!
|
||||
!! Terminal Colors
|
||||
!
|
||||
*.cursorColor: #eceff4
|
||||
!
|
||||
! Black
|
||||
*.color0: #3b4252
|
||||
*.color8: #3b4252
|
||||
!
|
||||
! Red
|
||||
*.color1: #bf616a
|
||||
*.color9: #bf616a
|
||||
!
|
||||
! Green
|
||||
*.color2: #a3be8c
|
||||
*.color10: #a3be8c
|
||||
!
|
||||
! Yellow
|
||||
*.color3: #ebcb8b
|
||||
*.color11: #ebcb8b
|
||||
!
|
||||
! Blue
|
||||
*.color4: #81a1c1
|
||||
*.color12: #81a1c1
|
||||
!
|
||||
! Magenta
|
||||
*.color5: #b48ead
|
||||
*.color13: #b48ead
|
||||
!
|
||||
! Cyan
|
||||
*.color6: #88c0d0
|
||||
*.color14: #88c0d0
|
||||
!
|
||||
! White
|
||||
*.color7: #eceff4
|
||||
*.color15: #eceff4
|
||||
!
|
||||
!! i3 Colors
|
||||
!
|
||||
*.i3_urgent: #88c0d0
|
||||
*.i3_focused: #5e81ac
|
||||
*.i3_unfocused: #434c5e
|
||||
*.i3_indicator: #4c566a
|
||||
!
|
||||
!! Polybar Colors
|
||||
!
|
||||
*.highlight: #81a1c1
|
||||
!
|
||||
!! Rofi Colors
|
||||
!
|
||||
*.rofi_border: #434c5e
|
||||
*.rofi_fgdim: #d8dee9
|
||||
*.rofi_selected: #4c566a
|
||||
!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! XFT
|
||||
!
|
||||
Xft.dpi: 96
|
||||
Xft.antialias: true
|
||||
Xft.hinting: true
|
||||
Xft.rgba: rgb
|
||||
Xft.hintstyle: hintfull
|
||||
Xft.autohint: true
|
||||
Xft.lcdfilter: lcddefault
|
||||
!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! URxvt
|
||||
!
|
||||
URxvt*foreground: grey
|
||||
!
|
||||
URxvt*depth: 32
|
||||
URxvt*background: [90]#171717
|
||||
URxvt*scrollBar: false
|
||||
URxvt*mouseWheelScrollPage: false
|
||||
URxvt*cursorBlink: false
|
||||
URxvt*saveLines: 5000
|
||||
!
|
||||
URxvt.iso14755: false
|
||||
URxvt.keysym.Shift-Control-V: eval:paste_clipboard
|
||||
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard
|
||||
!Xterm escape codes, word by word movement
|
||||
URxvt.keysym.Control-Left: \033[1;5D
|
||||
URxvt.keysym.Shift-Control-Left: \033[1;6D
|
||||
URxvt.keysym.Control-Right: \033[1;5C
|
||||
URxvt.keysym.Shift-Control-Right: \033[1;6C
|
||||
URxvt.keysym.Control-Up: \033[1;5A
|
||||
URxvt.keysym.Shift-Control-Up: \033[1;6A
|
||||
URxvt.keysym.Control-Down: \033[1;5B
|
||||
URxvt.keysym.Shift-Control-Down: \033[1;6B
|
||||
!
|
||||
URxvt*font: xft:Hack Nerd Font Mono:antialias=true
|
||||
URxvt*boldFont: xft:Hack Nerd Font Mono:style=bold:antialias=true
|
||||
!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! Misc.
|
||||
!
|
||||
*fading: 8
|
||||
*fadeColor: black
|
||||
*pointerColorBackground: #2B2C2B
|
||||
*pointerColorForeground: #16A085
|
||||
!
|
||||
Xcursor.theme: xcursor-breeze-snow
|
||||
Xcursor.size: 0
|
||||
!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
@@ -0,0 +1,119 @@
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! Colors
|
||||
!
|
||||
*.background: #28292E
|
||||
*.foreground: #eceff4
|
||||
!
|
||||
!! Terminal Colors
|
||||
!
|
||||
*.cursorColor: #eceff4
|
||||
!
|
||||
! Black
|
||||
*.color0: #2C2E32
|
||||
*.color8: #2C2E32
|
||||
!
|
||||
! Red
|
||||
*.color1: #bf616a
|
||||
*.color9: #bf616a
|
||||
!
|
||||
! Green
|
||||
*.color2: #a3be8c
|
||||
*.color10: #a3be8c
|
||||
!
|
||||
! Yellow
|
||||
*.color3: #ebcb8b
|
||||
*.color11: #ebcb8b
|
||||
!
|
||||
! Blue
|
||||
*.color4: #81a1c1
|
||||
*.color12: #81a1c1
|
||||
!
|
||||
! Magenta
|
||||
*.color5: #b48ead
|
||||
*.color13: #b48ead
|
||||
!
|
||||
! Cyan
|
||||
*.color6: #88c0d0
|
||||
*.color14: #88c0d0
|
||||
!
|
||||
! White
|
||||
*.color7: #eceff4
|
||||
*.color15: #eceff4
|
||||
!
|
||||
!! i3 Colors
|
||||
!
|
||||
*.i3_urgent: #9A40A9
|
||||
*.i3_focused: #AC57BA
|
||||
*.i3_unfocused: #2C2E32
|
||||
*.i3_indicator: #2C2E32
|
||||
!
|
||||
!! Polybar Colors
|
||||
!
|
||||
*.highlight: #9A40A9
|
||||
!
|
||||
!! Rofi Colors
|
||||
!
|
||||
*.rofi_border: #28292E
|
||||
*.rofi_fgdim: #d8dee9
|
||||
*.rofi_selected: #424347
|
||||
!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! XFT
|
||||
!
|
||||
Xft.dpi: 120
|
||||
Xft.antialias: true
|
||||
Xft.hinting: true
|
||||
Xft.rgba: rgb
|
||||
Xft.hintstyle: hintfull
|
||||
Xft.autohint: true
|
||||
Xft.lcdfilter: lcddefault
|
||||
!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! URxvt
|
||||
!
|
||||
URxvt*foreground: grey
|
||||
!
|
||||
URxvt*depth: 32
|
||||
URxvt*background: [90]#171717
|
||||
URxvt*scrollBar: false
|
||||
URxvt*mouseWheelScrollPage: false
|
||||
URxvt*cursorBlink: false
|
||||
URxvt*saveLines: 5000
|
||||
!
|
||||
URxvt.iso14755: false
|
||||
URxvt.keysym.Shift-Control-V: eval:paste_clipboard
|
||||
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard
|
||||
!Xterm escape codes, word by word movement
|
||||
URxvt.keysym.Control-Left: \033[1;5D
|
||||
URxvt.keysym.Shift-Control-Left: \033[1;6D
|
||||
URxvt.keysym.Control-Right: \033[1;5C
|
||||
URxvt.keysym.Shift-Control-Right: \033[1;6C
|
||||
URxvt.keysym.Control-Up: \033[1;5A
|
||||
URxvt.keysym.Shift-Control-Up: \033[1;6A
|
||||
URxvt.keysym.Control-Down: \033[1;5B
|
||||
URxvt.keysym.Shift-Control-Down: \033[1;6B
|
||||
!
|
||||
URxvt*font: xft:Hack Nerd Font Mono:antialias=true
|
||||
URxvt*boldFont: xft:Hack Nerd Font Mono:style=bold:antialias=true
|
||||
!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! Misc.
|
||||
!
|
||||
*fading: 8
|
||||
*fadeColor: black
|
||||
*pointerColorBackground: #2B2C2B
|
||||
*pointerColorForeground: #16A085
|
||||
!
|
||||
Xcursor.theme: xcursor-breeze-snow
|
||||
Xcursor.size: 0
|
||||
!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
@@ -0,0 +1,489 @@
|
||||
title: Terminal
|
||||
background_opacity: 0.8
|
||||
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
|
||||
window:
|
||||
dynamic_padding: true
|
||||
padding:
|
||||
x: 30
|
||||
y: 30
|
||||
|
||||
cursor:
|
||||
hide_when_typing: true
|
||||
|
||||
font:
|
||||
normal:
|
||||
family: Hack Nerd Font
|
||||
style: Regular
|
||||
|
||||
bold:
|
||||
family: Hack Nerd Font
|
||||
style: Bold
|
||||
|
||||
italic:
|
||||
family: Hack Nerd Font
|
||||
style: Italic
|
||||
|
||||
bold_italic:
|
||||
family: Hack Nerd Font
|
||||
style: Bold Italic
|
||||
|
||||
size: 11.0
|
||||
|
||||
offset:
|
||||
x: 0
|
||||
y: -1
|
||||
|
||||
key_bindings:
|
||||
- { key: Return, mods: Control|Shift, action: SpawnNewInstance } # Spawn new instance in same directory
|
||||
|
||||
schemes:
|
||||
|
||||
afterglow: &afterglow
|
||||
primary:
|
||||
background: '0x2c2c2c'
|
||||
foreground: '0xd6d6d6'
|
||||
dim_foreground: '0xdbdbdb'
|
||||
bright_foreground: '0xd9d9d9'
|
||||
dim_background: '0x202020' # not sure
|
||||
bright_background: '0x3a3a3a' # not sure
|
||||
cursor:
|
||||
text: '0x2c2c2c'
|
||||
cursor: '0xd9d9d9'
|
||||
normal:
|
||||
black: '0x1c1c1c'
|
||||
red: '0xbc5653'
|
||||
green: '0x909d63'
|
||||
yellow: '0xebc17a'
|
||||
blue: '0x7eaac7'
|
||||
magenta: '0xaa6292'
|
||||
cyan: '0x86d3ce'
|
||||
white: '0xcacaca'
|
||||
bright:
|
||||
black: '0x636363'
|
||||
red: '0xbc5653'
|
||||
green: '0x909d63'
|
||||
yellow: '0xebc17a'
|
||||
blue: '0x7eaac7'
|
||||
magenta: '0xaa6292'
|
||||
cyan: '0x86d3ce'
|
||||
white: '0xf7f7f7'
|
||||
dim:
|
||||
black: '0x232323'
|
||||
red: '0x74423f'
|
||||
green: '0x5e6547'
|
||||
yellow: '0x8b7653'
|
||||
blue: '0x556b79'
|
||||
magenta: '0x6e4962'
|
||||
cyan: '0x5c8482'
|
||||
white: '0x828282'
|
||||
|
||||
argonaut: &argonaut
|
||||
primary:
|
||||
background: '0x292C3E'
|
||||
foreground: '0xEBEBEB'
|
||||
cursor:
|
||||
text: '0xFF261E'
|
||||
cursor: '0xFF261E'
|
||||
normal:
|
||||
black: '0x0d0d0d'
|
||||
red: '0xFF301B'
|
||||
green: '0xA0E521'
|
||||
yellow: '0xFFC620'
|
||||
blue: '0x1BA6FA'
|
||||
magenta: '0x8763B8'
|
||||
cyan: '0x21DEEF'
|
||||
white: '0xEBEBEB'
|
||||
bright:
|
||||
black: '0x6D7070'
|
||||
red: '0xFF4352'
|
||||
green: '0xB8E466'
|
||||
yellow: '0xFFD750'
|
||||
blue: '0x1BA6FA'
|
||||
magenta: '0xA578EA'
|
||||
cyan: '0x73FBF1'
|
||||
white: '0xFEFEF8'
|
||||
|
||||
ayu_dark: &ayu_dark
|
||||
primary:
|
||||
background: '0x0A0E14'
|
||||
foreground: '0xB3B1AD'
|
||||
normal:
|
||||
black: '0x01060E'
|
||||
red: '0xEA6C73'
|
||||
green: '0x91B362'
|
||||
yellow: '0xF9AF4F'
|
||||
blue: '0x53BDFA'
|
||||
magenta: '0xFAE994'
|
||||
cyan: '0x90E1C6'
|
||||
white: '0xC7C7C7'
|
||||
bright:
|
||||
black: '0x686868'
|
||||
red: '0xF07178'
|
||||
green: '0xC2D94C'
|
||||
yellow: '0xFFB454'
|
||||
blue: '0x59C2FF'
|
||||
magenta: '0xFFEE99'
|
||||
cyan: '0x95E6CB'
|
||||
white: '0xFFFFFF'
|
||||
|
||||
base16_dark: &base16_dark
|
||||
primary:
|
||||
background: '0x181818'
|
||||
foreground: '0xd8d8d8'
|
||||
cursor:
|
||||
text: '0xd8d8d8'
|
||||
cursor: '0xd8d8d8'
|
||||
normal:
|
||||
black: '0x181818'
|
||||
red: '0xab4642'
|
||||
green: '0xa1b56c'
|
||||
yellow: '0xf7ca88'
|
||||
blue: '0x7cafc2'
|
||||
magenta: '0xba8baf'
|
||||
cyan: '0x86c1b9'
|
||||
white: '0xd8d8d8'
|
||||
bright:
|
||||
black: '0x585858'
|
||||
red: '0xab4642'
|
||||
green: '0xa1b56c'
|
||||
yellow: '0xf7ca88'
|
||||
blue: '0x7cafc2'
|
||||
magenta: '0xba8baf'
|
||||
cyan: '0x86c1b9'
|
||||
white: '0xf8f8f8'
|
||||
|
||||
blood_moon: &blood_moon
|
||||
primary:
|
||||
background: '0x10100E'
|
||||
foreground: '0xC6C6C4'
|
||||
normal:
|
||||
black: '0x10100E'
|
||||
red: '0xC40233'
|
||||
green: '0x009F6B'
|
||||
yellow: '0xFFD700'
|
||||
blue: '0x0087BD'
|
||||
magenta: '0x9A4EAE'
|
||||
cyan: '0x20B2AA'
|
||||
white: '0xC6C6C4'
|
||||
bright:
|
||||
black: '0x696969'
|
||||
red: '0xFF2400'
|
||||
green: '0x03C03C'
|
||||
yellow: '0xFDFF00'
|
||||
blue: '0x007FFF'
|
||||
magenta: '0xFF1493'
|
||||
cyan: '0x00CCCC'
|
||||
white: '0xFFFAFA'
|
||||
|
||||
campbell: &campbell
|
||||
primary:
|
||||
background: '0x0c0c0c'
|
||||
foreground: '0xcccccc'
|
||||
normal:
|
||||
black: '0x0c0c0c'
|
||||
red: '0xc50f1f'
|
||||
green: '0x13a10e'
|
||||
yellow: '0xc19c00'
|
||||
blue: '0x0037da'
|
||||
magenta: '0x881798'
|
||||
cyan: '0x3a96dd'
|
||||
white: '0xcccccc'
|
||||
bright:
|
||||
black: '0x767676'
|
||||
red: '0xe74856'
|
||||
green: '0x16c60c'
|
||||
yellow: '0xf9f1a5'
|
||||
blue: '0x3b78ff'
|
||||
magenta: '0xb4009e'
|
||||
cyan: '0x61d6d6'
|
||||
white: '0xf2f2f2'
|
||||
|
||||
hyper: &hyper
|
||||
primary:
|
||||
background: '0x000000'
|
||||
foreground: '0xffffff'
|
||||
cursor:
|
||||
text: '0xF81CE5'
|
||||
cursor: '0xffffff'
|
||||
normal:
|
||||
black: '0x000000'
|
||||
red: '0xfe0100'
|
||||
green: '0x33ff00'
|
||||
yellow: '0xfeff00'
|
||||
blue: '0x0066ff'
|
||||
magenta: '0xcc00ff'
|
||||
cyan: '0x00ffff'
|
||||
white: '0xd0d0d0'
|
||||
bright:
|
||||
black: '0x808080'
|
||||
red: '0xfe0100'
|
||||
green: '0x33ff00'
|
||||
yellow: '0xfeff00'
|
||||
blue: '0x0066ff'
|
||||
magenta: '0xcc00ff'
|
||||
cyan: '0x00ffff'
|
||||
white: '0xFFFFFF'
|
||||
|
||||
material_theme: &material_theme
|
||||
primary:
|
||||
background: '0x1e282d'
|
||||
foreground: '0xc4c7d1'
|
||||
normal:
|
||||
black: '0x666666'
|
||||
red: '0xeb606b'
|
||||
green: '0xc3e88d'
|
||||
yellow: '0xf7eb95'
|
||||
blue: '0x80cbc4'
|
||||
magenta: '0xff2f90'
|
||||
cyan: '0xaeddff'
|
||||
white: '0xffffff'
|
||||
bright:
|
||||
black: '0xff262b'
|
||||
red: '0xeb606b'
|
||||
green: '0xc3e88d'
|
||||
yellow: '0xf7eb95'
|
||||
blue: '0x7dc6bf'
|
||||
magenta: '0x6c71c4'
|
||||
cyan: '0x35434d'
|
||||
white: '0xffffff'
|
||||
|
||||
nord: &nord
|
||||
primary:
|
||||
background: '0x2E3440'
|
||||
foreground: '0xD8DEE9'
|
||||
normal:
|
||||
black: '0x3B4252'
|
||||
red: '0xBF616A'
|
||||
green: '0xA3BE8C'
|
||||
yellow: '0xEBCB8B'
|
||||
blue: '0x81A1C1'
|
||||
magenta: '0xB48EAD'
|
||||
cyan: '0x88C0D0'
|
||||
white: '0xE5E9F0'
|
||||
bright:
|
||||
black: '0x4C566A'
|
||||
red: '0xBF616A'
|
||||
green: '0xA3BE8C'
|
||||
yellow: '0xEBCB8B'
|
||||
blue: '0x81A1C1'
|
||||
magenta: '0xB48EAD'
|
||||
cyan: '0x8FBCBB'
|
||||
white: '0xECEFF4'
|
||||
|
||||
one_dark: &one_dark
|
||||
primary:
|
||||
background: '0x1e2127'
|
||||
foreground: '0xabb2bf'
|
||||
normal:
|
||||
black: '0x1e2127'
|
||||
red: '0xe06c75'
|
||||
green: '0x98c379'
|
||||
yellow: '0xd19a66'
|
||||
blue: '0x61afef'
|
||||
magenta: '0xc678dd'
|
||||
cyan: '0x56b6c2'
|
||||
white: '0xabb2bf'
|
||||
bright:
|
||||
black: '0x5c6370'
|
||||
red: '0xe06c75'
|
||||
green: '0x98c379'
|
||||
yellow: '0xd19a66'
|
||||
blue: '0x61afef'
|
||||
magenta: '0xc678dd'
|
||||
cyan: '0x56b6c2'
|
||||
white: '0xffffff'
|
||||
|
||||
solarized_dark: &solarized_dark
|
||||
primary:
|
||||
background: '0x002b36'
|
||||
foreground: '0x839496'
|
||||
normal:
|
||||
black: '0x073642'
|
||||
red: '0xdc322f'
|
||||
green: '0x859900'
|
||||
yellow: '0xb58900'
|
||||
blue: '0x268bd2'
|
||||
magenta: '0xd33682'
|
||||
cyan: '0x2aa198'
|
||||
white: '0xeee8d5'
|
||||
bright:
|
||||
black: '0x002b36'
|
||||
red: '0xcb4b16'
|
||||
green: '0x586e75'
|
||||
yellow: '0x657b83'
|
||||
blue: '0x839496'
|
||||
magenta: '0x6c71c4'
|
||||
cyan: '0x93a1a1'
|
||||
white: '0xfdf6e3'
|
||||
|
||||
solarized_light: &solarized_light
|
||||
primary:
|
||||
background: '0xfdf6e3'
|
||||
foreground: '0x586e75'
|
||||
normal:
|
||||
black: '0x073642'
|
||||
red: '0xdc322f'
|
||||
green: '0x859900'
|
||||
yellow: '0xb58900'
|
||||
blue: '0x268bd2'
|
||||
magenta: '0xd33682'
|
||||
cyan: '0x2aa198'
|
||||
white: '0xeee8d5'
|
||||
bright:
|
||||
black: '0x002b36'
|
||||
red: '0xcb4b16'
|
||||
green: '0x586e75'
|
||||
yellow: '0x657b83'
|
||||
blue: '0x839496'
|
||||
magenta: '0x6c71c4'
|
||||
cyan: '0x93a1a1'
|
||||
white: '0xfdf6e3'
|
||||
|
||||
terminal_app: &terminal_app
|
||||
primary:
|
||||
background: '0x000000'
|
||||
foreground: '0xb6b6b6'
|
||||
normal:
|
||||
black: '0x000000'
|
||||
red: '0x990000'
|
||||
green: '0x00a600'
|
||||
yellow: '0x999900'
|
||||
blue: '0x0000b2'
|
||||
magenta: '0xb200b2'
|
||||
cyan: '0x00a6b2'
|
||||
white: '0xbfbfbf'
|
||||
bright:
|
||||
black: '0x666666'
|
||||
red: '0xe50000'
|
||||
green: '0x00d900'
|
||||
yellow: '0xe5e500'
|
||||
blue: '0x0000ff'
|
||||
magenta: '0xe500e5'
|
||||
cyan: '0x00e5e5'
|
||||
white: '0xe5e5e5'
|
||||
|
||||
tomorrow_night: &tomorrow_night
|
||||
primary:
|
||||
background: '0x1d1f21'
|
||||
foreground: '0xc5c8c6'
|
||||
cursor:
|
||||
text: '0x1d1f21'
|
||||
cursor: '0xffffff'
|
||||
normal:
|
||||
black: '0x1d1f21'
|
||||
red: '0xcc6666'
|
||||
green: '0xb5bd68'
|
||||
yellow: '0xe6c547'
|
||||
blue: '0x81a2be'
|
||||
magenta: '0xb294bb'
|
||||
cyan: '0x70c0ba'
|
||||
white: '0x373b41'
|
||||
bright:
|
||||
black: '0x666666'
|
||||
red: '0xff3334'
|
||||
green: '0x9ec400'
|
||||
yellow: '0xf0c674'
|
||||
blue: '0x81a2be'
|
||||
magenta: '0xb77ee0'
|
||||
cyan: '0x54ced6'
|
||||
white: '0x282a2e'
|
||||
|
||||
xterm: &xterm
|
||||
primary:
|
||||
background: '0x000000'
|
||||
foreground: '0xffffff'
|
||||
normal:
|
||||
black: '0x000000'
|
||||
red: '0xcd0000'
|
||||
green: '0x00cd00'
|
||||
yellow: '0xcdcd00'
|
||||
blue: '0x0000ee'
|
||||
magenta: '0xcd00cd'
|
||||
cyan: '0x00cdcd'
|
||||
white: '0xe5e5e5'
|
||||
bright:
|
||||
black: '0x7f7f7f'
|
||||
red: '0xff0000'
|
||||
green: '0x00ff00'
|
||||
yellow: '0xffff00'
|
||||
blue: '0x5c5cff'
|
||||
magenta: '0xff00ff'
|
||||
cyan: '0x00ffff'
|
||||
white: '0xffffff'
|
||||
|
||||
thinkpadred: &thinkpadred
|
||||
primary:
|
||||
background: '#171717'
|
||||
foreground: '#eeeeee'
|
||||
normal:
|
||||
black: '#000000'
|
||||
blue: '#912d2d'
|
||||
magenta: '#a12529'
|
||||
red: '#cc2929' # thinkpad red
|
||||
green: '#ca131e'
|
||||
cyan: '#c11720'
|
||||
yellow: '#e20817'
|
||||
white: '#777777'
|
||||
bright:
|
||||
black: '#000000'
|
||||
blue: '#c93c3c'
|
||||
magenta: '#cf2d33'
|
||||
red: '#e82e2e' # thinkpad red
|
||||
green: '#e61521'
|
||||
cyan: '#e61924'
|
||||
yellow: '#f50718'
|
||||
white: '#777777'
|
||||
|
||||
justblue: &justblue
|
||||
primary:
|
||||
background: '#171717'
|
||||
foreground: '#eeeeee'
|
||||
normal:
|
||||
black: '#000000'
|
||||
blue: '#2d6791'
|
||||
magenta: '#256da1'
|
||||
red: '#2988cc'
|
||||
green: '#127dc9'
|
||||
cyan: '#177bc2'
|
||||
yellow: '#0988e3'
|
||||
white: '#777777'
|
||||
bright:
|
||||
black: '#000000'
|
||||
blue: '#3c8ec9'
|
||||
magenta: '#2d8ccf'
|
||||
red: '#2e9be8'
|
||||
green: '#158fe6'
|
||||
cyan: '#1991e6'
|
||||
yellow: '#0792f5'
|
||||
white: '#777777'
|
||||
|
||||
justnord: &justnord
|
||||
primary:
|
||||
background: '#171717'
|
||||
foreground: '0xD8DEE9'
|
||||
normal:
|
||||
black: '0x3B4252'
|
||||
red: '0xBF616A'
|
||||
green: '0xA3BE8C'
|
||||
yellow: '0xEBCB8B'
|
||||
blue: '0x81A1C1'
|
||||
magenta: '0xB48EAD'
|
||||
cyan: '0x88C0D0'
|
||||
white: '0xE5E9F0'
|
||||
bright:
|
||||
black: '0x4C566A'
|
||||
red: '0xBF616A'
|
||||
green: '0xA3BE8C'
|
||||
yellow: '0xEBCB8B'
|
||||
blue: '0x81A1C1'
|
||||
magenta: '0xB48EAD'
|
||||
cyan: '0x8FBCBB'
|
||||
white: '0xECEFF4'
|
||||
|
||||
#colors: *xterm
|
||||
colors: *justnord
|
||||
#colors: *justblue
|
||||
#colors: *thinkpadred
|
||||
@@ -0,0 +1,91 @@
|
||||
title: Terminal
|
||||
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
|
||||
window:
|
||||
opacity: 0.8
|
||||
dynamic_padding: true
|
||||
padding:
|
||||
x: 30
|
||||
y: 30
|
||||
|
||||
cursor:
|
||||
hide_when_typing: true
|
||||
|
||||
font:
|
||||
normal:
|
||||
family: Hack Nerd Font
|
||||
style: Regular
|
||||
|
||||
bold:
|
||||
family: Hack Nerd Font
|
||||
style: Bold
|
||||
|
||||
italic:
|
||||
family: Hack Nerd Font
|
||||
style: Italic
|
||||
|
||||
bold_italic:
|
||||
family: Hack Nerd Font
|
||||
style: Bold Italic
|
||||
|
||||
size: 11.0
|
||||
|
||||
offset:
|
||||
x: 0
|
||||
y: -1
|
||||
|
||||
key_bindings:
|
||||
- { key: Return, mods: Control|Shift, action: SpawnNewInstance } # Spawn new instance in same directory
|
||||
|
||||
schemes:
|
||||
|
||||
xrdb: &xrdb
|
||||
primary:
|
||||
background: '%background%'
|
||||
foreground: '%foreground%'
|
||||
normal:
|
||||
black: '%color0%'
|
||||
red: '%color1%'
|
||||
green: '%color2%'
|
||||
yellow: '%color3%'
|
||||
blue: '%color4%'
|
||||
magenta: '%color5%'
|
||||
cyan: '%color6%'
|
||||
white: '%color7%'
|
||||
bright:
|
||||
black: '%color8%'
|
||||
red: '%color9%'
|
||||
green: '%color10%'
|
||||
yellow: '%color11%'
|
||||
blue: '%color12%'
|
||||
magenta: '%color13%'
|
||||
cyan: '%color14%'
|
||||
white: '%color15%'
|
||||
|
||||
nord: &nord
|
||||
primary:
|
||||
background: '#171717'
|
||||
foreground: '0xD8DEE9'
|
||||
normal:
|
||||
black: '0x3B4252'
|
||||
red: '0xBF616A'
|
||||
green: '0xA3BE8C'
|
||||
yellow: '0xEBCB8B'
|
||||
blue: '0x81A1C1'
|
||||
magenta: '0xB48EAD'
|
||||
cyan: '0x88C0D0'
|
||||
white: '0xE5E9F0'
|
||||
bright:
|
||||
black: '0x4C566A'
|
||||
red: '0xBF616A'
|
||||
green: '0xA3BE8C'
|
||||
yellow: '0xEBCB8B'
|
||||
blue: '0x81A1C1'
|
||||
magenta: '0xB48EAD'
|
||||
cyan: '0x8FBCBB'
|
||||
white: '0xECEFF4'
|
||||
|
||||
#colors: *nord
|
||||
colors: *xrdb
|
||||
@@ -1,70 +0,0 @@
|
||||
title: Terminal
|
||||
background_opacity: 0.8
|
||||
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
|
||||
window:
|
||||
dynamic_padding: true
|
||||
padding:
|
||||
x: 30
|
||||
y: 30
|
||||
|
||||
cursor:
|
||||
hide_when_typing: true
|
||||
|
||||
font:
|
||||
normal:
|
||||
family: Hack Nerd Font
|
||||
style: Regular
|
||||
|
||||
bold:
|
||||
family: Hack Nerd Font
|
||||
style: Bold
|
||||
|
||||
italic:
|
||||
family: Hack Nerd Font
|
||||
style: Italic
|
||||
|
||||
bold_italic:
|
||||
family: Hack Nerd Font
|
||||
style: Bold Italic
|
||||
|
||||
size: 12.5
|
||||
|
||||
offset:
|
||||
x: 0
|
||||
y: -1
|
||||
|
||||
key_bindings:
|
||||
- { key: Return, mods: Control|Shift, action: SpawnNewInstance } # Spawn new instance in same directory
|
||||
|
||||
# Thinkpad Colors
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: '#171717'
|
||||
foreground: '#eeeeee'
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: '#000000'
|
||||
blue: '#912d2d'
|
||||
magenta: '#a12529'
|
||||
red: '#cc2929' # thinkpad red
|
||||
green: '#ca131e'
|
||||
cyan: '#c11720'
|
||||
yellow: '#e20817'
|
||||
white: '#777777'
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: '#000000'
|
||||
blue: '#c93c3c'
|
||||
magenta: '#cf2d33'
|
||||
red: '#e82e2e' # thinkpad red
|
||||
green: '#e61521'
|
||||
cyan: '#e61924'
|
||||
yellow: '#f50718'
|
||||
white: '#777777'
|
||||
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
alacritty.yml##h.yoga3
|
||||
@@ -0,0 +1,91 @@
|
||||
title: Terminal
|
||||
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
|
||||
window:
|
||||
opacity: 0.8
|
||||
dynamic_padding: true
|
||||
padding:
|
||||
x: 30
|
||||
y: 30
|
||||
|
||||
cursor:
|
||||
hide_when_typing: true
|
||||
|
||||
font:
|
||||
normal:
|
||||
family: Hack Nerd Font
|
||||
style: Regular
|
||||
|
||||
bold:
|
||||
family: Hack Nerd Font
|
||||
style: Bold
|
||||
|
||||
italic:
|
||||
family: Hack Nerd Font
|
||||
style: Italic
|
||||
|
||||
bold_italic:
|
||||
family: Hack Nerd Font
|
||||
style: Bold Italic
|
||||
|
||||
size: 11.0
|
||||
|
||||
offset:
|
||||
x: 0
|
||||
y: -1
|
||||
|
||||
key_bindings:
|
||||
- { key: Return, mods: Control|Shift, action: SpawnNewInstance } # Spawn new instance in same directory
|
||||
|
||||
schemes:
|
||||
|
||||
xrdb: &xrdb
|
||||
primary:
|
||||
background: '#2e3440'
|
||||
foreground: '#eceff4'
|
||||
normal:
|
||||
black: '#3b4252'
|
||||
red: '#bf616a'
|
||||
green: '#a3be8c'
|
||||
yellow: '#ebcb8b'
|
||||
blue: '#81a1c1'
|
||||
magenta: '#b48ead'
|
||||
cyan: '#88c0d0'
|
||||
white: '#eceff4'
|
||||
bright:
|
||||
black: '#3b4252'
|
||||
red: '#bf616a'
|
||||
green: '#a3be8c'
|
||||
yellow: '#ebcb8b'
|
||||
blue: '#81a1c1'
|
||||
magenta: '#b48ead'
|
||||
cyan: '#88c0d0'
|
||||
white: '#eceff4'
|
||||
|
||||
nord: &nord
|
||||
primary:
|
||||
background: '#171717'
|
||||
foreground: '0xD8DEE9'
|
||||
normal:
|
||||
black: '0x3B4252'
|
||||
red: '0xBF616A'
|
||||
green: '0xA3BE8C'
|
||||
yellow: '0xEBCB8B'
|
||||
blue: '0x81A1C1'
|
||||
magenta: '0xB48EAD'
|
||||
cyan: '0x88C0D0'
|
||||
white: '0xE5E9F0'
|
||||
bright:
|
||||
black: '0x4C566A'
|
||||
red: '0xBF616A'
|
||||
green: '0xA3BE8C'
|
||||
yellow: '0xEBCB8B'
|
||||
blue: '0x81A1C1'
|
||||
magenta: '0xB48EAD'
|
||||
cyan: '0x8FBCBB'
|
||||
white: '0xECEFF4'
|
||||
|
||||
#colors: *nord
|
||||
colors: *xrdb
|
||||
@@ -0,0 +1,91 @@
|
||||
title: Terminal
|
||||
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
|
||||
window:
|
||||
opacity: 0.8
|
||||
dynamic_padding: true
|
||||
padding:
|
||||
x: 30
|
||||
y: 30
|
||||
|
||||
cursor:
|
||||
hide_when_typing: true
|
||||
|
||||
font:
|
||||
normal:
|
||||
family: Hack Nerd Font
|
||||
style: Regular
|
||||
|
||||
bold:
|
||||
family: Hack Nerd Font
|
||||
style: Bold
|
||||
|
||||
italic:
|
||||
family: Hack Nerd Font
|
||||
style: Italic
|
||||
|
||||
bold_italic:
|
||||
family: Hack Nerd Font
|
||||
style: Bold Italic
|
||||
|
||||
size: 11.0
|
||||
|
||||
offset:
|
||||
x: 0
|
||||
y: -1
|
||||
|
||||
key_bindings:
|
||||
- { key: Return, mods: Control|Shift, action: SpawnNewInstance } # Spawn new instance in same directory
|
||||
|
||||
schemes:
|
||||
|
||||
xrdb: &xrdb
|
||||
primary:
|
||||
background: '#2e3440'
|
||||
foreground: '#eceff4'
|
||||
normal:
|
||||
black: '#3b4252'
|
||||
red: '#bf616a'
|
||||
green: '#a3be8c'
|
||||
yellow: '#ebcb8b'
|
||||
blue: '#81a1c1'
|
||||
magenta: '#b48ead'
|
||||
cyan: '#88c0d0'
|
||||
white: '#eceff4'
|
||||
bright:
|
||||
black: '#3b4252'
|
||||
red: '#bf616a'
|
||||
green: '#a3be8c'
|
||||
yellow: '#ebcb8b'
|
||||
blue: '#81a1c1'
|
||||
magenta: '#b48ead'
|
||||
cyan: '#88c0d0'
|
||||
white: '#eceff4'
|
||||
|
||||
nord: &nord
|
||||
primary:
|
||||
background: '#171717'
|
||||
foreground: '0xD8DEE9'
|
||||
normal:
|
||||
black: '0x3B4252'
|
||||
red: '0xBF616A'
|
||||
green: '0xA3BE8C'
|
||||
yellow: '0xEBCB8B'
|
||||
blue: '0x81A1C1'
|
||||
magenta: '0xB48EAD'
|
||||
cyan: '0x88C0D0'
|
||||
white: '0xE5E9F0'
|
||||
bright:
|
||||
black: '0x4C566A'
|
||||
red: '0xBF616A'
|
||||
green: '0xA3BE8C'
|
||||
yellow: '0xEBCB8B'
|
||||
blue: '0x81A1C1'
|
||||
magenta: '0xB48EAD'
|
||||
cyan: '0x8FBCBB'
|
||||
white: '0xECEFF4'
|
||||
|
||||
#colors: *nord
|
||||
colors: *xrdb
|
||||
@@ -1,572 +0,0 @@
|
||||
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
||||
|
||||
# Any items in the `env` entry below will be added as
|
||||
# environment variables. Some entries may override variables
|
||||
# set by alacritty itself.
|
||||
#env:
|
||||
# TERM variable
|
||||
#
|
||||
# This value is used to set the `$TERM` environment variable for
|
||||
# each instance of Alacritty. If it is not present, alacritty will
|
||||
# check the local terminfo database and use `alacritty` if it is
|
||||
# available, otherwise `xterm-256color` is used.
|
||||
#TERM: xterm-256color
|
||||
|
||||
#window:
|
||||
# Window dimensions (changes require restart)
|
||||
#
|
||||
# Specified in number of columns/lines, not pixels.
|
||||
# If both are `0`, this setting is ignored.
|
||||
#dimensions:
|
||||
# columns: 0
|
||||
# lines: 0
|
||||
|
||||
# Window position (changes require restart)
|
||||
#
|
||||
# Specified in number of pixels.
|
||||
# If the position is not set, the window manager will handle the placement.
|
||||
#position:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Window padding (changes require restart)
|
||||
#
|
||||
# Blank space added around the window in pixels. This padding is scaled
|
||||
# by DPI and the specified value is always added at both opposing sides.
|
||||
#padding:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Spread additional padding evenly around the terminal content.
|
||||
#dynamic_padding: false
|
||||
|
||||
# Window decorations
|
||||
#
|
||||
# Values for `decorations`:
|
||||
# - full: Borders and title bar
|
||||
# - none: Neither borders nor title bar
|
||||
#
|
||||
# Values for `decorations` (macOS only):
|
||||
# - transparent: Title bar, transparent background and title bar buttons
|
||||
# - buttonless: Title bar, transparent background, but no title bar buttons
|
||||
#decorations: full
|
||||
|
||||
# Startup Mode (changes require restart)
|
||||
#
|
||||
# Values for `startup_mode`:
|
||||
# - Windowed
|
||||
# - Maximized
|
||||
# - Fullscreen
|
||||
#
|
||||
# Values for `startup_mode` (macOS only):
|
||||
# - SimpleFullscreen
|
||||
#startup_mode: Windowed
|
||||
|
||||
# Window title
|
||||
#title: Alacritty
|
||||
|
||||
# Window class (Linux/BSD only):
|
||||
#class:
|
||||
# Application instance name
|
||||
#instance: Alacritty
|
||||
# General application class
|
||||
#general: Alacritty
|
||||
|
||||
# GTK theme variant (Linux/BSD only)
|
||||
#
|
||||
# Override the variant of the GTK theme. Commonly supported values are `dark` and `light`.
|
||||
# Set this to `None` to use the default theme variant.
|
||||
#gtk_theme_variant: None
|
||||
|
||||
#scrolling:
|
||||
# Maximum number of lines in the scrollback buffer.
|
||||
# Specifying '0' will disable scrolling.
|
||||
#history: 10000
|
||||
|
||||
# Number of lines the viewport will move for every line scrolled when
|
||||
# scrollback is enabled (history > 0).
|
||||
#multiplier: 3
|
||||
|
||||
# Spaces per Tab (changes require restart)
|
||||
#
|
||||
# This setting defines the width of a tab in cells.
|
||||
#
|
||||
# Some applications, like Emacs, rely on knowing about the width of a tab.
|
||||
# To prevent unexpected behavior in these applications, it's also required to
|
||||
# change the `it` value in terminfo when altering this setting.
|
||||
#tabspaces: 8
|
||||
|
||||
# Font configuration
|
||||
#font:
|
||||
# Normal (roman) font face
|
||||
#normal:
|
||||
# Font family
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) Menlo
|
||||
# - (Linux/BSD) monospace
|
||||
# - (Windows) Consolas
|
||||
#family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
#style: Regular
|
||||
|
||||
# Bold font face
|
||||
#bold:
|
||||
# Font family
|
||||
#
|
||||
# If the bold family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
#family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
#style: Bold
|
||||
|
||||
# Italic font face
|
||||
#italic:
|
||||
# Font family
|
||||
#
|
||||
# If the italic family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
#family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
#style: Italic
|
||||
|
||||
# Bold italic font face
|
||||
#bold_italic:
|
||||
# Font family
|
||||
#
|
||||
# If the bold italic family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
#family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
#style: Bold Italic
|
||||
|
||||
# Point size
|
||||
#size: 11.0
|
||||
|
||||
# Offset is the extra space around each character. `offset.y` can be thought of
|
||||
# as modifying the line spacing, and `offset.x` as modifying the letter spacing.
|
||||
#offset:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Glyph offset determines the locations of the glyphs within their cells with
|
||||
# the default being at the bottom. Increasing `x` moves the glyph to the right,
|
||||
# increasing `y` moves the glyph upwards.
|
||||
#glyph_offset:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Thin stroke font rendering (macOS only)
|
||||
#
|
||||
# Thin strokes are suitable for retina displays, but for non-retina screens
|
||||
# it is recommended to set `use_thin_strokes` to `false`
|
||||
#
|
||||
# macOS >= 10.14.x:
|
||||
#
|
||||
# If the font quality on non-retina display looks bad then set
|
||||
# `use_thin_strokes` to `true` and enable font smoothing by running the
|
||||
# following command:
|
||||
# `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
|
||||
#
|
||||
# This is a global setting and will require a log out or restart to take
|
||||
# effect.
|
||||
#use_thin_strokes: true
|
||||
|
||||
# If `true`, bold text is drawn using the bright color variants.
|
||||
#draw_bold_text_with_bright_colors: false
|
||||
|
||||
# Colors (Tomorrow Night Bright)
|
||||
#colors:
|
||||
# Default colors
|
||||
#primary:
|
||||
# background: '0x000000'
|
||||
# foreground: '0xeaeaea'
|
||||
|
||||
# Bright and dim foreground colors
|
||||
#
|
||||
# The dimmed foreground color is calculated automatically if it is not present.
|
||||
# If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
|
||||
# is `false`, the normal foreground color will be used.
|
||||
#dim_foreground: '0x9a9a9a'
|
||||
#bright_foreground: '0xffffff'
|
||||
|
||||
# Cursor colors
|
||||
#
|
||||
# Colors which should be used to draw the terminal cursor. If these are unset,
|
||||
# the cursor color will be the inverse of the cell color.
|
||||
#cursor:
|
||||
# text: '0x000000'
|
||||
# cursor: '0xffffff'
|
||||
|
||||
# Selection colors
|
||||
#
|
||||
# Colors which should be used to draw the selection area. If selection
|
||||
# background is unset, selection color will be the inverse of the cell colors.
|
||||
# If only text is unset the cell text color will remain the same.
|
||||
#selection:
|
||||
# text: '0xeaeaea'
|
||||
# background: '0x404040'
|
||||
|
||||
# Normal colors
|
||||
#normal:
|
||||
# black: '0x000000'
|
||||
# red: '0xd54e53'
|
||||
# green: '0xb9ca4a'
|
||||
# yellow: '0xe6c547'
|
||||
# blue: '0x7aa6da'
|
||||
# magenta: '0xc397d8'
|
||||
# cyan: '0x70c0ba'
|
||||
# white: '0xeaeaea'
|
||||
|
||||
# Bright colors
|
||||
#bright:
|
||||
# black: '0x666666'
|
||||
# red: '0xff3334'
|
||||
# green: '0x9ec400'
|
||||
# yellow: '0xe7c547'
|
||||
# blue: '0x7aa6da'
|
||||
# magenta: '0xb77ee0'
|
||||
# cyan: '0x54ced6'
|
||||
# white: '0xffffff'
|
||||
|
||||
# Dim colors
|
||||
#
|
||||
# If the dim colors are not set, they will be calculated automatically based
|
||||
# on the `normal` colors.
|
||||
#dim:
|
||||
# black: '0x000000'
|
||||
# red: '0x8c3336'
|
||||
# green: '0x7a8530'
|
||||
# yellow: '0x97822e'
|
||||
# blue: '0x506d8f'
|
||||
# magenta: '0x80638e'
|
||||
# cyan: '0x497e7a'
|
||||
# white: '0x9a9a9a'
|
||||
|
||||
# Indexed Colors
|
||||
#
|
||||
# The indexed colors include all colors from 16 to 256.
|
||||
# When these are not set, they're filled with sensible defaults.
|
||||
#
|
||||
# Example:
|
||||
# `- { index: 16, color: '0xff00ff' }`
|
||||
#
|
||||
#indexed_colors: []
|
||||
|
||||
# Visual Bell
|
||||
#
|
||||
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
|
||||
# rung, the terminal background will be set to white and transition back to the
|
||||
# default background color. You can control the rate of this transition by
|
||||
# setting the `duration` property (represented in milliseconds). You can also
|
||||
# configure the transition function by setting the `animation` property.
|
||||
#
|
||||
# Values for `animation`:
|
||||
# - Ease
|
||||
# - EaseOut
|
||||
# - EaseOutSine
|
||||
# - EaseOutQuad
|
||||
# - EaseOutCubic
|
||||
# - EaseOutQuart
|
||||
# - EaseOutQuint
|
||||
# - EaseOutExpo
|
||||
# - EaseOutCirc
|
||||
# - Linear
|
||||
#
|
||||
# Specifying a `duration` of `0` will disable the visual bell.
|
||||
#visual_bell:
|
||||
# animation: EaseOutExpo
|
||||
# duration: 0
|
||||
# color: '0xffffff'
|
||||
|
||||
# Background opacity
|
||||
#
|
||||
# Window opacity as a floating point number from `0.0` to `1.0`.
|
||||
# The value `0.0` is completely transparent and `1.0` is opaque.
|
||||
#background_opacity: 1.0
|
||||
|
||||
#selection:
|
||||
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
|
||||
|
||||
# When set to `true`, selected text will be copied to the primary clipboard.
|
||||
#save_to_clipboard: false
|
||||
|
||||
# Allow terminal applications to change Alacritty's window title.
|
||||
#dynamic_title: true
|
||||
|
||||
#cursor:
|
||||
# Cursor style
|
||||
#
|
||||
# Values for `style`:
|
||||
# - ▇ Block
|
||||
# - _ Underline
|
||||
# - | Beam
|
||||
#style: Block
|
||||
|
||||
# If this is `true`, the cursor will be rendered as a hollow box when the
|
||||
# window is not focused.
|
||||
#unfocused_hollow: true
|
||||
|
||||
# Live config reload (changes require restart)
|
||||
#live_config_reload: true
|
||||
|
||||
# Shell
|
||||
#
|
||||
# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
|
||||
# Entries in `shell.args` are passed unmodified as arguments to the shell.
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) /bin/bash --login
|
||||
# - (Linux/BSD) user login shell
|
||||
# - (Windows) powershell
|
||||
#shell:
|
||||
# program: /bin/bash
|
||||
# args:
|
||||
# - --login
|
||||
|
||||
# Startup directory
|
||||
#
|
||||
# Directory the shell is started in. If this is unset, or `None`, the working
|
||||
# directory of the parent process will be used.
|
||||
#working_directory: None
|
||||
|
||||
# WinPTY backend (Windows only)
|
||||
#
|
||||
# Alacritty defaults to using the newer ConPTY backend if it is available,
|
||||
# since it resolves a lot of bugs and is quite a bit faster. If it is not
|
||||
# available, the the WinPTY backend will be used instead.
|
||||
#
|
||||
# Setting this option to `true` makes Alacritty use the legacy WinPTY backend,
|
||||
# even if the ConPTY backend is available.
|
||||
#winpty_backend: false
|
||||
|
||||
# Send ESC (\x1b) before characters when alt is pressed.
|
||||
#alt_send_esc: true
|
||||
|
||||
#debug:
|
||||
# Display the time it takes to redraw each frame.
|
||||
#render_timer: false
|
||||
|
||||
# Keep the log file after quitting Alacritty.
|
||||
#persistent_logging: false
|
||||
|
||||
# Log level
|
||||
#
|
||||
# Values for `log_level`:
|
||||
# - None
|
||||
# - Error
|
||||
# - Warn
|
||||
# - Info
|
||||
# - Debug
|
||||
# - Trace
|
||||
#log_level: Warn
|
||||
|
||||
# Print all received window events.
|
||||
#print_events: false
|
||||
|
||||
# Record all characters and escape sequences as test data.
|
||||
#ref_test: false
|
||||
|
||||
#mouse:
|
||||
# Click settings
|
||||
#
|
||||
# The `double_click` and `triple_click` settings control the time
|
||||
# alacritty should wait for accepting multiple clicks as one double
|
||||
# or triple click.
|
||||
#double_click: { threshold: 300 }
|
||||
#triple_click: { threshold: 300 }
|
||||
|
||||
# If this is `true`, the cursor is temporarily hidden when typing.
|
||||
#hide_when_typing: false
|
||||
|
||||
#url:
|
||||
# URL launcher
|
||||
#
|
||||
# This program is executed when clicking on a text which is recognized as a URL.
|
||||
# The URL is always added to the command as the last parameter.
|
||||
#
|
||||
# When set to `None`, URL launching will be disabled completely.
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) open
|
||||
# - (Linux/BSD) xdg-open
|
||||
# - (Windows) explorer
|
||||
#launcher:
|
||||
# program: xdg-open
|
||||
# args: []
|
||||
|
||||
# URL modifiers
|
||||
#
|
||||
# These are the modifiers that need to be held down for opening URLs when clicking
|
||||
# on them. The available modifiers are documented in the key binding section.
|
||||
#modifiers: None
|
||||
|
||||
# Mouse bindings
|
||||
#
|
||||
# Mouse bindings are specified as a list of objects, much like the key
|
||||
# bindings further below.
|
||||
#
|
||||
# To trigger mouse bindings when an application running within Alacritty captures the mouse, the
|
||||
# `Shift` modifier is automatically added as a requirement.
|
||||
#
|
||||
# Each mouse binding will specify a:
|
||||
#
|
||||
# - `mouse`:
|
||||
#
|
||||
# - Middle
|
||||
# - Left
|
||||
# - Right
|
||||
# - Numeric identifier such as `5`
|
||||
#
|
||||
# - `action` (see key bindings)
|
||||
#
|
||||
# And optionally:
|
||||
#
|
||||
# - `mods` (see key bindings)
|
||||
#mouse_bindings:
|
||||
# - { mouse: Middle, action: PasteSelection }
|
||||
|
||||
# Key bindings
|
||||
#
|
||||
# Key bindings are specified as a list of objects. For example, this is the
|
||||
# default paste binding:
|
||||
#
|
||||
# `- { key: V, mods: Control|Shift, action: Paste }`
|
||||
#
|
||||
# Each key binding will specify a:
|
||||
#
|
||||
# - `key`: Identifier of the key pressed
|
||||
#
|
||||
# - A-Z
|
||||
# - F1-F24
|
||||
# - Key0-Key9
|
||||
#
|
||||
# A full list with available key codes can be found here:
|
||||
# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
|
||||
#
|
||||
# Instead of using the name of the keys, the `key` field also supports using
|
||||
# the scancode of the desired key. Scancodes have to be specified as a
|
||||
# decimal number. This command will allow you to display the hex scancodes
|
||||
# for certain keys:
|
||||
#
|
||||
# `showkey --scancodes`.
|
||||
#
|
||||
# Then exactly one of:
|
||||
#
|
||||
# - `chars`: Send a byte sequence to the running application
|
||||
#
|
||||
# The `chars` field writes the specified string to the terminal. This makes
|
||||
# it possible to pass escape sequences. To find escape codes for bindings
|
||||
# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
|
||||
# of tmux. Note that applications use terminfo to map escape sequences back
|
||||
# to keys. It is therefore required to update the terminfo when changing an
|
||||
# escape sequence.
|
||||
#
|
||||
# - `action`: Execute a predefined action
|
||||
#
|
||||
# - Copy
|
||||
# - Paste
|
||||
# - PasteSelection
|
||||
# - IncreaseFontSize
|
||||
# - DecreaseFontSize
|
||||
# - ResetFontSize
|
||||
# - ScrollPageUp
|
||||
# - ScrollPageDown
|
||||
# - ScrollLineUp
|
||||
# - ScrollLineDown
|
||||
# - ScrollToTop
|
||||
# - ScrollToBottom
|
||||
# - ClearHistory
|
||||
# - Hide
|
||||
# - Minimize
|
||||
# - Quit
|
||||
# - ToggleFullscreen
|
||||
# - SpawnNewInstance
|
||||
# - ClearLogNotice
|
||||
# - ReceiveChar
|
||||
# - None
|
||||
#
|
||||
# (macOS only):
|
||||
# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space
|
||||
#
|
||||
# - `command`: Fork and execute a specified command plus arguments
|
||||
#
|
||||
# The `command` field must be a map containing a `program` string and an
|
||||
# `args` array of command line parameter strings. For example:
|
||||
# `{ program: "alacritty", args: ["-e", "vttest"] }`
|
||||
#
|
||||
# And optionally:
|
||||
#
|
||||
# - `mods`: Key modifiers to filter binding actions
|
||||
#
|
||||
# - Command
|
||||
# - Control
|
||||
# - Option
|
||||
# - Super
|
||||
# - Shift
|
||||
# - Alt
|
||||
#
|
||||
# Multiple `mods` can be combined using `|` like this:
|
||||
# `mods: Control|Shift`.
|
||||
# Whitespace and capitalization are relevant and must match the example.
|
||||
#
|
||||
# - `mode`: Indicate a binding for only specific terminal reported modes
|
||||
#
|
||||
# This is mainly used to send applications the correct escape sequences
|
||||
# when in different modes.
|
||||
#
|
||||
# - AppCursor
|
||||
# - AppKeypad
|
||||
# - Alt
|
||||
#
|
||||
# A `~` operator can be used before a mode to apply the binding whenever
|
||||
# the mode is *not* active, e.g. `~Alt`.
|
||||
#
|
||||
# Bindings are always filled by default, but will be replaced when a new
|
||||
# binding with the same triggers is defined. To unset a default binding, it can
|
||||
# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
|
||||
# a no-op if you do not wish to receive input characters for that binding.
|
||||
#
|
||||
# If the same trigger is assigned to multiple actions, all of them are executed
|
||||
# at once.
|
||||
#key_bindings:
|
||||
# (Windows, Linux, and BSD only)
|
||||
#- { key: V, mods: Control|Shift, action: Paste }
|
||||
#- { key: C, mods: Control|Shift, action: Copy }
|
||||
#- { key: Insert, mods: Shift, action: PasteSelection }
|
||||
#- { key: Key0, mods: Control, action: ResetFontSize }
|
||||
#- { key: Equals, mods: Control, action: IncreaseFontSize }
|
||||
#- { key: Add, mods: Control, action: IncreaseFontSize }
|
||||
#- { key: Subtract, mods: Control, action: DecreaseFontSize }
|
||||
#- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||
|
||||
# (Windows only)
|
||||
#- { key: Return, mods: Alt, action: ToggleFullscreen }
|
||||
|
||||
# (macOS only)
|
||||
#- { key: Key0, mods: Command, action: ResetFontSize }
|
||||
#- { key: Equals, mods: Command, action: IncreaseFontSize }
|
||||
#- { key: Add, mods: Command, action: IncreaseFontSize }
|
||||
#- { key: Minus, mods: Command, action: DecreaseFontSize }
|
||||
#- { key: K, mods: Command, action: ClearHistory }
|
||||
#- { key: K, mods: Command, chars: "\x0c" }
|
||||
#- { key: V, mods: Command, action: Paste }
|
||||
#- { key: C, mods: Command, action: Copy }
|
||||
#- { key: H, mods: Command, action: Hide }
|
||||
#- { key: M, mods: Command, action: Minimize }
|
||||
#- { key: Q, mods: Command, action: Quit }
|
||||
#- { key: W, mods: Command, action: Quit }
|
||||
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
|
||||
|
||||
#- { key: Paste, action: Paste }
|
||||
#- { key: Copy, action: Copy }
|
||||
#- { key: L, mods: Control, action: ClearLogNotice }
|
||||
#- { key: L, mods: Control, chars: "\x0c" }
|
||||
#- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt }
|
||||
#- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt }
|
||||
#- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt }
|
||||
#- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt }
|
||||
@@ -1,67 +0,0 @@
|
||||
title: Terminal
|
||||
background_opacity: 0.8
|
||||
|
||||
window:
|
||||
dynamic_padding: true
|
||||
padding:
|
||||
x: 30
|
||||
y: 30
|
||||
|
||||
cursor:
|
||||
hide_when_typing: true
|
||||
|
||||
font:
|
||||
normal:
|
||||
family: Hack Nerd Font
|
||||
style: Regular
|
||||
|
||||
bold:
|
||||
family: Hack Nerd Font
|
||||
style: Bold
|
||||
|
||||
italic:
|
||||
family: Hack Nerd Font
|
||||
style: Italic
|
||||
|
||||
bold_italic:
|
||||
family: Hack Nerd Font
|
||||
style: Bold Italic
|
||||
|
||||
size: 12.5
|
||||
|
||||
offset:
|
||||
x: 0
|
||||
y: -1
|
||||
|
||||
key_bindings:
|
||||
- { key: Return, mods: Control|Shift, action: SpawnNewInstance } # Spawn new instance in same directory
|
||||
|
||||
# Thinkpad Colors
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: '#171717'
|
||||
foreground: '#eeeeee'
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: '0x0d0d0d'
|
||||
red: '0xFF301B'
|
||||
green: '0xA0E521'
|
||||
yellow: '0xFFC620'
|
||||
blue: '0x1BA6FA'
|
||||
magenta: '0x8763B8'
|
||||
cyan: '0x21DEEF'
|
||||
white: '0xEBEBEB'
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: '0x6D7070'
|
||||
red: '0xFF4352'
|
||||
green: '0xB8E466'
|
||||
yellow: '0xFFD750'
|
||||
blue: '0x1BA6FA'
|
||||
magenta: '0xA578EA'
|
||||
cyan: '0x73FBF1'
|
||||
white: '0xFEFEF8'
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
###########
|
||||
# Update alacritty config to apply Xresources color scheme
|
||||
#
|
||||
|
||||
NAMED_COLORS=("foreground" "background")
|
||||
|
||||
# Target file
|
||||
SKELETON_FILE="$HOME/.config/alacritty/alacritty.skeleton.yml"
|
||||
TARGET_FILE="$HOME/.config/alacritty/alacritty.yml"
|
||||
|
||||
# copy input file to temporary file for black magic fuckery
|
||||
# (alacritty applies colors when the config file is written, so we want to do it
|
||||
# all in one write)
|
||||
cp "$SKELETON_FILE" "$TARGET_FILE.tmp"
|
||||
|
||||
# Grab colors from Xresources
|
||||
xrdb ~/.Xresources
|
||||
|
||||
# Named colors
|
||||
for i in "${NAMED_COLORS[@]}"
|
||||
do
|
||||
color=$(xrdb -query | awk "/*.$i/ { print substr(\$2,2) }")
|
||||
sed -i "s/%$i%/#${color}/g" "$TARGET_FILE.tmp"
|
||||
done
|
||||
|
||||
# Numbered colors
|
||||
for i in {0..15}
|
||||
do
|
||||
v=$(xrdb -query | awk '/*.color'"$i":'/ { print substr($2,2) }')
|
||||
eval "sed -i 's/%color${i}%/#${v}/g' $TARGET_FILE.tmp";
|
||||
done
|
||||
|
||||
|
||||
# Finally, replace target file with our updated one
|
||||
rm -f "$TARGET_FILE"
|
||||
mv "$TARGET_FILE.tmp" "$TARGET_FILE"
|
||||
@@ -0,0 +1,23 @@
|
||||
output DP-0
|
||||
off
|
||||
output DP-1
|
||||
off
|
||||
output DP-2
|
||||
off
|
||||
output DP-3
|
||||
off
|
||||
output DP-5
|
||||
off
|
||||
output DP-4
|
||||
crtc 0
|
||||
mode 1920x1080
|
||||
pos 0x0
|
||||
primary
|
||||
rate 144.00
|
||||
x-prop-non_desktop 0
|
||||
output HDMI-0
|
||||
crtc 1
|
||||
mode 1600x1200
|
||||
pos 1920x0
|
||||
rate 60.00
|
||||
x-prop-non_desktop 0
|
||||
@@ -0,0 +1,2 @@
|
||||
DP-4 00ffffffffffff0009d13f7f4554000026180104a5351e783e57e0a5544f9d26125054a56b80d1c0317c4568457c8168617c953c3168023a801871382d40582c4500132a2100001e000000ff005739453036333339534c300a20000000fd0038901ea021000a202020202020000000fc0042656e5120584c32343330540a01c3020318f14b010203040590111213141f2309070783010000023a801871382d40582c4500132a2100001e866f80a07038404030203500132a2100001a011d007251d01e206e285500132a2100001efe5b80a07038354030203500132a2100001afb7e80887038124018203500132a2100001e000000000000000000000000002b
|
||||
HDMI-0 00ffffffffffff0038a3bc66010101011d140103802b2078eaee95a3544c99260f5054bfef80315945596159714f81598199a9408180483f403062b0324040c01300b0441100001e000000fd0032551f5c11000a202020202020000000fc004c4344323139305558700a2020000000ff00303730303334333055420a202000bf
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
#! /bin/sh
|
||||
|
||||
sleep 1
|
||||
|
||||
zsh ~/.config/polybar/launch.sh
|
||||
picom -b || true
|
||||
|
||||
sleep 1
|
||||
|
||||
notify-send -i display "Display profile" "$AUTORANDR_CURRENT_PROFILE"
|
||||
@@ -0,0 +1,19 @@
|
||||
output DP-0
|
||||
off
|
||||
output DP-1
|
||||
off
|
||||
output DP-2
|
||||
off
|
||||
output DP-3
|
||||
off
|
||||
output DP-5
|
||||
off
|
||||
output HDMI-0
|
||||
off
|
||||
output DP-4
|
||||
crtc 0
|
||||
mode 1920x1080
|
||||
pos 0x0
|
||||
primary
|
||||
rate 60.00
|
||||
x-prop-non_desktop 0
|
||||
@@ -0,0 +1,2 @@
|
||||
DP-4 00ffffffffffff0009d13f7f4554000026180104a5351e783e57e0a5544f9d26125054a56b80d1c0317c4568457c8168617c953c3168023a801871382d40582c4500132a2100001e000000ff005739453036333339534c300a20000000fd0038901ea021000a202020202020000000fc0042656e5120584c32343330540a01c3020318f14b010203040590111213141f2309070783010000023a801871382d40582c4500132a2100001e866f80a07038404030203500132a2100001a011d007251d01e206e285500132a2100001efe5b80a07038354030203500132a2100001afb7e80887038124018203500132a2100001e000000000000000000000000002b
|
||||
HDMI-0 00ffffffffffff0038a3bc66010101011d140103802b2078eaee95a3544c99260f5054bfef80315945596159714f81598199a9408180483f403062b0324040c01300b0441100001e000000fd0032551f5c11000a202020202020000000fc004c4344323139305558700a2020000000ff00303730303334333055420a202000bf
|
||||
@@ -0,0 +1,62 @@
|
||||
#!/bin/bash
|
||||
|
||||
autostart() {
|
||||
# General
|
||||
run "fix_xcursor"
|
||||
run "xmodmap" "$HOME/.Xmodmap"
|
||||
|
||||
# Display
|
||||
run "sh ~/.screenlayout/dual.sh"
|
||||
run "nvidia-settings --load-config-only"
|
||||
run "dunst"
|
||||
run "picom -b"
|
||||
run "zsh $HOME/.config/polybar/launch.sh"
|
||||
run "nitrogen --restore"
|
||||
run "unclutter --timeout 5 --jitter 5 --ignore-scrolling"
|
||||
run "light-locker"
|
||||
#run "sleep 5; xsnow -snowflakes 50 -notrees"
|
||||
|
||||
# Audio
|
||||
run "zsh -c 'pactl unload-module module-role-cork'"
|
||||
|
||||
# Config
|
||||
run "yadm pull"
|
||||
run "yadm submodule update --recursive"
|
||||
|
||||
# Misc
|
||||
run "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1"
|
||||
run "rfkill unblock bluetooth"
|
||||
run "blueberry-tray"
|
||||
run "nextcloud"
|
||||
run "glances -w -p 60000"
|
||||
}
|
||||
|
||||
run() {
|
||||
run_std "$1" "$2"
|
||||
}
|
||||
|
||||
|
||||
# Print all output
|
||||
run_std() {
|
||||
runDetached "$1" "$2"
|
||||
}
|
||||
|
||||
# Print stderr only
|
||||
run_err() {
|
||||
runDetached "$1" "$2" >/dev/null
|
||||
}
|
||||
|
||||
# Print no output
|
||||
run_nul() {
|
||||
runDetached "$1" "$2" &>/dev/null
|
||||
}
|
||||
|
||||
runDetached() {
|
||||
#setsid -f "$1" "$2"
|
||||
eval "$1 $2" &
|
||||
}
|
||||
|
||||
echo "[Starting]"
|
||||
autostart
|
||||
echo "[Done]"
|
||||
exit
|
||||
@@ -0,0 +1,97 @@
|
||||
#!/bin/bash
|
||||
|
||||
# YOGA3 i3 config:
|
||||
|
||||
# # General
|
||||
# exec_always --no-startup-id fix_xcursor
|
||||
# exec --no-startup-id xmodmap ~/.Xmodmap
|
||||
|
||||
# # display
|
||||
# exec --no-startup-id "picom"
|
||||
# exec --no-startup-id zsh ~/.config/polybar/launch_polybar.sh
|
||||
# exec --no-startup-id "nitrogen --restore"
|
||||
# exec --no-startup-id "unclutter --timeout 5 --jitter 5 --ignore-scrolling"
|
||||
|
||||
# # audio
|
||||
# exec --no-startup-id zsh ~/Userdata/Scripts/Launchers/restart_pulseaudio.sh
|
||||
# exec --no-startup-id zsh -c "pactl unload-module module-role-cork"
|
||||
|
||||
# # extra
|
||||
# exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
# exec --no-startup-id "rfkill unblock bluetooth"
|
||||
# exec --no-startup-id blueberry-tray
|
||||
# #exec --no-startup-id onboard
|
||||
# exec --no-startup-id nm-applet
|
||||
# #exec --no-startup-id zsh ~/Userdata/Scripts/Launchers/launch_insync.sh
|
||||
# exec --no-startup-id "nextcloud --background"
|
||||
|
||||
autostart() {
|
||||
# General
|
||||
run "gnome-keyring-daemon" "--start"
|
||||
run "fix_xcursor"
|
||||
run "xmodmap" "$HOME/.Xmodmap"
|
||||
|
||||
# Clipboard
|
||||
run "clipster" "-d"
|
||||
|
||||
# Display
|
||||
# run "nvidia-settings --load-config-only"
|
||||
run "dunst"
|
||||
run "picom"
|
||||
run "zsh $HOME/.config/polybar/launch.sh"
|
||||
run "nitrogen --restore"
|
||||
run "unclutter --timeout 5 --jitter 5 --ignore-scrolling"
|
||||
# run "light-locker"
|
||||
# run "sleep 5; xsnow -snowflakes 50 -notrees"
|
||||
|
||||
# Audio
|
||||
run "zsh -c 'pactl unload-module module-role-cork'"
|
||||
run "xset -b"
|
||||
|
||||
# Battery
|
||||
run "batsignal -b"
|
||||
|
||||
# Config
|
||||
run "yadm pull"
|
||||
run "yadm submodule update --recursive"
|
||||
|
||||
# Misc
|
||||
# run "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1"
|
||||
run "rfkill unblock bluetooth"
|
||||
run "blueberry-tray"
|
||||
run "nextcloud"
|
||||
# run "glances -w -p 60000"
|
||||
|
||||
# Network
|
||||
run "nm-applet"
|
||||
}
|
||||
|
||||
run() {
|
||||
run_std "$1" "$2"
|
||||
}
|
||||
|
||||
|
||||
# Print all output
|
||||
run_std() {
|
||||
runDetached "$1" "$2"
|
||||
}
|
||||
|
||||
# Print stderr only
|
||||
run_err() {
|
||||
runDetached "$1" "$2" >/dev/null
|
||||
}
|
||||
|
||||
# Print no output
|
||||
run_nul() {
|
||||
runDetached "$1" "$2" &>/dev/null
|
||||
}
|
||||
|
||||
runDetached() {
|
||||
#setsid -f "$1" "$2"
|
||||
eval "$1 $2" &
|
||||
}
|
||||
|
||||
echo "[Starting]"
|
||||
autostart
|
||||
echo "[Done]"
|
||||
exit
|
||||
@@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
|
||||
###########
|
||||
# Update alacritty config to apply Xresources color scheme
|
||||
#
|
||||
|
||||
NAMED_COLORS=("foreground" "background" "i3_focused" "i3_urgent")
|
||||
|
||||
# Target file
|
||||
SKELETON_FILE="$HOME/.config/dunst/dunstrc.skeleton"
|
||||
TARGET_FILE="$HOME/.config/dunst/dunstrc"
|
||||
|
||||
# copy input file to temporary file for black magic fuckery
|
||||
cp "$SKELETON_FILE" "$TARGET_FILE.tmp"
|
||||
|
||||
# Grab colors from Xresources
|
||||
xrdb ~/.Xresources
|
||||
|
||||
# Named colors
|
||||
for i in "${NAMED_COLORS[@]}"
|
||||
do
|
||||
color=$(xrdb -query | awk "/*.$i/ { print substr(\$2,2) }")
|
||||
sed -i "s/%$i%/#${color}/g" "$TARGET_FILE.tmp"
|
||||
done
|
||||
|
||||
# Numbered colors
|
||||
for i in {0..15}
|
||||
do
|
||||
v=$(xrdb -query | awk '/*.color'"$i":'/ { print substr($2,2) }')
|
||||
eval "sed -i 's/%color${i}%/#${v}/g' $TARGET_FILE.tmp";
|
||||
done
|
||||
|
||||
|
||||
# Finally, replace target file with our updated one
|
||||
rm -f "$TARGET_FILE"
|
||||
mv "$TARGET_FILE.tmp" "$TARGET_FILE"
|
||||
@@ -0,0 +1,434 @@
|
||||
[global]
|
||||
### Display ###
|
||||
|
||||
# Which monitor should the notifications be displayed on.
|
||||
monitor = 0
|
||||
|
||||
# Display notification on focused monitor. Possible modes are:
|
||||
# mouse: follow mouse pointer
|
||||
# keyboard: follow window with keyboard focus
|
||||
# none: don't follow anything
|
||||
#
|
||||
# "keyboard" needs a window manager that exports the
|
||||
# _NET_ACTIVE_WINDOW property.
|
||||
# This should be the case for almost all modern window managers.
|
||||
#
|
||||
# If this option is set to mouse or keyboard, the monitor option
|
||||
# will be ignored.
|
||||
follow = mouse
|
||||
|
||||
# The geometry of the window:
|
||||
# [{width}]x{height}[+/-{x}+/-{y}]
|
||||
# The geometry of the message window.
|
||||
# The height is measured in number of notifications everything else
|
||||
# in pixels. If the width is omitted but the height is given
|
||||
# ("-geometry x2"), the message window expands over the whole screen
|
||||
# (dmenu-like). If width is 0, the window expands to the longest
|
||||
# message displayed. A positive x is measured from the left, a
|
||||
# negative from the right side of the screen. Y is measured from
|
||||
# the top and down respectively.
|
||||
# The width can be negative. In this case the actual width is the
|
||||
# screen width minus the width defined in within the geometry option.
|
||||
geometry = "300x5-20+20"
|
||||
|
||||
# Show how many messages are currently hidden (because of geometry).
|
||||
indicate_hidden = yes
|
||||
|
||||
# Shrink window if it's smaller than the width. Will be ignored if
|
||||
# width is 0.
|
||||
shrink = no
|
||||
|
||||
# The transparency of the window. Range: [0; 100].
|
||||
# This option will only work if a compositing window manager is
|
||||
# present (e.g. xcompmgr, compiz, etc.).
|
||||
transparency = 0
|
||||
|
||||
# The height of the entire notification. If the height is smaller
|
||||
# than the font height and padding combined, it will be raised
|
||||
# to the font height and padding.
|
||||
notification_height = 0
|
||||
|
||||
# Draw a line of "separator_height" pixel height between two
|
||||
# notifications.
|
||||
# Set to 0 to disable.
|
||||
separator_height = 2
|
||||
|
||||
# Padding between text and separator.
|
||||
padding = 10
|
||||
|
||||
# Horizontal padding.
|
||||
horizontal_padding = 16
|
||||
|
||||
# Defines width in pixels of frame around the notification window.
|
||||
# Set to 0 to disable.
|
||||
frame_width = 2
|
||||
|
||||
# Defines color of the frame around the notification window.
|
||||
frame_color = "#5e81ac"
|
||||
|
||||
# Define a color for the separator.
|
||||
# possible values are:
|
||||
# * auto: dunst tries to find a color fitting to the background;
|
||||
# * foreground: use the same color as the foreground;
|
||||
# * frame: use the same color as the frame;
|
||||
# * anything else will be interpreted as a X color.
|
||||
separator_color = frame
|
||||
|
||||
# Sort messages by urgency.
|
||||
sort = yes
|
||||
|
||||
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||
# for longer than idle_threshold seconds.
|
||||
# Set to 0 to disable.
|
||||
# A client can set the 'transient' hint to bypass this. See the rules
|
||||
# section for how to disable this if necessary
|
||||
idle_threshold = 120
|
||||
|
||||
### Text ###
|
||||
|
||||
font = Hack Nerd Font 10px
|
||||
|
||||
# The spacing between lines. If the height is smaller than the
|
||||
# font height, it will get raised to the font height.
|
||||
line_height = 0
|
||||
|
||||
# Possible values are:
|
||||
# full: Allow a small subset of html markup in notifications:
|
||||
# <b>bold</b>
|
||||
# <i>italic</i>
|
||||
# <s>strikethrough</s>
|
||||
# <u>underline</u>
|
||||
#
|
||||
# For a complete reference see
|
||||
# <https://developer.gnome.org/pango/stable/pango-Markup.html>.
|
||||
#
|
||||
# strip: This setting is provided for compatibility with some broken
|
||||
# clients that send markup even though it's not enabled on the
|
||||
# server. Dunst will try to strip the markup but the parsing is
|
||||
# simplistic so using this option outside of matching rules for
|
||||
# specific applications *IS GREATLY DISCOURAGED*.
|
||||
#
|
||||
# no: Disable markup parsing, incoming notifications will be treated as
|
||||
# plain text. Dunst will not advertise that it has the body-markup
|
||||
# capability if this is set as a global setting.
|
||||
#
|
||||
# It's important to note that markup inside the format option will be parsed
|
||||
# regardless of what this is set to.
|
||||
markup = full
|
||||
|
||||
# The format of the message. Possible variables are:
|
||||
# %a appname
|
||||
# %s summary
|
||||
# %b body
|
||||
# %i iconname (including its path)
|
||||
# %I iconname (without its path)
|
||||
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||
# %n progress value if set without any extra characters
|
||||
# %% Literal %
|
||||
# Markup is allowed
|
||||
format = "%s\n%b\n%p"
|
||||
|
||||
# Alignment of message text.
|
||||
# Possible values are "left", "center" and "right".
|
||||
alignment = left
|
||||
|
||||
# Vertical alignment of message text and icon.
|
||||
# Possible values are "top", "center" and "bottom".
|
||||
vertical_alignment = center
|
||||
|
||||
# Show age of message if message is older than show_age_threshold
|
||||
# seconds.
|
||||
# Set to -1 to disable.
|
||||
show_age_threshold = 60
|
||||
|
||||
# Split notifications into multiple lines if they don't fit into
|
||||
# geometry.
|
||||
word_wrap = yes
|
||||
|
||||
# When word_wrap is set to no, specify where to make an ellipsis in long lines.
|
||||
# Possible values are "start", "middle" and "end".
|
||||
ellipsize = middle
|
||||
|
||||
# Ignore newlines '\n' in notifications.
|
||||
ignore_newline = no
|
||||
|
||||
# Stack together notifications with the same content
|
||||
stack_duplicates = true
|
||||
|
||||
# Hide the count of stacked notifications with the same content
|
||||
hide_duplicate_count = false
|
||||
|
||||
# Display indicators for URLs (U) and actions (A).
|
||||
show_indicators = yes
|
||||
|
||||
### Icons ###
|
||||
|
||||
# Align icons left/right/off
|
||||
icon_position = left
|
||||
|
||||
# Scale small icons up to this size, set to 0 to disable. Helpful
|
||||
# for e.g. small files or high-dpi screens. In case of conflict,
|
||||
# max_icon_size takes precedence over this.
|
||||
min_icon_size = 0
|
||||
|
||||
# Scale larger icons down to this size, set to 0 to disable
|
||||
max_icon_size = 32
|
||||
|
||||
# Paths to default icons.
|
||||
icon_path = /usr/share/icons/Papirus/16x16/status/:/usr/share/icons/Papirus/16x16/devices/
|
||||
|
||||
### History ###
|
||||
|
||||
# Should a notification popped up from history be sticky or timeout
|
||||
# as if it would normally do.
|
||||
sticky_history = no
|
||||
|
||||
# Maximum amount of notifications kept in history
|
||||
history_length = 20
|
||||
|
||||
### Misc/Advanced ###
|
||||
|
||||
# dmenu path.
|
||||
dmenu = /usr/bin/rofi -p dunst:
|
||||
|
||||
# Browser for opening urls in context menu.
|
||||
browser = /usr/bin/firefox -new-tab
|
||||
|
||||
# Always run rule-defined scripts, even if the notification is suppressed
|
||||
always_run_script = true
|
||||
|
||||
# Define the title of the windows spawned by dunst
|
||||
title = Dunst
|
||||
|
||||
# Define the class of the windows spawned by dunst
|
||||
class = Dunst
|
||||
|
||||
# Print a notification on startup.
|
||||
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||
# automatically after a crash.
|
||||
startup_notification = false
|
||||
|
||||
# Manage dunst's desire for talking
|
||||
# Can be one of the following values:
|
||||
# crit: Critical features. Dunst aborts
|
||||
# warn: Only non-fatal warnings
|
||||
# mesg: Important Messages
|
||||
# info: all unimportant stuff
|
||||
# debug: all less than unimportant stuff
|
||||
verbosity = mesg
|
||||
|
||||
# Define the corner radius of the notification window
|
||||
# in pixel size. If the radius is 0, you have no rounded
|
||||
# corners.
|
||||
# The radius will be automatically lowered if it exceeds half of the
|
||||
# notification height to avoid clipping text and/or icons.
|
||||
#corner_radius = 15
|
||||
corner_radius = 0
|
||||
|
||||
# Ignore the dbus closeNotification message.
|
||||
# Useful to enforce the timeout set by dunst configuration. Without this
|
||||
# parameter, an application may close the notification sent before the
|
||||
# user defined timeout.
|
||||
ignore_dbusclose = true
|
||||
|
||||
### Legacy
|
||||
|
||||
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||
# This setting is provided for compatibility with older nVidia drivers that
|
||||
# do not support RandR and using it on systems that support RandR is highly
|
||||
# discouraged.
|
||||
#
|
||||
# By enabling this setting dunst will not be able to detect when a monitor
|
||||
# is connected or disconnected which might break follow mode if the screen
|
||||
# layout changes.
|
||||
force_xinerama = false
|
||||
|
||||
### mouse
|
||||
|
||||
# Defines list of actions for each mouse event
|
||||
# Possible values are:
|
||||
# * none: Don't do anything.
|
||||
# * do_action: If the notification has exactly one action, or one is marked as default,
|
||||
# invoke it. If there are multiple and no default, open the context menu.
|
||||
# * close_current: Close current notification.
|
||||
# * close_all: Close all notifications.
|
||||
# These values can be strung together for each mouse event, and
|
||||
# will be executed in sequence.
|
||||
mouse_left_click = do_action, close_current
|
||||
mouse_right_click = close_current
|
||||
mouse_middle_click = close_all
|
||||
|
||||
# Experimental features that may or may not work correctly. Do not expect them
|
||||
# to have a consistent behaviour across releases.
|
||||
[experimental]
|
||||
# Calculate the dpi to use on a per-monitor basis.
|
||||
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||
# using the resolution and physical size. This might be useful in setups
|
||||
# where there are multiple screens with very different dpi values.
|
||||
per_monitor_dpi = false
|
||||
|
||||
[shortcuts]
|
||||
|
||||
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||
# "mod3" and "mod4" (windows-key).
|
||||
# Xev might be helpful to find names for keys.
|
||||
|
||||
# Close notification.
|
||||
close = ctrl+space
|
||||
|
||||
# Close all notifications.
|
||||
close_all = ctrl+shift+space
|
||||
|
||||
# Redisplay last message(s).
|
||||
# On the US keyboard layout "grave" is normally above TAB and left
|
||||
# of "1". Make sure this key actually exists on your keyboard layout,
|
||||
# e.g. check output of 'xmodmap -pke'
|
||||
history = ctrl+grave
|
||||
|
||||
# Context menu.
|
||||
context = ctrl+shift+period
|
||||
|
||||
[urgency_low]
|
||||
# IMPORTANT: colors have to be defined in quotation marks.
|
||||
# Otherwise the "#" and following would be interpreted as a comment.
|
||||
background = "#2e3440"
|
||||
foreground = "#eceff4"
|
||||
frame_color = "#5e81ac"
|
||||
timeout = 4
|
||||
# Icon for notifications with low urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_normal]
|
||||
background = "#2e3440"
|
||||
foreground = "#eceff4"
|
||||
frame_color = "#5e81ac"
|
||||
timeout = 6
|
||||
# Icon for notifications with normal urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_critical]
|
||||
background = "#2e3440"
|
||||
foreground = "#eceff4"
|
||||
frame_color = "#88c0d0"
|
||||
timeout = 20
|
||||
# Icon for notifications with critical urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
# Every section that isn't one of the above is interpreted as a rules to
|
||||
# override settings for certain messages.
|
||||
#
|
||||
# Messages can be matched by
|
||||
# appname (discouraged, see desktop_entry)
|
||||
# body
|
||||
# category
|
||||
# desktop_entry
|
||||
# icon
|
||||
# match_transient
|
||||
# msg_urgency
|
||||
# stack_tag
|
||||
# summary
|
||||
#
|
||||
# and you can override the
|
||||
# background
|
||||
# foreground
|
||||
# format
|
||||
# frame_color
|
||||
# fullscreen
|
||||
# new_icon
|
||||
# set_stack_tag
|
||||
# set_transient
|
||||
# timeout
|
||||
# urgency
|
||||
#
|
||||
# Shell-like globbing will get expanded.
|
||||
#
|
||||
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
||||
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
||||
# the desktop-entry won't get localized.
|
||||
#
|
||||
# SCRIPTING
|
||||
# You can specify a script that gets run when the rule matches by
|
||||
# setting the "script" option.
|
||||
# The script will be called as follows:
|
||||
# script appname summary body icon urgency
|
||||
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||
#
|
||||
# NOTE: if you don't want a notification to be displayed, set the format
|
||||
# to "".
|
||||
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||
# to find fitting options for rules.
|
||||
|
||||
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
||||
# client
|
||||
#[transient_disable]
|
||||
# match_transient = yes
|
||||
# set_transient = no
|
||||
#
|
||||
# Make the handling of transient notifications more strict by making them not
|
||||
# be placed in history.
|
||||
#[transient_history_ignore]
|
||||
# match_transient = yes
|
||||
# history_ignore = yes
|
||||
|
||||
# fullscreen values
|
||||
# show: show the notifications, regardless if there is a fullscreen window opened
|
||||
# delay: displays the new notification, if there is no fullscreen window active
|
||||
# If the notification is already drawn, it won't get undrawn.
|
||||
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
||||
# withdrawn from screen again and will get delayed like a new notification
|
||||
#[fullscreen_delay_everything]
|
||||
# fullscreen = delay
|
||||
#[fullscreen_show_critical]
|
||||
# msg_urgency = critical
|
||||
# fullscreen = show
|
||||
|
||||
#[espeak]
|
||||
# summary = "*"
|
||||
# script = dunst_espeak.sh
|
||||
|
||||
#[script-test]
|
||||
# summary = "*script*"
|
||||
# script = dunst_test.sh
|
||||
|
||||
#[ignore]
|
||||
# # This notification will not be displayed
|
||||
# summary = "foobar"
|
||||
# format = ""
|
||||
|
||||
#[history-ignore]
|
||||
# # This notification will not be saved in history
|
||||
# summary = "foobar"
|
||||
# history_ignore = yes
|
||||
|
||||
#[skip-display]
|
||||
# # This notification will not be displayed, but will be included in the history
|
||||
# summary = "foobar"
|
||||
# skip_display = yes
|
||||
|
||||
#[signed_on]
|
||||
# appname = Pidgin
|
||||
# summary = "*signed on*"
|
||||
# urgency = low
|
||||
#
|
||||
#[signed_off]
|
||||
# appname = Pidgin
|
||||
# summary = *signed off*
|
||||
# urgency = low
|
||||
#
|
||||
#[says]
|
||||
# appname = Pidgin
|
||||
# summary = *says*
|
||||
# urgency = critical
|
||||
#
|
||||
#[twitter]
|
||||
# appname = Pidgin
|
||||
# summary = *twitter.com*
|
||||
# urgency = normal
|
||||
#
|
||||
#[stack-volumes]
|
||||
# appname = "some_volume_notifiers"
|
||||
# set_stack_tag = "volume"
|
||||
#
|
||||
# vim: ft=cfg
|
||||
@@ -0,0 +1,434 @@
|
||||
[global]
|
||||
### Display ###
|
||||
|
||||
# Which monitor should the notifications be displayed on.
|
||||
monitor = 0
|
||||
|
||||
# Display notification on focused monitor. Possible modes are:
|
||||
# mouse: follow mouse pointer
|
||||
# keyboard: follow window with keyboard focus
|
||||
# none: don't follow anything
|
||||
#
|
||||
# "keyboard" needs a window manager that exports the
|
||||
# _NET_ACTIVE_WINDOW property.
|
||||
# This should be the case for almost all modern window managers.
|
||||
#
|
||||
# If this option is set to mouse or keyboard, the monitor option
|
||||
# will be ignored.
|
||||
follow = mouse
|
||||
|
||||
# The geometry of the window:
|
||||
# [{width}]x{height}[+/-{x}+/-{y}]
|
||||
# The geometry of the message window.
|
||||
# The height is measured in number of notifications everything else
|
||||
# in pixels. If the width is omitted but the height is given
|
||||
# ("-geometry x2"), the message window expands over the whole screen
|
||||
# (dmenu-like). If width is 0, the window expands to the longest
|
||||
# message displayed. A positive x is measured from the left, a
|
||||
# negative from the right side of the screen. Y is measured from
|
||||
# the top and down respectively.
|
||||
# The width can be negative. In this case the actual width is the
|
||||
# screen width minus the width defined in within the geometry option.
|
||||
geometry = "300x5-20+20"
|
||||
|
||||
# Show how many messages are currently hidden (because of geometry).
|
||||
indicate_hidden = yes
|
||||
|
||||
# Shrink window if it's smaller than the width. Will be ignored if
|
||||
# width is 0.
|
||||
shrink = no
|
||||
|
||||
# The transparency of the window. Range: [0; 100].
|
||||
# This option will only work if a compositing window manager is
|
||||
# present (e.g. xcompmgr, compiz, etc.).
|
||||
transparency = 0
|
||||
|
||||
# The height of the entire notification. If the height is smaller
|
||||
# than the font height and padding combined, it will be raised
|
||||
# to the font height and padding.
|
||||
notification_height = 0
|
||||
|
||||
# Draw a line of "separator_height" pixel height between two
|
||||
# notifications.
|
||||
# Set to 0 to disable.
|
||||
separator_height = 2
|
||||
|
||||
# Padding between text and separator.
|
||||
padding = 10
|
||||
|
||||
# Horizontal padding.
|
||||
horizontal_padding = 16
|
||||
|
||||
# Defines width in pixels of frame around the notification window.
|
||||
# Set to 0 to disable.
|
||||
frame_width = 2
|
||||
|
||||
# Defines color of the frame around the notification window.
|
||||
frame_color = "%i3_focused%"
|
||||
|
||||
# Define a color for the separator.
|
||||
# possible values are:
|
||||
# * auto: dunst tries to find a color fitting to the background;
|
||||
# * foreground: use the same color as the foreground;
|
||||
# * frame: use the same color as the frame;
|
||||
# * anything else will be interpreted as a X color.
|
||||
separator_color = frame
|
||||
|
||||
# Sort messages by urgency.
|
||||
sort = yes
|
||||
|
||||
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||
# for longer than idle_threshold seconds.
|
||||
# Set to 0 to disable.
|
||||
# A client can set the 'transient' hint to bypass this. See the rules
|
||||
# section for how to disable this if necessary
|
||||
idle_threshold = 120
|
||||
|
||||
### Text ###
|
||||
|
||||
font = Hack Nerd Font 10px
|
||||
|
||||
# The spacing between lines. If the height is smaller than the
|
||||
# font height, it will get raised to the font height.
|
||||
line_height = 0
|
||||
|
||||
# Possible values are:
|
||||
# full: Allow a small subset of html markup in notifications:
|
||||
# <b>bold</b>
|
||||
# <i>italic</i>
|
||||
# <s>strikethrough</s>
|
||||
# <u>underline</u>
|
||||
#
|
||||
# For a complete reference see
|
||||
# <https://developer.gnome.org/pango/stable/pango-Markup.html>.
|
||||
#
|
||||
# strip: This setting is provided for compatibility with some broken
|
||||
# clients that send markup even though it's not enabled on the
|
||||
# server. Dunst will try to strip the markup but the parsing is
|
||||
# simplistic so using this option outside of matching rules for
|
||||
# specific applications *IS GREATLY DISCOURAGED*.
|
||||
#
|
||||
# no: Disable markup parsing, incoming notifications will be treated as
|
||||
# plain text. Dunst will not advertise that it has the body-markup
|
||||
# capability if this is set as a global setting.
|
||||
#
|
||||
# It's important to note that markup inside the format option will be parsed
|
||||
# regardless of what this is set to.
|
||||
markup = full
|
||||
|
||||
# The format of the message. Possible variables are:
|
||||
# %a appname
|
||||
# %s summary
|
||||
# %b body
|
||||
# %i iconname (including its path)
|
||||
# %I iconname (without its path)
|
||||
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||
# %n progress value if set without any extra characters
|
||||
# %% Literal %
|
||||
# Markup is allowed
|
||||
format = "%s\n%b\n%p"
|
||||
|
||||
# Alignment of message text.
|
||||
# Possible values are "left", "center" and "right".
|
||||
alignment = left
|
||||
|
||||
# Vertical alignment of message text and icon.
|
||||
# Possible values are "top", "center" and "bottom".
|
||||
vertical_alignment = center
|
||||
|
||||
# Show age of message if message is older than show_age_threshold
|
||||
# seconds.
|
||||
# Set to -1 to disable.
|
||||
show_age_threshold = 60
|
||||
|
||||
# Split notifications into multiple lines if they don't fit into
|
||||
# geometry.
|
||||
word_wrap = yes
|
||||
|
||||
# When word_wrap is set to no, specify where to make an ellipsis in long lines.
|
||||
# Possible values are "start", "middle" and "end".
|
||||
ellipsize = middle
|
||||
|
||||
# Ignore newlines '\n' in notifications.
|
||||
ignore_newline = no
|
||||
|
||||
# Stack together notifications with the same content
|
||||
stack_duplicates = true
|
||||
|
||||
# Hide the count of stacked notifications with the same content
|
||||
hide_duplicate_count = false
|
||||
|
||||
# Display indicators for URLs (U) and actions (A).
|
||||
show_indicators = yes
|
||||
|
||||
### Icons ###
|
||||
|
||||
# Align icons left/right/off
|
||||
icon_position = left
|
||||
|
||||
# Scale small icons up to this size, set to 0 to disable. Helpful
|
||||
# for e.g. small files or high-dpi screens. In case of conflict,
|
||||
# max_icon_size takes precedence over this.
|
||||
min_icon_size = 0
|
||||
|
||||
# Scale larger icons down to this size, set to 0 to disable
|
||||
max_icon_size = 32
|
||||
|
||||
# Paths to default icons.
|
||||
icon_path = /usr/share/icons/Papirus/16x16/status/:/usr/share/icons/Papirus/16x16/devices/
|
||||
|
||||
### History ###
|
||||
|
||||
# Should a notification popped up from history be sticky or timeout
|
||||
# as if it would normally do.
|
||||
sticky_history = yes
|
||||
|
||||
# Maximum amount of notifications kept in history
|
||||
history_length = 20
|
||||
|
||||
### Misc/Advanced ###
|
||||
|
||||
# dmenu path.
|
||||
dmenu = /usr/bin/rofi -p dunst:
|
||||
|
||||
# Browser for opening urls in context menu.
|
||||
browser = /usr/bin/firefox -new-tab
|
||||
|
||||
# Always run rule-defined scripts, even if the notification is suppressed
|
||||
always_run_script = true
|
||||
|
||||
# Define the title of the windows spawned by dunst
|
||||
title = Dunst
|
||||
|
||||
# Define the class of the windows spawned by dunst
|
||||
class = Dunst
|
||||
|
||||
# Print a notification on startup.
|
||||
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||
# automatically after a crash.
|
||||
startup_notification = false
|
||||
|
||||
# Manage dunst's desire for talking
|
||||
# Can be one of the following values:
|
||||
# crit: Critical features. Dunst aborts
|
||||
# warn: Only non-fatal warnings
|
||||
# mesg: Important Messages
|
||||
# info: all unimportant stuff
|
||||
# debug: all less than unimportant stuff
|
||||
verbosity = mesg
|
||||
|
||||
# Define the corner radius of the notification window
|
||||
# in pixel size. If the radius is 0, you have no rounded
|
||||
# corners.
|
||||
# The radius will be automatically lowered if it exceeds half of the
|
||||
# notification height to avoid clipping text and/or icons.
|
||||
#corner_radius = 15
|
||||
corner_radius = 0
|
||||
|
||||
# Ignore the dbus closeNotification message.
|
||||
# Useful to enforce the timeout set by dunst configuration. Without this
|
||||
# parameter, an application may close the notification sent before the
|
||||
# user defined timeout.
|
||||
ignore_dbusclose = false
|
||||
|
||||
### Legacy
|
||||
|
||||
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||
# This setting is provided for compatibility with older nVidia drivers that
|
||||
# do not support RandR and using it on systems that support RandR is highly
|
||||
# discouraged.
|
||||
#
|
||||
# By enabling this setting dunst will not be able to detect when a monitor
|
||||
# is connected or disconnected which might break follow mode if the screen
|
||||
# layout changes.
|
||||
force_xinerama = false
|
||||
|
||||
### mouse
|
||||
|
||||
# Defines list of actions for each mouse event
|
||||
# Possible values are:
|
||||
# * none: Don't do anything.
|
||||
# * do_action: If the notification has exactly one action, or one is marked as default,
|
||||
# invoke it. If there are multiple and no default, open the context menu.
|
||||
# * close_current: Close current notification.
|
||||
# * close_all: Close all notifications.
|
||||
# These values can be strung together for each mouse event, and
|
||||
# will be executed in sequence.
|
||||
mouse_left_click = do_action, close_current
|
||||
mouse_right_click = close_current
|
||||
mouse_middle_click = close_all
|
||||
|
||||
# Experimental features that may or may not work correctly. Do not expect them
|
||||
# to have a consistent behaviour across releases.
|
||||
[experimental]
|
||||
# Calculate the dpi to use on a per-monitor basis.
|
||||
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||
# using the resolution and physical size. This might be useful in setups
|
||||
# where there are multiple screens with very different dpi values.
|
||||
per_monitor_dpi = false
|
||||
|
||||
[shortcuts]
|
||||
|
||||
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||
# "mod3" and "mod4" (windows-key).
|
||||
# Xev might be helpful to find names for keys.
|
||||
|
||||
# Close notification.
|
||||
close = ctrl+space
|
||||
|
||||
# Close all notifications.
|
||||
close_all = ctrl+shift+space
|
||||
|
||||
# Redisplay last message(s).
|
||||
# On the US keyboard layout "grave" is normally above TAB and left
|
||||
# of "1". Make sure this key actually exists on your keyboard layout,
|
||||
# e.g. check output of 'xmodmap -pke'
|
||||
history = ctrl+grave
|
||||
|
||||
# Context menu.
|
||||
context = ctrl+shift+period
|
||||
|
||||
[urgency_low]
|
||||
# IMPORTANT: colors have to be defined in quotation marks.
|
||||
# Otherwise the "#" and following would be interpreted as a comment.
|
||||
background = "%background%"
|
||||
foreground = "%foreground%"
|
||||
frame_color = "%i3_focused%"
|
||||
timeout = 10
|
||||
# Icon for notifications with low urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_normal]
|
||||
background = "%background%"
|
||||
foreground = "%foreground%"
|
||||
frame_color = "%i3_focused%"
|
||||
timeout = 10
|
||||
# Icon for notifications with normal urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_critical]
|
||||
background = "%background%"
|
||||
foreground = "%foreground%"
|
||||
frame_color = "%i3_urgent%"
|
||||
timeout = 0
|
||||
# Icon for notifications with critical urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
# Every section that isn't one of the above is interpreted as a rules to
|
||||
# override settings for certain messages.
|
||||
#
|
||||
# Messages can be matched by
|
||||
# appname (discouraged, see desktop_entry)
|
||||
# body
|
||||
# category
|
||||
# desktop_entry
|
||||
# icon
|
||||
# match_transient
|
||||
# msg_urgency
|
||||
# stack_tag
|
||||
# summary
|
||||
#
|
||||
# and you can override the
|
||||
# background
|
||||
# foreground
|
||||
# format
|
||||
# frame_color
|
||||
# fullscreen
|
||||
# new_icon
|
||||
# set_stack_tag
|
||||
# set_transient
|
||||
# timeout
|
||||
# urgency
|
||||
#
|
||||
# Shell-like globbing will get expanded.
|
||||
#
|
||||
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
||||
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
||||
# the desktop-entry won't get localized.
|
||||
#
|
||||
# SCRIPTING
|
||||
# You can specify a script that gets run when the rule matches by
|
||||
# setting the "script" option.
|
||||
# The script will be called as follows:
|
||||
# script appname summary body icon urgency
|
||||
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||
#
|
||||
# NOTE: if you don't want a notification to be displayed, set the format
|
||||
# to "".
|
||||
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||
# to find fitting options for rules.
|
||||
|
||||
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
||||
# client
|
||||
#[transient_disable]
|
||||
# match_transient = yes
|
||||
# set_transient = no
|
||||
#
|
||||
# Make the handling of transient notifications more strict by making them not
|
||||
# be placed in history.
|
||||
#[transient_history_ignore]
|
||||
# match_transient = yes
|
||||
# history_ignore = yes
|
||||
|
||||
# fullscreen values
|
||||
# show: show the notifications, regardless if there is a fullscreen window opened
|
||||
# delay: displays the new notification, if there is no fullscreen window active
|
||||
# If the notification is already drawn, it won't get undrawn.
|
||||
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
||||
# withdrawn from screen again and will get delayed like a new notification
|
||||
#[fullscreen_delay_everything]
|
||||
# fullscreen = delay
|
||||
#[fullscreen_show_critical]
|
||||
# msg_urgency = critical
|
||||
# fullscreen = show
|
||||
|
||||
#[espeak]
|
||||
# summary = "*"
|
||||
# script = dunst_espeak.sh
|
||||
|
||||
#[script-test]
|
||||
# summary = "*script*"
|
||||
# script = dunst_test.sh
|
||||
|
||||
#[ignore]
|
||||
# # This notification will not be displayed
|
||||
# summary = "foobar"
|
||||
# format = ""
|
||||
|
||||
#[history-ignore]
|
||||
# # This notification will not be saved in history
|
||||
# summary = "foobar"
|
||||
# history_ignore = yes
|
||||
|
||||
#[skip-display]
|
||||
# # This notification will not be displayed, but will be included in the history
|
||||
# summary = "foobar"
|
||||
# skip_display = yes
|
||||
|
||||
#[signed_on]
|
||||
# appname = Pidgin
|
||||
# summary = "*signed on*"
|
||||
# urgency = low
|
||||
#
|
||||
#[signed_off]
|
||||
# appname = Pidgin
|
||||
# summary = *signed off*
|
||||
# urgency = low
|
||||
#
|
||||
#[says]
|
||||
# appname = Pidgin
|
||||
# summary = *says*
|
||||
# urgency = critical
|
||||
#
|
||||
#[twitter]
|
||||
# appname = Pidgin
|
||||
# summary = *twitter.com*
|
||||
# urgency = normal
|
||||
#
|
||||
#[stack-volumes]
|
||||
# appname = "some_volume_notifiers"
|
||||
# set_stack_tag = "volume"
|
||||
#
|
||||
# vim: ft=cfg
|
||||
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||
<!-- created by lxqt-config-appearance (DO NOT EDIT!) -->
|
||||
<fontconfig>
|
||||
<include ignore_missing="yes">conf.d</include>
|
||||
<match target="font">
|
||||
<edit name="antialias" mode="assign">
|
||||
<bool>true</bool>
|
||||
</edit>
|
||||
</match>
|
||||
<match target="font">
|
||||
<edit name="rgba" mode="assign">
|
||||
<const>rgb</const>
|
||||
</edit>
|
||||
</match>
|
||||
<match target="font">
|
||||
<edit name="lcdfilter" mode="assign">
|
||||
<const>lcddefault</const>
|
||||
</edit>
|
||||
</match>
|
||||
<match target="font">
|
||||
<edit name="hinting" mode="assign">
|
||||
<bool>true</bool>
|
||||
</edit>
|
||||
</match>
|
||||
<match target="font">
|
||||
<edit name="hintstyle" mode="assign">
|
||||
<const>hintslight</const>
|
||||
</edit>
|
||||
</match>
|
||||
<match target="font">
|
||||
<edit name="autohint" mode="assign">
|
||||
<bool>true</bool>
|
||||
</edit>
|
||||
</match>
|
||||
<match target="pattern">
|
||||
<edit name="dpi" mode="assign">
|
||||
<double>96</double>
|
||||
</edit>
|
||||
</match>
|
||||
</fontconfig>
|
||||
@@ -0,0 +1,125 @@
|
||||
<?xml version='1.0'?>
|
||||
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
|
||||
<fontconfig>
|
||||
|
||||
<!-- Hinted fonts -->
|
||||
<!-- <match target="font"> -->
|
||||
<!-- <edit mode="assign" name="antialias"> -->
|
||||
<!-- <bool>true</bool> -->
|
||||
<!-- </edit> -->
|
||||
<!-- <edit mode="assign" name="embeddedbitmap"> -->
|
||||
<!-- <bool>false</bool> -->
|
||||
<!-- </edit> -->
|
||||
<!-- <edit mode="assign" name="hinting"> -->
|
||||
<!-- <bool>true</bool> -->
|
||||
<!-- </edit> -->
|
||||
<!-- <edit mode="assign" name="hintstyle"> -->
|
||||
<!-- <const>hintslight</const> -->
|
||||
<!-- </edit> -->
|
||||
<!-- <edit mode="assign" name="lcdfilter"> -->
|
||||
<!-- <const>lcddefault</const> -->
|
||||
<!-- </edit> -->
|
||||
<!-- <edit mode="assign" name="rgba"> -->
|
||||
<!-- <const>rgb</const> -->
|
||||
<!-- </edit> -->
|
||||
<!-- </match> -->
|
||||
|
||||
<!-- END Hinted fonts -->
|
||||
|
||||
<!-- Enable anti-aliasing only for bigger fonts -->
|
||||
<match target="font">
|
||||
<edit name="antialias" mode="assign">
|
||||
<bool>true</bool>
|
||||
</edit>
|
||||
</match>
|
||||
|
||||
<match target="font" >
|
||||
<test name="size" qual="any" compare="more">
|
||||
<double>12</double>
|
||||
</test>
|
||||
<edit name="antialias" mode="assign">
|
||||
<bool>true</bool>
|
||||
</edit>
|
||||
</match>
|
||||
|
||||
<match target="font" >
|
||||
<test name="pixelsize" qual="any" compare="more">
|
||||
<double>16</double>
|
||||
</test>
|
||||
<edit name="antialias" mode="assign">
|
||||
<bool>true</bool>
|
||||
</edit>
|
||||
</match>
|
||||
<!-- END Enable anti-aliasing only for bigger fonts -->
|
||||
|
||||
<!-- Default font (no fc-match pattern) -->
|
||||
<match>
|
||||
<edit mode="prepend" name="family"><string>Roboto</string></edit>
|
||||
</match>
|
||||
<!-- END Default font (no fc-match pattern) -->
|
||||
|
||||
<!-- Default sans-serif font -->
|
||||
<match target="pattern">
|
||||
<test qual="any" name="family"><string>sans-serif</string></test>
|
||||
<edit name="family" mode="prepend" binding="same"><string>Roboto</string></edit>
|
||||
</match>
|
||||
<!-- END Default sans-serif font -->
|
||||
|
||||
<!-- Default serif fonts -->
|
||||
<match target="pattern">
|
||||
<test qual="any" name="family"><string>serif</string></test>
|
||||
<edit name="family" mode="prepend" binding="same"><string>Roboto</string></edit>
|
||||
<edit name="family" mode="prepend" binding="same"><string>Noto Serif</string></edit>
|
||||
</match>
|
||||
<!-- END Default serif fonts -->
|
||||
|
||||
<!-- Default monospace fonts -->
|
||||
<match target="pattern">
|
||||
<test qual="any" name="family"><string>monospace</string></test>
|
||||
<edit name="family" mode="prepend" binding="same"><string>Hack Nerd Font Mono</string></edit>
|
||||
<edit name="family" mode="prepend" binding="same"><string>JetBrains Mono Regular Nerd Font Complete Mono</string></edit>
|
||||
<edit name="family" mode="prepend" binding="same"><string>Roboto Mono</string></edit>
|
||||
</match>
|
||||
<!-- END Default monospace fonts -->
|
||||
|
||||
<!-- Fallback fonts preference order -->
|
||||
<alias>
|
||||
<family>sans-serif</family>
|
||||
<prefer>
|
||||
<family>Roboto</family>
|
||||
<family>Open Sans</family>
|
||||
<family>Noto Color Emoji</family>
|
||||
<family>Material Design Icons</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
<alias>
|
||||
<family>serif</family>
|
||||
<prefer>
|
||||
<family>Noto Serif</family>
|
||||
<family>Noto Color Emoji</family>
|
||||
<family>Material Design Icons</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
<alias>
|
||||
<family>monospace</family>
|
||||
<prefer>
|
||||
<family>Hack Nerd Font Mono</family>
|
||||
<family>JetBrains Mono Regular Nerd Font Complete Mono</family>
|
||||
<family>Roboto Mono</family>
|
||||
<family>Noto Color Emoji</family>
|
||||
<family>Material Design Icons</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
<alias>
|
||||
<family>emoji</family>
|
||||
<prefer>
|
||||
<family>Noto Color Emoji</family>
|
||||
<family>Material Design Icons</family>
|
||||
<family>Hack Nerd Font Mono</family>
|
||||
<family>JetBrains Mono Regular Nerd Font Complete Mono</family>
|
||||
<family>Roboto Mono</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
<!-- END Fallback fonts preference order -->
|
||||
|
||||
</fontconfig>
|
||||
@@ -0,0 +1,604 @@
|
||||
##############################################################################
|
||||
# Globals Glances parameters
|
||||
##############################################################################
|
||||
|
||||
[global]
|
||||
# Does Glances should check if a newer version is available on PyPI ?
|
||||
check_update=false
|
||||
# History size (maximum number of values)
|
||||
# Default is 28800: 1 day with 1 point every 3 seconds
|
||||
history_size=28800
|
||||
|
||||
##############################################################################
|
||||
# User interface
|
||||
##############################################################################
|
||||
|
||||
[outputs]
|
||||
# Theme name for the Curses interface: black or white
|
||||
curse_theme=black
|
||||
# Limit the number of processes to display in the WebUI
|
||||
max_processes_display=30
|
||||
|
||||
##############################################################################
|
||||
# plugins
|
||||
##############################################################################
|
||||
|
||||
[quicklook]
|
||||
# Set to true to disable a plugin
|
||||
# Note: you can also disable it from the command line (see --disable-plugin <plugin_name>)
|
||||
disable=False
|
||||
# Graphical percentage char used in the terminal user interface (default is |)
|
||||
percentage_char=|
|
||||
# Define CPU, MEM and SWAP thresholds in %
|
||||
cpu_careful=50
|
||||
cpu_warning=70
|
||||
cpu_critical=90
|
||||
mem_careful=50
|
||||
mem_warning=70
|
||||
mem_critical=90
|
||||
swap_careful=50
|
||||
swap_warning=70
|
||||
swap_critical=90
|
||||
|
||||
[cpu]
|
||||
disable=False
|
||||
# Default values if not defined: 50/70/90 (except for iowait)
|
||||
user_careful=50
|
||||
user_warning=70
|
||||
user_critical=90
|
||||
#user_log=False
|
||||
#user_critical_action=echo {{user}} {{value}} {{max}} > /tmp/cpu.alert
|
||||
system_careful=50
|
||||
system_warning=70
|
||||
system_critical=90
|
||||
steal_careful=50
|
||||
steal_warning=70
|
||||
steal_critical=90
|
||||
#steal_log=True
|
||||
# I/O wait percentage should be lower than 1/# (Logical CPU cores)
|
||||
# Leave commented to just use the default config (1/#-20% / 1/#-10% / 1/#)
|
||||
#iowait_careful=30
|
||||
#iowait_warning=40
|
||||
#iowait_critical=50
|
||||
# Context switch limit (core / second)
|
||||
# Leave commented to just use the default config (critical is 50000*# (Logical CPU cores)
|
||||
#ctx_switches_careful=10000
|
||||
#ctx_switches_warning=12000
|
||||
#ctx_switches_critical=14000
|
||||
|
||||
[percpu]
|
||||
disable=False
|
||||
# Define CPU thresholds in %
|
||||
# Default values if not defined: 50/70/90
|
||||
user_careful=50
|
||||
user_warning=70
|
||||
user_critical=90
|
||||
iowait_careful=50
|
||||
iowait_warning=70
|
||||
iowait_critical=90
|
||||
system_careful=50
|
||||
system_warning=70
|
||||
system_critical=90
|
||||
|
||||
[gpu]
|
||||
disable=False
|
||||
# Default processor values if not defined: 50/70/90
|
||||
proc_careful=50
|
||||
proc_warning=70
|
||||
proc_critical=90
|
||||
# Default memory values if not defined: 50/70/90
|
||||
mem_careful=50
|
||||
mem_warning=70
|
||||
mem_critical=90
|
||||
|
||||
[mem]
|
||||
disable=False
|
||||
# Define RAM thresholds in %
|
||||
# Default values if not defined: 50/70/90
|
||||
careful=50
|
||||
#careful_action_repeat=echo {{percent}} >> /tmp/memory.alert
|
||||
warning=70
|
||||
critical=90
|
||||
|
||||
[memswap]
|
||||
disable=False
|
||||
# Define SWAP thresholds in %
|
||||
# Default values if not defined: 50/70/90
|
||||
careful=50
|
||||
warning=70
|
||||
critical=90
|
||||
|
||||
[load]
|
||||
disable=False
|
||||
# Define LOAD thresholds
|
||||
# Value * number of cores
|
||||
# Default values if not defined: 0.7/1.0/5.0 per number of cores
|
||||
# Source: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages
|
||||
# http://www.linuxjournal.com/article/9001
|
||||
careful=0.7
|
||||
warning=1.0
|
||||
critical=5.0
|
||||
#log=False
|
||||
|
||||
[network]
|
||||
disable=False
|
||||
# Default bitrate thresholds in % of the network interface speed
|
||||
# Default values if not defined: 70/80/90
|
||||
rx_careful=70
|
||||
rx_warning=80
|
||||
rx_critical=90
|
||||
tx_careful=70
|
||||
tx_warning=80
|
||||
tx_critical=90
|
||||
# Define the list of hidden network interfaces (comma-separated regexp)
|
||||
#hide=docker.*,lo
|
||||
# WLAN 0 alias
|
||||
#wlan0_alias=Wireless IF
|
||||
# It is possible to overwrite the bitrate thresholds per interface
|
||||
# WLAN 0 Default limits (in bits per second aka bps) for interface bitrate
|
||||
#wlan0_rx_careful=4000000
|
||||
#wlan0_rx_warning=5000000
|
||||
#wlan0_rx_critical=6000000
|
||||
#wlan0_rx_log=True
|
||||
#wlan0_tx_careful=700000
|
||||
#wlan0_tx_warning=900000
|
||||
#wlan0_tx_critical=1000000
|
||||
#wlan0_tx_log=True
|
||||
|
||||
[connections]
|
||||
# Display additional information about TCP connections
|
||||
# This plugin is disabled by default
|
||||
disable=True
|
||||
# nf_conntrack thresholds in %
|
||||
nf_conntrack_percent_careful=70
|
||||
nf_conntrack_percent_warning=80
|
||||
nf_conntrack_percent_critical=90
|
||||
|
||||
[wifi]
|
||||
disable=False
|
||||
# Define the list of hidden wireless network interfaces (comma-separated regexp)
|
||||
hide=lo,docker.*
|
||||
# Define SIGNAL thresholds in db (lower is better...)
|
||||
# Based on: http://serverfault.com/questions/501025/industry-standard-for-minimum-wifi-signal-strength
|
||||
careful=-65
|
||||
warning=-75
|
||||
critical=-85
|
||||
|
||||
[diskio]
|
||||
disable=False
|
||||
# Define the list of hidden disks (comma-separated regexp)
|
||||
#hide=sda2,sda5,loop.*
|
||||
hide=loop.*,/dev/loop*
|
||||
# Alias for sda1
|
||||
#sda1_alias=InternalDisk
|
||||
|
||||
[fs]
|
||||
disable=False
|
||||
# Define the list of hidden file system (comma-separated regexp)
|
||||
hide=/boot.*,/snap.*
|
||||
# Define filesystem space thresholds in %
|
||||
# Default values if not defined: 50/70/90
|
||||
# It is also possible to define per mount point value
|
||||
# Example: /_careful=40
|
||||
careful=50
|
||||
warning=70
|
||||
critical=90
|
||||
# Allow additional file system types (comma-separated FS type)
|
||||
#allow=zfs
|
||||
|
||||
[irq]
|
||||
# Documentation: https://glances.readthedocs.io/en/stable/aoa/irq.html
|
||||
# This plugin is disabled by default
|
||||
disable=True
|
||||
|
||||
[folders]
|
||||
# Documentation: https://glances.readthedocs.io/en/stable/aoa/folders.html
|
||||
disable=False
|
||||
# Define a folder list to monitor
|
||||
# The list is composed of items (list_#nb <= 10)
|
||||
# An item is defined by:
|
||||
# * path: absolute path
|
||||
# * careful: optional careful threshold (in MB)
|
||||
# * warning: optional warning threshold (in MB)
|
||||
# * critical: optional critical threshold (in MB)
|
||||
# * refresh: interval in second between two refreshs
|
||||
#folder_1_path=/tmp
|
||||
#folder_1_careful=2500
|
||||
#folder_1_warning=3000
|
||||
#folder_1_critical=3500
|
||||
#folder_1_refresh=60
|
||||
#folder_2_path=/home/nicolargo/Videos
|
||||
#folder_2_warning=17000
|
||||
#folder_2_critical=20000
|
||||
#folder_3_path=/nonexisting
|
||||
#folder_4_path=/root
|
||||
|
||||
[raid]
|
||||
# Documentation: https://glances.readthedocs.io/en/stable/aoa/raid.html
|
||||
# This plugin is disabled by default
|
||||
disable=True
|
||||
|
||||
[smart]
|
||||
# Documentation: https://glances.readthedocs.io/en/stable/aoa/smart.html
|
||||
# This plugin is disabled by default
|
||||
disable=True
|
||||
|
||||
[hddtemp]
|
||||
disable=False
|
||||
# Define hddtemp server IP and port (default is 127.0.0.1 and 7634 (TCP))
|
||||
host=127.0.0.1
|
||||
port=7634
|
||||
|
||||
[sensors]
|
||||
# This plugin is disable by default because on some system, the PsUtil
|
||||
# consume a lot of CPU to grab the stats...
|
||||
disable=True
|
||||
# Sensors core thresholds (in Celsius...)
|
||||
# Default values if not defined: 60/70/80
|
||||
temperature_core_careful=60
|
||||
temperature_core_warning=70
|
||||
temperature_core_critical=80
|
||||
# Temperatures threshold in °C for hddtemp
|
||||
# Default values if not defined: 45/52/60
|
||||
temperature_hdd_careful=45
|
||||
temperature_hdd_warning=52
|
||||
temperature_hdd_critical=60
|
||||
# Battery threshold in %
|
||||
battery_careful=80
|
||||
battery_warning=90
|
||||
battery_critical=95
|
||||
# Sensors alias
|
||||
#temp1_alias=Motherboard 0
|
||||
#temp2_alias=Motherboard 1
|
||||
#core 0_alias=CPU Core 0
|
||||
#core 1_alias=CPU Core 1
|
||||
|
||||
[processlist]
|
||||
disable=False
|
||||
# Sort key: if not defined, the sort is automatically done by Glances (recommended)
|
||||
# Should be one of the following:
|
||||
# cpu_percent, memory_percent, io_counters, name, cpu_times, username
|
||||
#sort_key=memory_percent
|
||||
# Define CPU/MEM (per process) thresholds in %
|
||||
# Default values if not defined: 50/70/90
|
||||
cpu_careful=50
|
||||
cpu_warning=70
|
||||
cpu_critical=90
|
||||
mem_careful=50
|
||||
mem_warning=70
|
||||
mem_critical=90
|
||||
#
|
||||
# Nice priorities range from -20 to 19.
|
||||
# Configure nice levels using a comma separated list.
|
||||
#
|
||||
# Nice: Example 1, non-zero is warning (default behavior)
|
||||
nice_warning=-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
|
||||
#
|
||||
# Nice: Example 2, low priority processes escalate from careful to critical
|
||||
#nice_careful=1,2,3,4,5,6,7,8,9
|
||||
#nice_warning=10,11,12,13,14
|
||||
#nice_critical=15,16,17,18,19
|
||||
|
||||
[ports]
|
||||
disable=False
|
||||
# Interval in second between two scans
|
||||
# Ports scanner plugin configuration
|
||||
refresh=30
|
||||
# Set the default timeout (in second) for a scan (can be overwritten in the scan list)
|
||||
timeout=3
|
||||
# If port_default_gateway is True, add the default gateway on top of the scan list
|
||||
port_default_gateway=True
|
||||
#
|
||||
# Define the scan list (1 < x < 255)
|
||||
# port_x_host (name or IP) is mandatory
|
||||
# port_x_port (TCP port number) is optional (if not set, use ICMP)
|
||||
# port_x_description is optional (if not set, define to host:port)
|
||||
# port_x_timeout is optional and overwrite the default timeout value
|
||||
# port_x_rtt_warning is optional and defines the warning threshold in ms
|
||||
#
|
||||
#port_1_host=192.168.0.1
|
||||
#port_1_port=80
|
||||
#port_1_description=Home Box
|
||||
#port_1_timeout=1
|
||||
#port_2_host=www.free.fr
|
||||
#port_2_description=My ISP
|
||||
#port_3_host=www.google.com
|
||||
#port_3_description=Internet ICMP
|
||||
#port_3_rtt_warning=1000
|
||||
#port_4_description=Internet Web
|
||||
#port_4_host=www.google.com
|
||||
#port_4_port=80
|
||||
#port_4_rtt_warning=1000
|
||||
#
|
||||
# Define Web (URL) monitoring list (1 < x < 255)
|
||||
# web_x_url is the URL to monitor (example: http://my.site.com/folder)
|
||||
# web_x_description is optional (if not set, define to URL)
|
||||
# web_x_timeout is optional and overwrite the default timeout value
|
||||
# web_x_rtt_warning is optional and defines the warning respond time in ms (approximatively)
|
||||
#
|
||||
#web_1_url=https://blog.nicolargo.com
|
||||
#web_1_description=My Blog
|
||||
#web_1_rtt_warning=3000
|
||||
#web_2_url=https://github.com
|
||||
#web_3_url=http://www.google.fr
|
||||
#web_3_description=Google Fr
|
||||
#web_4_url=https://blog.nicolargo.com/nonexist
|
||||
#web_4_description=Intranet
|
||||
|
||||
[docker]
|
||||
disable=False
|
||||
#cpu_careful=50
|
||||
# Thresholds for CPU and MEM (in %)
|
||||
#cpu_warning=70
|
||||
#cpu_critical=90
|
||||
#mem_careful=20
|
||||
#mem_warning=50
|
||||
#mem_critical=70
|
||||
#
|
||||
# Per container thresholds
|
||||
#containername_cpu_careful=10
|
||||
#containername_cpu_warning=20
|
||||
#containername_cpu_critical=30
|
||||
#
|
||||
# By default, Glances only display running containers
|
||||
# Set the following key to True to display all containers
|
||||
all=False
|
||||
|
||||
##############################################################################
|
||||
# Client/server
|
||||
##############################################################################
|
||||
|
||||
[serverlist]
|
||||
# Define the static servers list
|
||||
#server_1_name=localhost
|
||||
#server_1_alias=My local PC
|
||||
#server_1_port=61209
|
||||
#server_2_name=localhost
|
||||
#server_2_port=61235
|
||||
#server_3_name=192.168.0.17
|
||||
#server_3_alias=Another PC on my network
|
||||
#server_3_port=61209
|
||||
#server_4_name=pasbon
|
||||
#server_4_port=61237
|
||||
|
||||
[passwords]
|
||||
# Define the passwords list
|
||||
# Syntax: host=password
|
||||
# Where: host is the hostname
|
||||
# password is the clear password
|
||||
# Additionally (and optionally) a default password could be defined
|
||||
#localhost=2000
|
||||
#default=defaultpassword
|
||||
|
||||
##############################################################################
|
||||
# Exports
|
||||
##############################################################################
|
||||
|
||||
[graph]
|
||||
# Configuration for the --export graph option
|
||||
# Set the path where the graph (.svg files) will be created
|
||||
# Can be overwrite by the --graph-path command line option
|
||||
path=/tmp
|
||||
# It is possible to generate the graphs automatically by setting the
|
||||
# generate_every to a non zero value corresponding to the seconds between
|
||||
# two generation. Set it to 0 to disable graph auto generation.
|
||||
generate_every=60
|
||||
# See followings configuration keys definitions in the Pygal lib documentation
|
||||
# http://pygal.org/en/stable/documentation/index.html
|
||||
width=800
|
||||
height=600
|
||||
style=DarkStyle
|
||||
|
||||
[influxdb]
|
||||
# Configuration for the --export influxdb option
|
||||
# https://influxdb.com/
|
||||
host=localhost
|
||||
port=8086
|
||||
protocol=http
|
||||
user=root
|
||||
password=root
|
||||
db=glances
|
||||
# Prefix will be added for all measurement name
|
||||
# Ex: prefix=foo
|
||||
# => foo.cpu
|
||||
# => foo.mem
|
||||
# You can also use dynamic values
|
||||
#prefix=`hostname`
|
||||
prefix=localhost
|
||||
# Tags will be added for all measurements
|
||||
#tags=foo:bar,spam:eggs
|
||||
# You can also use dynamic values
|
||||
#tags=system:`uname -s`
|
||||
|
||||
[cassandra]
|
||||
# Configuration for the --export cassandra option
|
||||
# Also works for the ScyllaDB
|
||||
# https://influxdb.com/ or http://www.scylladb.com/
|
||||
host=localhost
|
||||
port=9042
|
||||
protocol_version=3
|
||||
keyspace=glances
|
||||
replication_factor=2
|
||||
# If not define, table name is set to host key
|
||||
table=localhost
|
||||
# If not define, username and password will not be used
|
||||
#username=cassandra
|
||||
#password=password
|
||||
|
||||
[opentsdb]
|
||||
# Configuration for the --export opentsdb option
|
||||
# http://opentsdb.net/
|
||||
host=localhost
|
||||
port=4242
|
||||
#prefix=glances
|
||||
#tags=foo:bar,spam:eggs
|
||||
|
||||
[statsd]
|
||||
# Configuration for the --export statsd option
|
||||
# https://github.com/etsy/statsd
|
||||
host=localhost
|
||||
port=8125
|
||||
#prefix=glances
|
||||
|
||||
[elasticsearch]
|
||||
# Configuration for the --export elasticsearch option
|
||||
# Data are available via the ES RESTful API. ex: URL/<index>/cpu/system
|
||||
# https://www.elastic.co
|
||||
host=localhost
|
||||
port=9200
|
||||
index=glances
|
||||
|
||||
[riemann]
|
||||
# Configuration for the --export riemann option
|
||||
# http://riemann.io
|
||||
host=localhost
|
||||
port=5555
|
||||
|
||||
[rabbitmq]
|
||||
# Configuration for the --export rabbitmq option
|
||||
host=localhost
|
||||
port=5672
|
||||
user=guest
|
||||
password=guest
|
||||
queue=glances_queue
|
||||
|
||||
[mqtt]
|
||||
# Configuration for the --export mqtt option
|
||||
host=localhost
|
||||
port=8883
|
||||
user=guest
|
||||
password=guest
|
||||
topic=glances
|
||||
tls=true
|
||||
|
||||
[couchdb]
|
||||
# Configuration for the --export couchdb option
|
||||
# https://www.couchdb.org
|
||||
host=localhost
|
||||
port=5984
|
||||
db=glances
|
||||
# user and password are optional (comment if not configured on the server side)
|
||||
#user=root
|
||||
#password=root
|
||||
|
||||
[kafka]
|
||||
# Configuration for the --export kafka option
|
||||
# http://kafka.apache.org/
|
||||
host=localhost
|
||||
port=9092
|
||||
topic=glances
|
||||
#compression=gzip
|
||||
# Tags will be added for all events
|
||||
#tags=foo:bar,spam:eggs
|
||||
# You can also use dynamic values
|
||||
#tags=hostname:`hostname -f`
|
||||
|
||||
[zeromq]
|
||||
# Configuration for the --export zeromq option
|
||||
# http://www.zeromq.org
|
||||
# Use * to bind on all interfaces
|
||||
host=*
|
||||
port=5678
|
||||
# Glances envelopes the stats in a publish message with two frames:
|
||||
# - First frame containing the following prefix (STRING)
|
||||
# - Second frame with the Glances plugin name (STRING)
|
||||
# - Third frame with the Glances plugin stats (JSON)
|
||||
prefix=G
|
||||
|
||||
[prometheus]
|
||||
# Configuration for the --export prometheus option
|
||||
# https://prometheus.io
|
||||
# Create a Prometheus exporter listening on localhost:9091 (default configuration)
|
||||
# Metric are exporter using the following name:
|
||||
# <prefix>_<plugin>_<stats>{labelkey:labelvalue}
|
||||
# Note: You should add this exporter to your Prometheus server configuration:
|
||||
# scrape_configs:
|
||||
# - job_name: 'glances_exporter'
|
||||
# scrape_interval: 5s
|
||||
# static_configs:
|
||||
# - targets: ['localhost:9091']
|
||||
#
|
||||
# Labels will be added for all measurements (default is src:glances)
|
||||
# labels=foo:bar,spam:eggs
|
||||
# You can also use dynamic values
|
||||
# labels=system:`uname -s`
|
||||
#
|
||||
host=localhost
|
||||
port=9091
|
||||
#prefix=glances
|
||||
labels=src:glances
|
||||
|
||||
[restful]
|
||||
# Configuration for the --export restful option
|
||||
# Example, export to http://localhost:6789/
|
||||
host=localhost
|
||||
port=6789
|
||||
protocol=http
|
||||
path=/
|
||||
|
||||
##############################################################################
|
||||
# AMPS
|
||||
# * enable: Enable (true) or disable (false) the AMP
|
||||
# * regex: Regular expression to filter the process(es)
|
||||
# * refresh: The AMP is executed every refresh seconds
|
||||
# * one_line: (optional) Force (if true) the AMP to be displayed in one line
|
||||
# * command: (optional) command to execute when the process is detected (thk to the regex)
|
||||
# * countmin: (optional) minimal number of processes
|
||||
# A warning will be displayed if number of process < count
|
||||
# * countmax: (optional) maximum number of processes
|
||||
# A warning will be displayed if number of process > count
|
||||
# * <foo>: Others variables can be defined and used in the AMP script
|
||||
##############################################################################
|
||||
|
||||
[amp_dropbox]
|
||||
# Use the default AMP (no dedicated AMP Python script)
|
||||
# Check if the Dropbox daemon is running
|
||||
# Every 3 seconds, display the 'dropbox status' command line
|
||||
enable=false
|
||||
regex=.*dropbox.*
|
||||
refresh=3
|
||||
one_line=false
|
||||
command=dropbox status
|
||||
countmin=1
|
||||
|
||||
[amp_python]
|
||||
# Use the default AMP (no dedicated AMP Python script)
|
||||
# Monitor all the Python scripts
|
||||
# Alert if more than 20 Python scripts are running
|
||||
enable=false
|
||||
regex=.*python.*
|
||||
refresh=3
|
||||
countmax=20
|
||||
|
||||
[amp_conntrack]
|
||||
# Use comma separated for multiple commands (no space around the comma)
|
||||
enable=false
|
||||
regex=\/sbin\/init
|
||||
refresh=30
|
||||
one_line=false
|
||||
command=sysctl net.netfilter.nf_conntrack_count;sysctl net.netfilter.nf_conntrack_max
|
||||
|
||||
[amp_nginx]
|
||||
# Use the NGinx AMP
|
||||
# Nginx status page should be enable (https://easyengine.io/tutorials/nginx/status-page/)
|
||||
enable=false
|
||||
regex=\/usr\/sbin\/nginx
|
||||
refresh=60
|
||||
one_line=false
|
||||
status_url=http://localhost/nginx_status
|
||||
|
||||
[amp_systemd]
|
||||
# Use the Systemd AMP
|
||||
enable=false
|
||||
regex=\/lib\/systemd\/systemd
|
||||
refresh=30
|
||||
one_line=true
|
||||
systemctl_cmd=/bin/systemctl --plain
|
||||
|
||||
[amp_systemv]
|
||||
# Use the Systemv AMP
|
||||
enable=false
|
||||
regex=\/sbin\/init
|
||||
refresh=30
|
||||
one_line=true
|
||||
service_cmd=/usr/bin/service --status-all
|
||||
@@ -0,0 +1,39 @@
|
||||
# Beware! This file is rewritten by htop when settings are changed in the interface.
|
||||
# The parser is also very primitive, and not human-friendly.
|
||||
fields=0 48 17 18 38 39 40 2 46 47 49 1
|
||||
sort_key=47
|
||||
sort_direction=1
|
||||
tree_sort_key=0
|
||||
tree_sort_direction=1
|
||||
hide_kernel_threads=1
|
||||
hide_userland_threads=0
|
||||
shadow_other_users=0
|
||||
show_thread_names=0
|
||||
show_program_path=1
|
||||
highlight_base_name=0
|
||||
highlight_megabytes=1
|
||||
highlight_threads=1
|
||||
highlight_changes=0
|
||||
highlight_changes_delay_secs=5
|
||||
find_comm_in_cmdline=1
|
||||
strip_exe_from_cmdline=1
|
||||
show_merged_command=0
|
||||
tree_view=1
|
||||
tree_view_always_by_pid=0
|
||||
header_margin=1
|
||||
detailed_cpu_time=0
|
||||
cpu_count_from_one=1
|
||||
show_cpu_usage=1
|
||||
show_cpu_frequency=0
|
||||
show_cpu_temperature=0
|
||||
degree_fahrenheit=0
|
||||
update_process_names=0
|
||||
account_guest_in_cpu_meter=0
|
||||
color_scheme=6
|
||||
enable_mouse=1
|
||||
delay=15
|
||||
left_meters=CPU Blank LeftCPUs2 Blank Memory
|
||||
left_meter_modes=1 2 1 2 1
|
||||
right_meters=Uptime Blank RightCPUs2 Blank Swap
|
||||
right_meter_modes=1 2 1 2 1
|
||||
hide_function_bar=0
|
||||
+169
-113
@@ -1,103 +1,112 @@
|
||||
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
|
||||
|
||||
# Autostart w/ i3 #######################################################################
|
||||
|
||||
# General
|
||||
exec_always --no-startup-id fix_xcursor
|
||||
|
||||
# display
|
||||
exec --no-startup-id "nvidia-settings --load-config-only"
|
||||
exec --no-startup-id "picom -b --blur-background"
|
||||
exec --no-startup-id zsh ~/.config/polybar/launch_polybar.sh
|
||||
exec --no-startup-id "nitrogen --restore"
|
||||
exec --no-startup-id "unclutter --timeout 5 --jitter 5 --ignore-scrolling"
|
||||
|
||||
# audio
|
||||
#exec --no-startup-id zsh ~/Userdata/Scripts/restart_pulseaudio.sh
|
||||
exec --no-startup-id zsh -c "pactl unload-module module-role-cork"
|
||||
|
||||
# extra
|
||||
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
exec --no-startup-id "rfkill unblock bluetooth"
|
||||
exec --no-startup-id blueberry-tray
|
||||
#exec --no-startup-id onboard
|
||||
exec --no-startup-id nm-applet
|
||||
#exec --no-startup-id zsh ~/Userdata/Scripts/launch_insync.sh
|
||||
exec --no-startup-id "nextcloud"
|
||||
|
||||
|
||||
################################################################################################
|
||||
# General Hotkeys
|
||||
#################################################################################################
|
||||
# Variables
|
||||
|
||||
# Set mod key (Mod1=<Alt>, Mod4=<Super>)
|
||||
set $mod Mod4
|
||||
set $alt Mod1
|
||||
|
||||
set $terminal alacritty
|
||||
set $backupTerminal xterm
|
||||
|
||||
set $borderThickness 2
|
||||
|
||||
# Autostart w/ i3 #######################################################################
|
||||
exec --no-startup-id "bash ~/.config/autostart.sh"
|
||||
|
||||
################################################################################################
|
||||
# General Hotkeys
|
||||
|
||||
# set default desktop layout (default is tiling)
|
||||
# workspace_layout tabbed <stacking|tabbed>
|
||||
|
||||
# Configure border style <normal|1pixel|pixel xx|none|pixel>
|
||||
new_window none
|
||||
new_float none
|
||||
default_border none
|
||||
new_window pixel $borderThickness
|
||||
new_float pixel $borderThickness
|
||||
default_border pixel $borderThickness
|
||||
|
||||
# Hide borders
|
||||
#hide_edge_borders none
|
||||
|
||||
# Change Borders
|
||||
bindsym $mod+u border none
|
||||
bindsym $mod+y border pixel 2
|
||||
bindsym $mod+n border normal
|
||||
bindsym $mod+b border pixel $borderThickness
|
||||
bindsym $mod+Shift+b border normal
|
||||
bindsym $mod+Ctrl+b border none
|
||||
|
||||
# Font for window titles
|
||||
font xft:Roboto Mono 11
|
||||
font xft:Roboto Regular 10
|
||||
|
||||
# Use Mouse+$mod to drag floating windows
|
||||
floating_modifier $mod
|
||||
|
||||
# Kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
bindsym $mod+Ctrl+q exec --no-startup-id "xdotool windowclose $(xdotool getactivewindow)"
|
||||
|
||||
# Terminal
|
||||
bindsym $mod+Return exec --no-startup-id alacritty
|
||||
bindsym $mod+r exec --no-startup-id $terminal
|
||||
bindsym $mod+Shift+r exec --no-startup-id "$terminal --class 'floatingWindow, floatingWindow'"
|
||||
bindsym $mod+Ctrl+r exec --no-startup-id $backupTerminal
|
||||
|
||||
bindsym $mod+Return exec --no-startup-id $terminal
|
||||
bindsym $mod+Shift+Return exec --no-startup-id "$terminal --class 'floatingWindow, floatingWindow'"
|
||||
bindsym $mod+Ctrl+Return exec --no-startup-id $backupTerminal
|
||||
|
||||
# System Monitor
|
||||
bindsym Control+Shift+Escape exec --no-startup-id "alacritty -e sh -c 'htop'"
|
||||
|
||||
# Type Clipboad
|
||||
bindsym $mod+Shift+v exec --no-startup-id sh ~/Userdata/Scripts/xclip_type.sh
|
||||
bindsym Control+Shift+Escape exec --no-startup-id "$terminal -e sh -c 'htop'"
|
||||
|
||||
# Type Clipboard
|
||||
bindsym $mod+Mod1+V exec --no-startup-id sleep 1 && xdotool type $(xclip -o)
|
||||
|
||||
################################################################################################
|
||||
# Program Launchers
|
||||
|
||||
# rofi
|
||||
bindsym $mod+d exec --no-startup-id "rofi -show drun -show-icons -icon-theme Adwaita -drun-display-format {name} -sort -sort-method fzf"
|
||||
bindsym $mod+Tab exec --no-startup-id "rofi -show window -show-icons -icon-theme Adwaita -drun-display-format {name} -sort -sort-method fzf"
|
||||
bindsym $mod+e exec --no-startup-id "rofi -show drun"
|
||||
bindsym $mod+Tab exec --no-startup-id "rofi -show window"
|
||||
|
||||
# dmenu
|
||||
#bindsym $mod+d exec --no-startup-id dmenu_recency
|
||||
#bindsym $mod+e exec --no-startup-id dmenu_recency
|
||||
|
||||
# Clipster
|
||||
bindsym $mod+c exec --no-startup-id clipster -sp
|
||||
|
||||
################################################################################################
|
||||
# Music
|
||||
|
||||
# Pulseaudio control panel
|
||||
|
||||
bindsym $mod+Shift+p exec --no-startup-id pavucontrol
|
||||
|
||||
# Volume control
|
||||
|
||||
bindsym XF86AudioMute exec "bash ~/Scripts/Display/volume.sh mute"
|
||||
bindsym XF86AudioRaiseVolume exec "bash ~/Scripts/Display/volume.sh up"
|
||||
bindsym XF86AudioLowerVolume exec "bash ~/Scripts/Display/volume.sh down"
|
||||
|
||||
#bindsym XF86AudioMute exec "volumectl toggle"
|
||||
#bindsym XF86AudioRaiseVolume exec "volumectl up"
|
||||
#bindsym XF86AudioLowerVolume exec "volumectl down"
|
||||
|
||||
# Player control
|
||||
|
||||
bindsym XF86AudioPlay exec "playerctl play-pause"
|
||||
bindsym XF86AudioNext exec "playerctl next"
|
||||
bindsym XF86AudioPrev exec "playerctl previous"
|
||||
|
||||
bindsym $mod+slash exec --no-startup-id "playerctl play-pause"
|
||||
bindsym $mod+period exec --no-startup-id "playerctl next"
|
||||
bindsym $mod+comma exec --no-startup-id "playerctl previous"
|
||||
|
||||
exec --no-startup-id pulseaudio
|
||||
#exec --no-startup-id pa-applet
|
||||
bindsym $mod+Ctrl+m exec --no-startup-id pavucontrol
|
||||
|
||||
# Pulse Audio controls
|
||||
# run amixer sset Master on
|
||||
bindsym XF86AudioMute exec "amixer sset 'Master' toggle;"
|
||||
bindsym XF86AudioLowerVolume exec "amixer sset 'Master' 5%-;"
|
||||
bindsym XF86AudioRaiseVolume exec "amixer sset 'Master' 5%+;"
|
||||
|
||||
|
||||
################################################################################################
|
||||
# Screen
|
||||
|
||||
# Quick Lock
|
||||
#bindsym $mod+l exec --no-startup-id "lxqt-leave --lockscreen"
|
||||
bindsym $mod+l exec --no-startup-id bash ~/Userdata/Scripts/Display/glitchlock/glitchlock.sh lock
|
||||
|
||||
# Hide / Unhide statusbar
|
||||
bindsym $mod+m exec --no-startup-id polybar-msg cmd toggle
|
||||
|
||||
@@ -111,19 +120,20 @@ bindsym XF86MonBrightnessDown exec "xbacklight -dec 10"
|
||||
# Screenshot [fullscreen, select area, select area with 3 second delay]
|
||||
bindsym Print exec --no-startup-id "flameshot gui"
|
||||
bindsym $mod+Print exec --no-startup-id "flameshot full"
|
||||
#bindsym $mod+Shift+Print exec --no-startup-id deepin-screenshot -d 3 -s /home/sim/Pictures/Screenshots
|
||||
|
||||
# Firefox
|
||||
bindsym $mod+F2 exec --no-startup-id firefox
|
||||
bindsym $mod+Shift+F2 exec --no-startup-id "firefox google.com"
|
||||
bindsym $mod+Shift+F4 exec --no-startup-id "firefox -new-window web.whatsapp.com"
|
||||
|
||||
# Nautilus
|
||||
bindsym $mod+F3 exec --no-startup-id nautilus
|
||||
# File Manager
|
||||
bindsym $mod+F3 exec --no-startup-id thunar
|
||||
|
||||
# XKill
|
||||
bindsym $mod+Ctrl+x --release exec --no-startup-id xkill
|
||||
|
||||
# Telegram
|
||||
bindsym $mod+F4 exec telegram-desktop
|
||||
bindsym $mod+F4 exec --no-startup-id telegram-desktop
|
||||
|
||||
|
||||
################################################################################################
|
||||
@@ -136,43 +146,53 @@ bindsym $mod+Left focus left
|
||||
bindsym $mod+Right focus right
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+a focus left
|
||||
bindsym $mod+d focus right
|
||||
bindsym $mod+w focus up
|
||||
bindsym $mod+s focus down
|
||||
|
||||
# move focused window arrow keys
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
bindsym $mod+Shift+a move left
|
||||
bindsym $mod+Shift+s move down
|
||||
bindsym $mod+Shift+w move up
|
||||
bindsym $mod+Shift+d move right
|
||||
|
||||
# workspace back and forth (with/without active container)
|
||||
workspace_auto_back_and_forth yes
|
||||
bindsym $mod+b workspace back_and_forth
|
||||
bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth
|
||||
#bindsym $mod+x workspace back_and_forth
|
||||
#bindsym $mod+Shift+x move container to workspace back_and_forth; workspace back_and_forth
|
||||
|
||||
# split orientation
|
||||
bindsym $mod+h split h;exec notify-send 'tile horizontally'
|
||||
bindsym $mod+v split v;exec notify-send 'tile vertically'
|
||||
bindsym $mod+q split toggle
|
||||
bindsym $mod+x split toggle
|
||||
bindsym $mod+Shift+x split h;exec notify-send 'Tile horizontally'
|
||||
bindsym $mod+Ctrl+x split v;exec notify-send 'Tile vertically'
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
bindsym $mod+t layout toggle split;
|
||||
bindsym $mod+Shift+t layout stacking;exec notify-send 'Stacking'
|
||||
bindsym $mod+Ctrl+t layout tabbed;exec notify-send 'Tabbed'
|
||||
|
||||
# toggle fullscreen mode for the focused container
|
||||
bindsym $mod+f fullscreen toggle
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
bindsym $mod+i layout stacking
|
||||
bindsym $mod+o layout tabbed
|
||||
bindsym $mod+p layout toggle split
|
||||
|
||||
# toggle tiling / floating
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
bindsym $mod+space floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
bindsym $mod+space focus mode_toggle
|
||||
bindsym $mod+Ctrl+space focus mode_toggle
|
||||
|
||||
# toggle sticky
|
||||
bindsym $mod+Shift+s sticky toggle
|
||||
bindsym $mod+Shift+space sticky toggle
|
||||
|
||||
#navigate workspaces next / previous
|
||||
bindsym $mod+Ctrl+Right workspace next
|
||||
bindsym $mod+Ctrl+Left workspace prev
|
||||
bindsym $mod+Ctrl+d workspace next
|
||||
bindsym $mod+Ctrl+a workspace prev
|
||||
|
||||
|
||||
################################################################################################
|
||||
@@ -190,10 +210,9 @@ set $ws5 5
|
||||
set $ws6 6
|
||||
set $ws7 7
|
||||
set $ws8 8
|
||||
#set $ws9 9
|
||||
#set $ws10 10
|
||||
set $ws9 9:
|
||||
set $ws10 10:
|
||||
set $ws9 9
|
||||
set $ws10 10:0
|
||||
set $ws11 11:
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace $ws1
|
||||
@@ -206,6 +225,7 @@ bindsym $mod+7 workspace $ws7
|
||||
bindsym $mod+8 workspace $ws8
|
||||
bindsym $mod+9 workspace $ws9
|
||||
bindsym $mod+0 workspace $ws10
|
||||
bindsym $mod+$alt+1 workspace $ws11
|
||||
|
||||
# Move focused container to workspace
|
||||
bindsym $mod+Ctrl+1 move container to workspace $ws1
|
||||
@@ -218,6 +238,7 @@ bindsym $mod+Ctrl+7 move container to workspace $ws7
|
||||
bindsym $mod+Ctrl+8 move container to workspace $ws8
|
||||
bindsym $mod+Ctrl+9 move container to workspace $ws9
|
||||
bindsym $mod+Ctrl+0 move container to workspace $ws10
|
||||
bindsym $mod+$alt+Ctrl+1 move container to workspace $ws11
|
||||
|
||||
# Move to workspace with focused container
|
||||
bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1
|
||||
@@ -230,34 +251,48 @@ bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace $ws10; workspace $ws10
|
||||
bindsym $mod+$alt+Shift+1 move container to workspace $ws11; workspace $ws11
|
||||
|
||||
|
||||
################################################################################################
|
||||
# App / Window specific settings
|
||||
|
||||
# All windows have a 2 pixel border by defaultI
|
||||
for_window [class="^.*"] border pixel $borderThickness
|
||||
|
||||
# Open applications on specific workspaces
|
||||
assign [class="(?i)virtualbox"] $ws10
|
||||
for_window [class="Spotify"] move --no-auto-back-and-forth to workspace $ws11
|
||||
|
||||
#assign [class="Virt-manager"] $ws10
|
||||
#assign [title="WhatsApp*"] $ws9
|
||||
#assign [title="Telegram*"] $ws9
|
||||
#assign [title="TeamSpeak*"] $ws9
|
||||
|
||||
# Open specific applications in floating mode
|
||||
for_window [class="Lightdm-settings"] floating enable
|
||||
for_window [class="Lxappearance"] floating enable sticky enable border normal
|
||||
for_window [class="^.*"] none
|
||||
for_window [class="floatingWindow"] floating enable border pixel $borderThickness
|
||||
|
||||
for_window [title="Qalculate!"] floating enable border normal
|
||||
for_window [title="Insync"] floating enable
|
||||
for_window [title="Volume Control"] floating enable
|
||||
for_window [title="xopp 2 pdf"] floating enable
|
||||
for_window [title="Qalculate!"] floating enable border pixel $borderThickness
|
||||
for_window [title="Volume Control"] floating enable border pixel $borderThickness
|
||||
for_window [title="PulseAudio EqualizerI"] floating enable border pixel $borderThickness
|
||||
for_window [title="xopp 2 pdf"] floating enable border pixel $borderThickness
|
||||
for_window [title="Microsoft Teams Notification"] floating enable
|
||||
#for_window [class="dotnet"] floating enable
|
||||
|
||||
for_window [window_role="pop-up"] floating enable
|
||||
for_window [window_role="bubble"] floating enable
|
||||
for_window [window_role="task_dialog"] floating enable
|
||||
for_window [window_role="Preferences"] floating enable
|
||||
for_window [window_type="dialog"] floating enable
|
||||
for_window [window_type="menu"] floating enable
|
||||
|
||||
# switch to workspace with urgent window automatically
|
||||
for_window [urgent=latest] focus
|
||||
|
||||
# reload the configuration file
|
||||
#bindsym $mod+Shift+o reload
|
||||
bindsym $mod+Shift+o exec --no-startup-id "sh ~/.config/i3/reload_w_polybar.sh"
|
||||
|
||||
bindsym $mod+o reload
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym $mod+Shift+i reload
|
||||
bindsym $mod+Shift+o restart
|
||||
bindsym $mod+Ctrl+o exec --no-startup-id "sh ~/.config/polybar/launch.sh"
|
||||
|
||||
|
||||
################################################################################################
|
||||
@@ -267,12 +302,12 @@ bindsym $mod+Shift+i reload
|
||||
bindsym $mod+Escape mode "$mode_system"
|
||||
set $mode_system | [s]hutdown , [r]eboot , [p]owersave , [h]ibernate , [l]ock , [e]xit
|
||||
mode "$mode_system" {
|
||||
bindsym s exec --no-startup-id bash ~/Userdata/Scripts/glitchlock/glitchlock.sh shutdown, mode "default"
|
||||
bindsym r exec --no-startup-id bash ~/Userdata/Scripts/glitchlock/glitchlock.sh reboot, mode "default"
|
||||
bindsym p exec --no-startup-id bash ~/Userdata/Scripts/glitchlock/glitchlock.sh suspend, mode "default"
|
||||
bindsym h exec --no-startup-id bash ~/Userdata/Scripts/glitchlock/glitchlock.sh hibernate, mode "default"
|
||||
bindsym l exec --no-startup-id bash ~/Userdata/Scripts/glitchlock/glitchlock.sh lock, mode "default"
|
||||
bindsym e exec --no-startup-id bash ~/Userdata/Scripts/glitchlock/glitchlock.sh logout, mode "default"
|
||||
bindsym s exec --no-startup-id bash ~/Scripts/Display/glitchlock/glitchlock.sh shutdown, mode "default"
|
||||
bindsym r exec --no-startup-id bash ~/Scripts/Display/glitchlock/glitchlock.sh reboot, mode "default"
|
||||
bindsym p exec --no-startup-id bash ~/Scripts/Display/glitchlock/glitchlock.sh suspend, mode "default"
|
||||
bindsym h exec --no-startup-id bash ~/Scripts/Display/glitchlock/glitchlock.sh hibernate, mode "default"
|
||||
bindsym l exec --no-startup-id bash ~/Scripts/Display/glitchlock/glitchlock.sh lock, mode "default"
|
||||
bindsym e exit, mode "default"
|
||||
|
||||
# exit system mode: "Enter" or "Escape"
|
||||
bindsym Return mode "default"
|
||||
@@ -281,7 +316,7 @@ mode "$mode_system" {
|
||||
}
|
||||
|
||||
# Resize window (you can also use the mouse for that)
|
||||
bindsym $mod+r mode "| Resize "
|
||||
bindsym $mod+Shift+f mode "| Resize "
|
||||
mode "| Resize " {
|
||||
# These bindings trigger as soon as you enter the resize mode
|
||||
# for the arrow keys
|
||||
@@ -289,11 +324,19 @@ mode "| Resize " {
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
bindsym a resize shrink width 10 px or 10 ppt
|
||||
bindsym s resize grow height 10 px or 10 ppt
|
||||
bindsym w resize shrink height 10 px or 10 ppt
|
||||
bindsym d resize grow width 10 px or 10 ppt
|
||||
|
||||
bindsym Shift+Left resize shrink width 50 px or 50 ppt
|
||||
bindsym Shift+Down resize grow height 50 px or 50 ppt
|
||||
bindsym Shift+Up resize shrink height 50 px or 50 ppt
|
||||
bindsym Shift+Right resize grow width 50 px or 50 ppt
|
||||
bindsym Shift+a resize shrink width 50 px or 50 ppt
|
||||
bindsym Shift+s resize grow height 50 px or 50 ppt
|
||||
bindsym Shift+w resize shrink height 50 px or 50 ppt
|
||||
bindsym Shift+d resize grow width 50 px or 50 ppt
|
||||
|
||||
# exit resize mode: Enter or Escape
|
||||
bindsym Return mode "default"
|
||||
@@ -304,15 +347,24 @@ mode "| Resize " {
|
||||
################################################################################################
|
||||
# Themes / Colors / Design / Look and Feel
|
||||
|
||||
# Colors
|
||||
# class border backgr. text indic. child_border
|
||||
client.focused #e60012 #e60012 #ffffff #e60012
|
||||
client.focused_inactive #e60012 #691f1f #ffffff #691f1f
|
||||
client.unfocused #e60012 #691f1f #ffffff #691f1f
|
||||
client.urgent #f1a800 #f1a800 #ffffff #f1a800
|
||||
client.placeholder #000000 #000000 #ffffff #000000
|
||||
# XRDB colors
|
||||
set_from_resource $col_foreground foreground
|
||||
set_from_resource $col_background background
|
||||
|
||||
client.background #2B2C2B
|
||||
set_from_resource $col_urgent i3_urgent
|
||||
set_from_resource $col_focused i3_focused
|
||||
set_from_resource $col_unfocused i3_unfocused
|
||||
set_from_resource $col_indicator i3_indicator
|
||||
|
||||
# Colors
|
||||
# class border backgr. text indic. child_border
|
||||
client.focused $col_focused $col_focused $col_foreground $col_focused $col_focused
|
||||
client.focused_inactive $col_unfocused $col_indicator $col_foreground $col_indicator $col_indicator
|
||||
client.unfocused $col_unfocused $col_indicator $col_foreground $col_indicator $col_indicator
|
||||
client.urgent $col_unfocused $col_urgent $col_foreground $col_urgent $col_urgent
|
||||
client.placeholder $col_unfocused $col_unfocused $col_foreground $col_unfocused $col_unfocused
|
||||
|
||||
client.background $col_background
|
||||
|
||||
################################################
|
||||
# i3-gaps
|
||||
@@ -323,31 +375,34 @@ gaps outer 5
|
||||
|
||||
# Additionally, you can issue commands with the following syntax. This is useful to bind keys to changing the gap size.
|
||||
# gaps inner|outer current|all set|plus|minus <px>
|
||||
# gaps inner all set 10
|
||||
# gaps outer all plus 5
|
||||
#gaps inner all set 25
|
||||
#gaps outer all set 5
|
||||
|
||||
# Smart gaps (gaps used if only more than one container on the workspace)
|
||||
smart_gaps on
|
||||
# Smart gaps (gaps used if only more than one container on the workspace) (on | inverse_outer)
|
||||
smart_gaps inverse_outer
|
||||
|
||||
# Smart borders (draw borders around container only if it is not the only container on this workspace)
|
||||
# on|no_gaps (on=always activate and no_gaps=only activate if the gap size to the edge of the screen is 0)
|
||||
smart_borders on
|
||||
smart_borders no_gaps
|
||||
|
||||
# Press $mod+Shift+g to enter the gap mode. Choose o or i for modifying outer/inner gaps. Press one of + / - (in-/decrement for current workspace) or 0 (remove gaps for current workspace). If you also press Shift with these keys, the change will be global for all workspaces.
|
||||
set $mode_gaps Gaps: (o) outer, (i) inner
|
||||
set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
|
||||
set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)
|
||||
bindsym $mod+Shift+g mode "$mode_gaps"
|
||||
# Hide edge borders only if there is one window with no gaps
|
||||
hide_edge_borders smart_no_gaps
|
||||
|
||||
set $toggle_gaps Toggle gaps: (0) off / (1) on
|
||||
bindsym $mod+g mode "$toggle_gaps"
|
||||
mode "$toggle_gaps" {
|
||||
bindsym 1 mode "default", gaps inner all set 25, gaps outer all set 5
|
||||
bindsym 1 mode "default", gaps inner all set 25, gaps outer all set 5, gaps top all set 10
|
||||
bindsym 0 mode "default", gaps inner all set 0, gaps outer all set 0
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
# Press $mod+Shift+g to enter the gap mode. Choose o or i for modifying outer/inner gaps. Press one of + / - (in-/decrement for current workspace) or 0 (remove gaps for current workspace). If you also press Shift with these keys, the change will be global for all workspaces.
|
||||
set $mode_gaps Gaps: (o) outer, (i) inner
|
||||
set $mode_gaps_outer Outer Gaps: +|-|0 (this), Shift + +|-|0 (all)
|
||||
set $mode_gaps_inner Inner Gaps: +|-|0 (this), Shift + +|-|0 (all)
|
||||
bindsym $mod+Shift+g mode "$mode_gaps"
|
||||
|
||||
mode "$mode_gaps" {
|
||||
bindsym o mode "$mode_gaps_outer"
|
||||
bindsym i mode "$mode_gaps_inner"
|
||||
@@ -382,4 +437,5 @@ mode "$mode_gaps_outer" {
|
||||
################################################
|
||||
# i3-gaps-rounded
|
||||
|
||||
#border_radius 10
|
||||
|
||||
#border_radius 5
|
||||
|
||||
@@ -1,319 +0,0 @@
|
||||
# i3 config file (v4)
|
||||
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
|
||||
|
||||
# Autostart w/ i3
|
||||
#exec --no-startup-id onboard
|
||||
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
exec --no-startup-id "unclutter --timeout 5 --jitter 5 --ignore-scrolling"
|
||||
exec --no-startup-id zsh ~/.config/polybar/launch_polybar.sh
|
||||
exec --no-startup-id zsh ~/Userdata/Scripts/restart_pulseaudio.sh
|
||||
exec --no-startup-id nm-applet
|
||||
exec --no-startup-id "rfkill unblock bluetooth"
|
||||
exec --no-startup-id blueberry-tray
|
||||
exec --no-startup-id "nitrogen --restore"
|
||||
exec --no-startup-id "fluxgui"
|
||||
#exec --no-startup-id zsh ~/Userdata/Scripts/launch_insync.sh
|
||||
exec --no-startup-id zsh -c "pactl unload-module module-role-cork"
|
||||
|
||||
# Autostart applications
|
||||
exec_always --no-startup-id fix_xcursor
|
||||
|
||||
# Set mod key (Mod1=<Alt>, Mod4=<Super>)
|
||||
set $mod Mod4
|
||||
|
||||
# set default desktop layout (default is tiling)
|
||||
# workspace_layout tabbed <stacking|tabbed>
|
||||
|
||||
# Configure border style <normal|1pixel|pixel xx|none|pixel>
|
||||
new_window pixel 2
|
||||
new_float normal
|
||||
default_border pixel 2
|
||||
for_window [class="^.*"] border pixel 2
|
||||
|
||||
# Hide borders
|
||||
#hide_edge_borders none
|
||||
|
||||
# Screenshot
|
||||
bindsym Print exec --no-startup-id gnome-screenshot
|
||||
bindsym $mod+Print exec --no-startup-id gnome-screenshot -a
|
||||
bindsym $mod+Shift+Print exec --no-startup-id gnome-screenshot -i
|
||||
|
||||
# change borders
|
||||
bindsym $mod+u border none
|
||||
bindsym $mod+y border pixel 2
|
||||
bindsym $mod+n border normal
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font xft:Roboto Mono 11
|
||||
|
||||
# Use Mouse+$mod to drag floating windows
|
||||
floating_modifier $mod
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec i3-sensible-terminal
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# start program launcher
|
||||
#bindsym $mod+d exec --no-startup-id dmenu_recency
|
||||
bindsym Control+Shift+Escape exec --no-startup-id "urxvt -e sh -c 'htop'"
|
||||
bindsym Control+Mod1+Tab exec --no-startup-id "rofi -show drun -show-icons -icon-theme Adwaita -drun-display-format {name} -sort -sort-method fzf"
|
||||
bindsym $mod+d exec --no-startup-id "rofi -show drun -show-icons -icon-theme Adwaita -drun-display-format {name} -sort -sort-method fzf"
|
||||
bindsym $mod+Shift+d exec --no-startup-id "quicklaunch"
|
||||
#bindsym Super_L exec --no-startup-id "quicklaunch"
|
||||
|
||||
################################################################################################
|
||||
## sound-section - DO NOT EDIT if you wish to automatically upgrade Alsa -> Pulseaudio later! ##
|
||||
################################################################################################
|
||||
|
||||
exec --no-startup-id pulseaudio
|
||||
#exec --no-startup-id pa-applet
|
||||
bindsym $mod+Ctrl+m exec pavucontrol
|
||||
|
||||
################################################################################################
|
||||
|
||||
# Pulse Audio controls
|
||||
# run amixer sset Master on
|
||||
# https://askubuntu.com/questions/823669/volume-sound-and-screen-brightness-controls-not-working
|
||||
bindsym XF86AudioMute exec "amixer sset 'Master' toggle;"
|
||||
bindsym XF86AudioLowerVolume exec "amixer sset 'Master' 5%-;"
|
||||
bindsym XF86AudioRaiseVolume exec "amixer sset 'Master' 5%+;"
|
||||
|
||||
# Screen brightness controls
|
||||
bindsym XF86MonBrightnessUp exec "xbacklight -inc 10"
|
||||
bindsym XF86MonBrightnessDown exec "xbacklight -dec 10"
|
||||
|
||||
# Start Applications
|
||||
bindsym $mod+F2 exec firefox
|
||||
bindsym $mod+Shift+F2 exec "firefox google.com"
|
||||
bindsym $mod+F3 exec nautilus
|
||||
bindsym $mod+Ctrl+x --release exec --no-startup-id xkill
|
||||
bindsym $mod+F4 exec telegram-desktop
|
||||
bindsym $mod+Shift+F4 exec "firefox -new-window web.whatsapp.com"
|
||||
bindsym $mod+F5 exec "firefox -new-window borys.webuntis.com/WebUntis/?school=htl-salzburg#/basic/timetable"
|
||||
|
||||
focus_follows_mouse yes
|
||||
|
||||
# move focus arrow keys
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# move focused window arrow keys
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
# workspace back and forth (with/without active container)
|
||||
workspace_auto_back_and_forth yes
|
||||
bindsym $mod+b workspace back_and_forth
|
||||
bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth
|
||||
|
||||
# split orientation
|
||||
bindsym $mod+h split h;exec notify-send 'tile horizontally'
|
||||
bindsym $mod+v split v;exec notify-send 'tile vertically'
|
||||
bindsym $mod+q split toggle
|
||||
|
||||
# toggle fullscreen mode for the focused container
|
||||
bindsym $mod+f fullscreen toggle
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
bindsym $mod+i layout stacking
|
||||
bindsym $mod+o layout tabbed
|
||||
bindsym $mod+p layout toggle split
|
||||
|
||||
# toggle tiling / floating
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# toggle sticky
|
||||
bindsym $mod+Shift+s sticky toggle
|
||||
|
||||
#navigate workspaces next / previous
|
||||
bindsym $mod+Ctrl+Right workspace next
|
||||
bindsym $mod+Ctrl+Left workspace prev
|
||||
|
||||
# Workspace names
|
||||
# to display names or symbols instead of plain workspace numbers you can use
|
||||
# something like: set $ws1 1:mail
|
||||
# set $ws2 2:
|
||||
set $ws1 1
|
||||
set $ws2 2
|
||||
set $ws3 3
|
||||
set $ws4 4
|
||||
set $ws5 5
|
||||
set $ws6 6
|
||||
set $ws7 7
|
||||
set $ws8 8
|
||||
set $ws9 9
|
||||
set $ws10 10:
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace $ws1
|
||||
bindsym $mod+2 workspace $ws2
|
||||
bindsym $mod+3 workspace $ws3
|
||||
bindsym $mod+4 workspace $ws4
|
||||
bindsym $mod+5 workspace $ws5
|
||||
bindsym $mod+6 workspace $ws6
|
||||
bindsym $mod+7 workspace $ws7
|
||||
bindsym $mod+8 workspace $ws8
|
||||
bindsym $mod+9 workspace $ws9
|
||||
bindsym $mod+0 workspace $ws10
|
||||
|
||||
# Move focused container to workspace
|
||||
bindsym $mod+Ctrl+1 move container to workspace $ws1
|
||||
bindsym $mod+Ctrl+2 move container to workspace $ws2
|
||||
bindsym $mod+Ctrl+3 move container to workspace $ws3
|
||||
bindsym $mod+Ctrl+4 move container to workspace $ws4
|
||||
bindsym $mod+Ctrl+5 move container to workspace $ws5
|
||||
bindsym $mod+Ctrl+6 move container to workspace $ws6
|
||||
bindsym $mod+Ctrl+7 move container to workspace $ws7
|
||||
bindsym $mod+Ctrl+8 move container to workspace $ws8
|
||||
bindsym $mod+Ctrl+9 move container to workspace $ws9
|
||||
bindsym $mod+Ctrl+0 move container to workspace $ws10
|
||||
|
||||
# Move to workspace with focused container
|
||||
bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace $ws10; workspace $ws10
|
||||
|
||||
# Open applications on specific workspaces
|
||||
assign [class="(?i)virtualbox"] $ws10
|
||||
|
||||
# Open specific applications in floating mode
|
||||
for_window [class="Lightdm-settings"] floating enable
|
||||
for_window [class="Lxappearance"] floating enable sticky enable border normal
|
||||
for_window [title="h45_Quicklaunch"] floating enable border normal
|
||||
for_window [title="Qalculate!"] floating enable border normal
|
||||
for_window [title="Insync"] floating enable
|
||||
for_window [title="Volume Control"] floating enable
|
||||
for_window [title="xopp 2 pdf"] floating enable
|
||||
|
||||
# switch to workspace with urgent window automatically
|
||||
for_window [urgent=latest] focus
|
||||
|
||||
# reload the configuration file
|
||||
bindsym $mod+Shift+o reload
|
||||
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym $mod+Shift+i restart
|
||||
|
||||
# Set shut down, restart and locking features
|
||||
bindsym $mod+Escape mode "$mode_system"
|
||||
set $mode_system | [s]hutdown , [r]eboot , [p]owersave , [h]ibernate , [l]ock , [e]xit
|
||||
mode "$mode_system" {
|
||||
bindsym s exec --no-startup-id bash ~/Userdata/Scripts/glitchlock/glitchlock.sh shutdown, mode "default"
|
||||
bindsym r exec --no-startup-id bash ~/Userdata/Scripts/glitchlock/glitchlock.sh reboot, mode "default"
|
||||
bindsym p exec --no-startup-id bash ~/Userdata/Scripts/glitchlock/glitchlock.sh suspend, mode "default"
|
||||
bindsym h exec --no-startup-id bash ~/Userdata/Scripts/glitchlock/glitchlock.sh hibernate, mode "default"
|
||||
bindsym l exec --no-startup-id bash ~/Userdata/Scripts/glitchlock/glitchlock.sh lock, mode "default"
|
||||
bindsym e exec --no-startup-id bash ~/Userdata/Scripts/glitchlock/glitchlock.sh logout, mode "default"
|
||||
|
||||
# exit system mode: "Enter" or "Escape"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym $mod+Escape mode "default"
|
||||
}
|
||||
|
||||
# Resize window (you can also use the mouse for that)
|
||||
bindsym $mod+r mode "| Resize "
|
||||
mode "| Resize " {
|
||||
# These bindings trigger as soon as you enter the resize mode
|
||||
# for the arrow keys
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
bindsym Shift+Left resize shrink width 50 px or 50 ppt
|
||||
bindsym Shift+Down resize grow height 50 px or 50 ppt
|
||||
bindsym Shift+Up resize shrink height 50 px or 50 ppt
|
||||
bindsym Shift+Right resize grow width 50 px or 50 ppt
|
||||
|
||||
# exit resize mode: Enter or Escape
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
# hide/unhide i3status bar
|
||||
bindsym $mod+m exec --no-startup-id polybar-msg cmd toggle
|
||||
|
||||
# Theme colors
|
||||
# class border backgr. text indic. child_border
|
||||
client.focused #005c96 #005c96 #80FFF9 #FDF6E3
|
||||
client.focused_inactive #2F3D44 #2F3D44 #1ABC9C #454948
|
||||
client.unfocused #2F3D44 #2F3D44 #1ABC9C #454948
|
||||
client.urgent #CB4B16 #FDF6E3 #1ABC9C #268BD2
|
||||
client.placeholder #000000 #0c0c0c #ffffff #000000
|
||||
|
||||
client.background #2B2C2B
|
||||
|
||||
#############################
|
||||
### settings for i3-gaps: ###
|
||||
#############################
|
||||
|
||||
# Set inner/outer gaps
|
||||
gaps inner 5
|
||||
gaps outer 0
|
||||
|
||||
# Additionally, you can issue commands with the following syntax. This is useful to bind keys to changing the gap size.
|
||||
# gaps inner|outer current|all set|plus|minus <px>
|
||||
# gaps inner all set 10
|
||||
# gaps outer all plus 5
|
||||
|
||||
# Smart gaps (gaps used if only more than one container on the workspace)
|
||||
smart_gaps on
|
||||
|
||||
# Smart borders (draw borders around container only if it is not the only container on this workspace)
|
||||
# on|no_gaps (on=always activate and no_gaps=only activate if the gap size to the edge of the screen is 0)
|
||||
smart_borders on
|
||||
|
||||
# Press $mod+Shift+g to enter the gap mode. Choose o or i for modifying outer/inner gaps. Press one of + / - (in-/decrement for current workspace) or 0 (remove gaps for current workspace). If you also press Shift with these keys, the change will be global for all workspaces.
|
||||
set $mode_gaps Gaps: (o) outer, (i) inner
|
||||
set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
|
||||
set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)
|
||||
bindsym $mod+Shift+g mode "$mode_gaps"
|
||||
|
||||
mode "$mode_gaps" {
|
||||
bindsym o mode "$mode_gaps_outer"
|
||||
bindsym i mode "$mode_gaps_inner"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
mode "$mode_gaps_inner" {
|
||||
bindsym plus gaps inner current plus 5
|
||||
bindsym minus gaps inner current minus 5
|
||||
bindsym 0 gaps inner current set 0
|
||||
|
||||
bindsym Shift+plus gaps inner all plus 5
|
||||
bindsym Shift+minus gaps inner all minus 5
|
||||
bindsym Shift+0 gaps inner all set 0
|
||||
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
mode "$mode_gaps_outer" {
|
||||
bindsym plus gaps outer current plus 5
|
||||
bindsym minus gaps outer current minus 5
|
||||
bindsym 0 gaps outer current set 0
|
||||
|
||||
bindsym Shift+plus gaps outer all plus 5
|
||||
bindsym Shift+minus gaps outer all minus 5
|
||||
bindsym Shift+0 gaps outer all set 0
|
||||
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
@@ -0,0 +1,849 @@
|
||||
# See this wiki page for more info:
|
||||
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
|
||||
print_info() {
|
||||
info title
|
||||
info underline
|
||||
|
||||
info "OS" distro
|
||||
info "Host" model
|
||||
info "Kernel" kernel
|
||||
info "Uptime" uptime
|
||||
info "Packages" packages
|
||||
info "Shell" shell
|
||||
info "Resolution" resolution
|
||||
info "DE" de
|
||||
info "WM" wm
|
||||
info "WM Theme" wm_theme
|
||||
info "Theme" theme
|
||||
info "Icons" icons
|
||||
info "Terminal" term
|
||||
info "Terminal Font" term_font
|
||||
info "CPU" cpu
|
||||
info "GPU" gpu
|
||||
info "Memory" memory
|
||||
|
||||
# info "GPU Driver" gpu_driver # Linux/macOS only
|
||||
# info "CPU Usage" cpu_usage
|
||||
# info "Disk" disk
|
||||
# info "Battery" battery
|
||||
# info "Font" font
|
||||
# info "Song" song
|
||||
# [[ "$player" ]] && prin "Music Player" "$player"
|
||||
# info "Local IP" local_ip
|
||||
# info "Public IP" public_ip
|
||||
# info "Users" users
|
||||
# info "Locale" locale # This only works on glibc systems.
|
||||
|
||||
info cols
|
||||
}
|
||||
|
||||
# Title
|
||||
|
||||
|
||||
# Hide/Show Fully qualified domain name.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --title_fqdn
|
||||
title_fqdn="off"
|
||||
|
||||
|
||||
# Kernel
|
||||
|
||||
|
||||
# Shorten the output of the kernel function.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --kernel_shorthand
|
||||
# Supports: Everything except *BSDs (except PacBSD and PC-BSD)
|
||||
#
|
||||
# Example:
|
||||
# on: '4.8.9-1-ARCH'
|
||||
# off: 'Linux 4.8.9-1-ARCH'
|
||||
kernel_shorthand="on"
|
||||
|
||||
|
||||
# Distro
|
||||
|
||||
|
||||
# Shorten the output of the distro function
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'tiny', 'off'
|
||||
# Flag: --distro_shorthand
|
||||
# Supports: Everything except Windows and Haiku
|
||||
distro_shorthand="off"
|
||||
|
||||
# Show/Hide OS Architecture.
|
||||
# Show 'x86_64', 'x86' and etc in 'Distro:' output.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --os_arch
|
||||
#
|
||||
# Example:
|
||||
# on: 'Arch Linux x86_64'
|
||||
# off: 'Arch Linux'
|
||||
os_arch="on"
|
||||
|
||||
|
||||
# Uptime
|
||||
|
||||
|
||||
# Shorten the output of the uptime function
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'tiny', 'off'
|
||||
# Flag: --uptime_shorthand
|
||||
#
|
||||
# Example:
|
||||
# on: '2 days, 10 hours, 3 mins'
|
||||
# tiny: '2d 10h 3m'
|
||||
# off: '2 days, 10 hours, 3 minutes'
|
||||
uptime_shorthand="on"
|
||||
|
||||
|
||||
# Memory
|
||||
|
||||
|
||||
# Show memory pecentage in output.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --memory_percent
|
||||
#
|
||||
# Example:
|
||||
# on: '1801MiB / 7881MiB (22%)'
|
||||
# off: '1801MiB / 7881MiB'
|
||||
memory_percent="off"
|
||||
|
||||
|
||||
# Packages
|
||||
|
||||
|
||||
# Show/Hide Package Manager names.
|
||||
#
|
||||
# Default: 'tiny'
|
||||
# Values: 'on', 'tiny' 'off'
|
||||
# Flag: --package_managers
|
||||
#
|
||||
# Example:
|
||||
# on: '998 (pacman), 8 (flatpak), 4 (snap)'
|
||||
# tiny: '908 (pacman, flatpak, snap)'
|
||||
# off: '908'
|
||||
package_managers="on"
|
||||
|
||||
|
||||
# Shell
|
||||
|
||||
|
||||
# Show the path to $SHELL
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --shell_path
|
||||
#
|
||||
# Example:
|
||||
# on: '/bin/bash'
|
||||
# off: 'bash'
|
||||
shell_path="off"
|
||||
|
||||
# Show $SHELL version
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --shell_version
|
||||
#
|
||||
# Example:
|
||||
# on: 'bash 4.4.5'
|
||||
# off: 'bash'
|
||||
shell_version="on"
|
||||
|
||||
|
||||
# CPU
|
||||
|
||||
|
||||
# CPU speed type
|
||||
#
|
||||
# Default: 'bios_limit'
|
||||
# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.
|
||||
# Flag: --speed_type
|
||||
# Supports: Linux with 'cpufreq'
|
||||
# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.
|
||||
speed_type="bios_limit"
|
||||
|
||||
# CPU speed shorthand
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'.
|
||||
# Flag: --speed_shorthand
|
||||
# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz
|
||||
#
|
||||
# Example:
|
||||
# on: 'i7-6500U (4) @ 3.1GHz'
|
||||
# off: 'i7-6500U (4) @ 3.100GHz'
|
||||
speed_shorthand="off"
|
||||
|
||||
# Enable/Disable CPU brand in output.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --cpu_brand
|
||||
#
|
||||
# Example:
|
||||
# on: 'Intel i7-6500U'
|
||||
# off: 'i7-6500U (4)'
|
||||
cpu_brand="on"
|
||||
|
||||
# CPU Speed
|
||||
# Hide/Show CPU speed.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --cpu_speed
|
||||
#
|
||||
# Example:
|
||||
# on: 'Intel i7-6500U (4) @ 3.1GHz'
|
||||
# off: 'Intel i7-6500U (4)'
|
||||
cpu_speed="on"
|
||||
|
||||
# CPU Cores
|
||||
# Display CPU cores in output
|
||||
#
|
||||
# Default: 'logical'
|
||||
# Values: 'logical', 'physical', 'off'
|
||||
# Flag: --cpu_cores
|
||||
# Support: 'physical' doesn't work on BSD.
|
||||
#
|
||||
# Example:
|
||||
# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
|
||||
# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
|
||||
# off: 'Intel i7-6500U @ 3.1GHz'
|
||||
cpu_cores="logical"
|
||||
|
||||
# CPU Temperature
|
||||
# Hide/Show CPU temperature.
|
||||
# Note the temperature is added to the regular CPU function.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'C', 'F', 'off'
|
||||
# Flag: --cpu_temp
|
||||
# Supports: Linux, BSD
|
||||
# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable
|
||||
# coretemp kernel module. This only supports newer Intel processors.
|
||||
#
|
||||
# Example:
|
||||
# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
|
||||
# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
|
||||
# off: 'Intel i7-6500U (4) @ 3.1GHz'
|
||||
cpu_temp="off"
|
||||
|
||||
|
||||
# GPU
|
||||
|
||||
|
||||
# Enable/Disable GPU Brand
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --gpu_brand
|
||||
#
|
||||
# Example:
|
||||
# on: 'AMD HD 7950'
|
||||
# off: 'HD 7950'
|
||||
gpu_brand="on"
|
||||
|
||||
# Which GPU to display
|
||||
#
|
||||
# Default: 'all'
|
||||
# Values: 'all', 'dedicated', 'integrated'
|
||||
# Flag: --gpu_type
|
||||
# Supports: Linux
|
||||
#
|
||||
# Example:
|
||||
# all:
|
||||
# GPU1: AMD HD 7950
|
||||
# GPU2: Intel Integrated Graphics
|
||||
#
|
||||
# dedicated:
|
||||
# GPU1: AMD HD 7950
|
||||
#
|
||||
# integrated:
|
||||
# GPU1: Intel Integrated Graphics
|
||||
gpu_type="all"
|
||||
|
||||
|
||||
# Resolution
|
||||
|
||||
|
||||
# Display refresh rate next to each monitor
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --refresh_rate
|
||||
# Supports: Doesn't work on Windows.
|
||||
#
|
||||
# Example:
|
||||
# on: '1920x1080 @ 60Hz'
|
||||
# off: '1920x1080'
|
||||
refresh_rate="off"
|
||||
|
||||
|
||||
# Gtk Theme / Icons / Font
|
||||
|
||||
|
||||
# Shorten output of GTK Theme / Icons / Font
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --gtk_shorthand
|
||||
#
|
||||
# Example:
|
||||
# on: 'Numix, Adwaita'
|
||||
# off: 'Numix [GTK2], Adwaita [GTK3]'
|
||||
gtk_shorthand="off"
|
||||
|
||||
|
||||
# Enable/Disable gtk2 Theme / Icons / Font
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --gtk2
|
||||
#
|
||||
# Example:
|
||||
# on: 'Numix [GTK2], Adwaita [GTK3]'
|
||||
# off: 'Adwaita [GTK3]'
|
||||
gtk2="on"
|
||||
|
||||
# Enable/Disable gtk3 Theme / Icons / Font
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --gtk3
|
||||
#
|
||||
# Example:
|
||||
# on: 'Numix [GTK2], Adwaita [GTK3]'
|
||||
# off: 'Numix [GTK2]'
|
||||
gtk3="on"
|
||||
|
||||
|
||||
# IP Address
|
||||
|
||||
|
||||
# Website to ping for the public IP
|
||||
#
|
||||
# Default: 'http://ident.me'
|
||||
# Values: 'url'
|
||||
# Flag: --ip_host
|
||||
public_ip_host="http://ident.me"
|
||||
|
||||
# Public IP timeout.
|
||||
#
|
||||
# Default: '2'
|
||||
# Values: 'int'
|
||||
# Flag: --ip_timeout
|
||||
public_ip_timeout=2
|
||||
|
||||
|
||||
# Desktop Environment
|
||||
|
||||
|
||||
# Show Desktop Environment version
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --de_version
|
||||
de_version="off"
|
||||
|
||||
|
||||
# Disk
|
||||
|
||||
|
||||
# Which disks to display.
|
||||
# The values can be any /dev/sdXX, mount point or directory.
|
||||
# NOTE: By default we only show the disk info for '/'.
|
||||
#
|
||||
# Default: '/'
|
||||
# Values: '/', '/dev/sdXX', '/path/to/drive'.
|
||||
# Flag: --disk_show
|
||||
#
|
||||
# Example:
|
||||
# disk_show=('/' '/dev/sdb1'):
|
||||
# 'Disk (/): 74G / 118G (66%)'
|
||||
# 'Disk (/mnt/Videos): 823G / 893G (93%)'
|
||||
#
|
||||
# disk_show=('/'):
|
||||
# 'Disk (/): 74G / 118G (66%)'
|
||||
#
|
||||
disk_show=('/')
|
||||
|
||||
# Disk subtitle.
|
||||
# What to append to the Disk subtitle.
|
||||
#
|
||||
# Default: 'mount'
|
||||
# Values: 'mount', 'name', 'dir', 'none'
|
||||
# Flag: --disk_subtitle
|
||||
#
|
||||
# Example:
|
||||
# name: 'Disk (/dev/sda1): 74G / 118G (66%)'
|
||||
# 'Disk (/dev/sdb2): 74G / 118G (66%)'
|
||||
#
|
||||
# mount: 'Disk (/): 74G / 118G (66%)'
|
||||
# 'Disk (/mnt/Local Disk): 74G / 118G (66%)'
|
||||
# 'Disk (/mnt/Videos): 74G / 118G (66%)'
|
||||
#
|
||||
# dir: 'Disk (/): 74G / 118G (66%)'
|
||||
# 'Disk (Local Disk): 74G / 118G (66%)'
|
||||
# 'Disk (Videos): 74G / 118G (66%)'
|
||||
#
|
||||
# none: 'Disk: 74G / 118G (66%)'
|
||||
# 'Disk: 74G / 118G (66%)'
|
||||
# 'Disk: 74G / 118G (66%)'
|
||||
disk_subtitle="mount"
|
||||
|
||||
# Disk percent.
|
||||
# Show/Hide disk percent.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --disk_percent
|
||||
#
|
||||
# Example:
|
||||
# on: 'Disk (/): 74G / 118G (66%)'
|
||||
# off: 'Disk (/): 74G / 118G'
|
||||
disk_percent="on"
|
||||
|
||||
|
||||
# Song
|
||||
|
||||
|
||||
# Manually specify a music player.
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', 'player-name'
|
||||
# Flag: --music_player
|
||||
#
|
||||
# Available values for 'player-name':
|
||||
#
|
||||
# amarok
|
||||
# audacious
|
||||
# banshee
|
||||
# bluemindo
|
||||
# clementine
|
||||
# cmus
|
||||
# deadbeef
|
||||
# deepin-music
|
||||
# dragon
|
||||
# elisa
|
||||
# exaile
|
||||
# gnome-music
|
||||
# gmusicbrowser
|
||||
# gogglesmm
|
||||
# guayadeque
|
||||
# io.elementary.music
|
||||
# iTunes
|
||||
# juk
|
||||
# lollypop
|
||||
# mocp
|
||||
# mopidy
|
||||
# mpd
|
||||
# muine
|
||||
# netease-cloud-music
|
||||
# pogo
|
||||
# pragha
|
||||
# qmmp
|
||||
# quodlibet
|
||||
# rhythmbox
|
||||
# sayonara
|
||||
# smplayer
|
||||
# spotify
|
||||
# strawberry
|
||||
# tomahawk
|
||||
# vlc
|
||||
# xmms2d
|
||||
# xnoise
|
||||
# yarock
|
||||
music_player="auto"
|
||||
|
||||
# Format to display song information.
|
||||
#
|
||||
# Default: '%artist% - %album% - %title%'
|
||||
# Values: '%artist%', '%album%', '%title%'
|
||||
# Flag: --song_format
|
||||
#
|
||||
# Example:
|
||||
# default: 'Song: Jet - Get Born - Sgt Major'
|
||||
song_format="%artist% - %album% - %title%"
|
||||
|
||||
# Print the Artist, Album and Title on separate lines
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --song_shorthand
|
||||
#
|
||||
# Example:
|
||||
# on: 'Artist: The Fratellis'
|
||||
# 'Album: Costello Music'
|
||||
# 'Song: Chelsea Dagger'
|
||||
#
|
||||
# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger'
|
||||
song_shorthand="off"
|
||||
|
||||
# 'mpc' arguments (specify a host, password etc).
|
||||
#
|
||||
# Default: ''
|
||||
# Example: mpc_args=(-h HOST -P PASSWORD)
|
||||
mpc_args=()
|
||||
|
||||
|
||||
# Text Colors
|
||||
|
||||
|
||||
# Text Colors
|
||||
#
|
||||
# Default: 'distro'
|
||||
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
|
||||
# Flag: --colors
|
||||
#
|
||||
# Each number represents a different part of the text in
|
||||
# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
|
||||
#
|
||||
# Example:
|
||||
# colors=(distro) - Text is colored based on Distro colors.
|
||||
# colors=(4 6 1 8 8 6) - Text is colored in the order above.
|
||||
colors=(distro)
|
||||
|
||||
|
||||
# Text Options
|
||||
|
||||
|
||||
# Toggle bold text
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --bold
|
||||
bold="on"
|
||||
|
||||
# Enable/Disable Underline
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --underline
|
||||
underline_enabled="on"
|
||||
|
||||
# Underline character
|
||||
#
|
||||
# Default: '-'
|
||||
# Values: 'string'
|
||||
# Flag: --underline_char
|
||||
underline_char="-"
|
||||
|
||||
|
||||
# Info Separator
|
||||
# Replace the default separator with the specified string.
|
||||
#
|
||||
# Default: ':'
|
||||
# Flag: --separator
|
||||
#
|
||||
# Example:
|
||||
# separator="->": 'Shell-> bash'
|
||||
# separator=" =": 'WM = dwm'
|
||||
separator=":"
|
||||
|
||||
|
||||
# Color Blocks
|
||||
|
||||
|
||||
# Color block range
|
||||
# The range of colors to print.
|
||||
#
|
||||
# Default: '0', '15'
|
||||
# Values: 'num'
|
||||
# Flag: --block_range
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# Display colors 0-7 in the blocks. (8 colors)
|
||||
# neofetch --block_range 0 7
|
||||
#
|
||||
# Display colors 0-15 in the blocks. (16 colors)
|
||||
# neofetch --block_range 0 15
|
||||
block_range=(0 15)
|
||||
|
||||
# Toggle color blocks
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --color_blocks
|
||||
color_blocks="on"
|
||||
|
||||
# Color block width in spaces
|
||||
#
|
||||
# Default: '3'
|
||||
# Values: 'num'
|
||||
# Flag: --block_width
|
||||
block_width=3
|
||||
|
||||
# Color block height in lines
|
||||
#
|
||||
# Default: '1'
|
||||
# Values: 'num'
|
||||
# Flag: --block_height
|
||||
block_height=1
|
||||
|
||||
# Color Alignment
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', 'num'
|
||||
# Flag: --col_offset
|
||||
#
|
||||
# Number specifies how far from the left side of the terminal (in spaces) to
|
||||
# begin printing the columns, in case you want to e.g. center them under your
|
||||
# text.
|
||||
# Example:
|
||||
# col_offset="auto" - Default behavior of neofetch
|
||||
# col_offset=7 - Leave 7 spaces then print the colors
|
||||
col_offset="auto"
|
||||
|
||||
# Progress Bars
|
||||
|
||||
|
||||
# Bar characters
|
||||
#
|
||||
# Default: '-', '='
|
||||
# Values: 'string', 'string'
|
||||
# Flag: --bar_char
|
||||
#
|
||||
# Example:
|
||||
# neofetch --bar_char 'elapsed' 'total'
|
||||
# neofetch --bar_char '-' '='
|
||||
bar_char_elapsed="-"
|
||||
bar_char_total="="
|
||||
|
||||
# Toggle Bar border
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --bar_border
|
||||
bar_border="on"
|
||||
|
||||
# Progress bar length in spaces
|
||||
# Number of chars long to make the progress bars.
|
||||
#
|
||||
# Default: '15'
|
||||
# Values: 'num'
|
||||
# Flag: --bar_length
|
||||
bar_length=15
|
||||
|
||||
# Progress bar colors
|
||||
# When set to distro, uses your distro's logo colors.
|
||||
#
|
||||
# Default: 'distro', 'distro'
|
||||
# Values: 'distro', 'num'
|
||||
# Flag: --bar_colors
|
||||
#
|
||||
# Example:
|
||||
# neofetch --bar_colors 3 4
|
||||
# neofetch --bar_colors distro 5
|
||||
bar_color_elapsed="distro"
|
||||
bar_color_total="distro"
|
||||
|
||||
|
||||
# Info display
|
||||
# Display a bar with the info.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'bar', 'infobar', 'barinfo', 'off'
|
||||
# Flags: --cpu_display
|
||||
# --memory_display
|
||||
# --battery_display
|
||||
# --disk_display
|
||||
#
|
||||
# Example:
|
||||
# bar: '[---=======]'
|
||||
# infobar: 'info [---=======]'
|
||||
# barinfo: '[---=======] info'
|
||||
# off: 'info'
|
||||
cpu_display="off"
|
||||
memory_display="off"
|
||||
battery_display="off"
|
||||
disk_display="off"
|
||||
|
||||
|
||||
# Backend Settings
|
||||
|
||||
|
||||
# Image backend.
|
||||
#
|
||||
# Default: 'ascii'
|
||||
# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off',
|
||||
# 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty'
|
||||
# Flag: --backend
|
||||
image_backend="ascii"
|
||||
|
||||
# Image Source
|
||||
#
|
||||
# Which image or ascii file to display.
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'
|
||||
# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")'
|
||||
# Flag: --source
|
||||
#
|
||||
# NOTE: 'auto' will pick the best image source for whatever image backend is used.
|
||||
# In ascii mode, distro ascii art will be used and in an image mode, your
|
||||
# wallpaper will be used.
|
||||
image_source="auto"
|
||||
|
||||
|
||||
# Ascii Options
|
||||
|
||||
|
||||
# Ascii distro
|
||||
# Which distro's ascii art to display.
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', 'distro_name'
|
||||
# Flag: --ascii_distro
|
||||
# NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, AOSC,
|
||||
# Apricity, ArcoLinux, ArchBox, ARCHlabs, ArchStrike,
|
||||
# XFerience, ArchMerge, Arch, Artix, Arya, Bedrock, Bitrig,
|
||||
# BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD,
|
||||
# BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS,
|
||||
# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover,
|
||||
# Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin,
|
||||
# DesaOS, Devuan, DracOS, DragonFly, Drauger, Elementary,
|
||||
# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD,
|
||||
# FreeMiNT, Frugalware, Funtoo, GalliumOS, Gentoo, Pentoo,
|
||||
# gNewSense, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra,
|
||||
# Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion,
|
||||
# Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite,
|
||||
# LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva,
|
||||
# Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib,
|
||||
# Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner,
|
||||
# NuTyX, OBRevenge, OpenBSD, OpenIndiana, OpenMandriva,
|
||||
# OpenWrt, osmc, Oracle, PacBSD, Parabola, Pardus, Parrot,
|
||||
# Parsix, TrueOS, PCLinuxOS, Peppermint, popos, Porteus,
|
||||
# PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix, Raspbian,
|
||||
# Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan, Regata,
|
||||
# Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific, Septor,
|
||||
# SharkLinux, Siduction, Slackware, SliTaz, SmartOS, Solus,
|
||||
# Source_Mage, Sparky, Star, SteamOS, SunOS, openSUSE_Leap,
|
||||
# openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, Trisquel,
|
||||
# Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio, Ubuntu,
|
||||
# Void, Obarun, windows10, Windows7, Xubuntu, Zorin, and IRIX
|
||||
# have ascii logos
|
||||
# NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants.
|
||||
# Use '{distro name}_old' to use the old logos.
|
||||
# NOTE: Ubuntu has flavor variants.
|
||||
# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
|
||||
# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
|
||||
# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
|
||||
# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
|
||||
# Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
|
||||
# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
|
||||
# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
|
||||
# postmarketOS, and Void have a smaller logo variant.
|
||||
# Use '{distro name}_small' to use the small variants.
|
||||
ascii_distro="auto"
|
||||
|
||||
# Ascii Colors
|
||||
#
|
||||
# Default: 'distro'
|
||||
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
|
||||
# Flag: --ascii_colors
|
||||
#
|
||||
# Example:
|
||||
# ascii_colors=(distro) - Ascii is colored based on Distro colors.
|
||||
# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
|
||||
ascii_colors=(distro)
|
||||
|
||||
# Bold ascii logo
|
||||
# Whether or not to bold the ascii logo.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --ascii_bold
|
||||
ascii_bold="on"
|
||||
|
||||
|
||||
# Image Options
|
||||
|
||||
|
||||
# Image loop
|
||||
# Setting this to on will make neofetch redraw the image constantly until
|
||||
# Ctrl+C is pressed. This fixes display issues in some terminal emulators.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --loop
|
||||
image_loop="off"
|
||||
|
||||
# Thumbnail directory
|
||||
#
|
||||
# Default: '~/.cache/thumbnails/neofetch'
|
||||
# Values: 'dir'
|
||||
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
|
||||
|
||||
# Crop mode
|
||||
#
|
||||
# Default: 'normal'
|
||||
# Values: 'normal', 'fit', 'fill'
|
||||
# Flag: --crop_mode
|
||||
#
|
||||
# See this wiki page to learn about the fit and fill options.
|
||||
# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
|
||||
crop_mode="normal"
|
||||
|
||||
# Crop offset
|
||||
# Note: Only affects 'normal' crop mode.
|
||||
#
|
||||
# Default: 'center'
|
||||
# Values: 'northwest', 'north', 'northeast', 'west', 'center'
|
||||
# 'east', 'southwest', 'south', 'southeast'
|
||||
# Flag: --crop_offset
|
||||
crop_offset="center"
|
||||
|
||||
# Image size
|
||||
# The image is half the terminal width by default.
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', '00px', '00%', 'none'
|
||||
# Flags: --image_size
|
||||
# --size
|
||||
image_size="auto"
|
||||
|
||||
# Gap between image and text
|
||||
#
|
||||
# Default: '3'
|
||||
# Values: 'num', '-num'
|
||||
# Flag: --gap
|
||||
gap=3
|
||||
|
||||
# Image offsets
|
||||
# Only works with the w3m backend.
|
||||
#
|
||||
# Default: '0'
|
||||
# Values: 'px'
|
||||
# Flags: --xoffset
|
||||
# --yoffset
|
||||
yoffset=0
|
||||
xoffset=0
|
||||
|
||||
# Image background color
|
||||
# Only works with the w3m backend.
|
||||
#
|
||||
# Default: ''
|
||||
# Values: 'color', 'blue'
|
||||
# Flag: --bg_color
|
||||
background_color=
|
||||
|
||||
|
||||
# Misc Options
|
||||
|
||||
# Stdout mode
|
||||
# Turn off all colors and disables image backend (ASCII/Image).
|
||||
# Useful for piping into another command.
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
stdout="off"
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
picom.conf##h.yoga3
|
||||
@@ -0,0 +1,533 @@
|
||||
#################################
|
||||
# Corners #
|
||||
#################################
|
||||
# requires: https://github.com/sdhand/compton
|
||||
corner-radius = 15.0;
|
||||
rounded-corners-exclude = [
|
||||
#"class_g *= ''",
|
||||
"class_g != 'Polybar'",
|
||||
# "class_g != 'Dunst'",
|
||||
#"window_type = 'normal'",
|
||||
#"window_type = 'popup'",
|
||||
#"window_type = 'menu'",
|
||||
#"class_g = 'awesome'",
|
||||
#"class_g *= 'thunar'",
|
||||
#"class_g *= 'Thunar'",
|
||||
#"class_g = 'URxvt'",
|
||||
#"class_g = 'XTerm'",
|
||||
#"class_g = 'kitty'",
|
||||
#"class_g = 'Alacritty'",
|
||||
#"class_g = 'code-oss'",
|
||||
#"class_g = 'firefox'",
|
||||
#"class_g = 'Thunderbird'"
|
||||
];
|
||||
|
||||
round-borders = 0;
|
||||
round-borders-exclude = [
|
||||
#"window_type = 'normal'",
|
||||
#"class_g = 'TelegramDesktop'",
|
||||
];
|
||||
|
||||
# Specify a list of border width rules, in the format `PIXELS:PATTERN`,
|
||||
# Note we don't make any guarantee about possible conflicts with the
|
||||
# border_width set by the window manager.
|
||||
#
|
||||
# example:
|
||||
# round-borders-rule = [ "2:class_g = 'URxvt'" ];
|
||||
#
|
||||
round-borders-rule = [
|
||||
];
|
||||
|
||||
#################################
|
||||
# Shadows #
|
||||
#################################
|
||||
|
||||
|
||||
# Enabled client-side shadows on windows. Note desktop windows
|
||||
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
|
||||
# unless explicitly requested using the wintypes option.
|
||||
#
|
||||
# shadow = false
|
||||
shadow = true;
|
||||
|
||||
# The blur radius for shadows, in pixels. (defaults to 12)
|
||||
# shadow-radius = 12
|
||||
shadow-radius = 5;
|
||||
|
||||
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
||||
# shadow-opacity = .75
|
||||
|
||||
# The left offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-x = -15
|
||||
shadow-offset-x = -5;
|
||||
|
||||
# The top offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-y = -15
|
||||
shadow-offset-y = -5;
|
||||
|
||||
# Avoid drawing shadows on dock/panel windows. This option is deprecated,
|
||||
# you should use the *wintypes* option in your config file instead.
|
||||
#
|
||||
# no-dock-shadow = false
|
||||
|
||||
# Don't draw shadows on drag-and-drop windows. This option is deprecated,
|
||||
# you should use the *wintypes* option in your config file instead.
|
||||
#
|
||||
# no-dnd-shadow = false
|
||||
|
||||
# Red color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-red = 0
|
||||
|
||||
# Green color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-green = 0
|
||||
|
||||
# Blue color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-blue = 0
|
||||
|
||||
# Do not paint shadows on shaped windows. Note shaped windows
|
||||
# here means windows setting its shape through X Shape extension.
|
||||
# Those using ARGB background is beyond our control.
|
||||
# Deprecated, use
|
||||
# shadow-exclude = 'bounding_shaped'
|
||||
# or
|
||||
# shadow-exclude = 'bounding_shaped && !rounded_corners'
|
||||
# instead.
|
||||
#
|
||||
shadow-ignore-shaped = false;
|
||||
|
||||
# Specify a list of conditions of windows that should have no shadow.
|
||||
#
|
||||
# examples:
|
||||
# shadow-exclude = "n:e:Notification";
|
||||
#
|
||||
# shadow-exclude = []
|
||||
shadow-exclude = [
|
||||
"! name~=''",
|
||||
"name *= 'polybar'",
|
||||
"name = 'Notification'",
|
||||
"name = 'Plank'",
|
||||
"name = 'Docky'",
|
||||
"name = 'Kupfer'",
|
||||
"name = 'xfce4-notifyd'",
|
||||
"name *= 'VLC'",
|
||||
"name *= 'overlay'",
|
||||
"name *= 'compton'",
|
||||
"name *= 'picom'",
|
||||
"name *= 'Chromium'",
|
||||
"name *= 'Chrome'",
|
||||
"name *= 'overlay'",
|
||||
"class_g *= 'overlay'",
|
||||
"class_g = 'Firefox' && argb",
|
||||
"class_g = 'Conky'",
|
||||
"class_g = 'Kupfer'",
|
||||
"class_g = 'Synapse'",
|
||||
"name = 'notify-osd'",
|
||||
"class_g ?= 'Cairo-dock'",
|
||||
"class_g ?= 'Xfce4-notifyd'",
|
||||
"class_g ?= 'Xfce4-power-manager'",
|
||||
"_GTK_FRAME_EXTENTS@:c",
|
||||
"_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
|
||||
];
|
||||
|
||||
# Specify a X geometry that describes the region in which shadow should not
|
||||
# be painted in, such as a dock window region. Use
|
||||
# shadow-exclude-reg = "x10+0+0"
|
||||
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
|
||||
#
|
||||
# shadow-exclude-reg = ""
|
||||
|
||||
# Crop shadow of a window fully on a particular Xinerama screen to the screen.
|
||||
# xinerama-shadow-crop = false
|
||||
|
||||
|
||||
#################################
|
||||
# Fading #
|
||||
#################################
|
||||
|
||||
|
||||
# Fade windows in/out when opening/closing and when opacity changes,
|
||||
# unless no-fading-openclose is used.
|
||||
# fading = false
|
||||
fading = true;
|
||||
|
||||
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
|
||||
# fade-in-step = 0.028
|
||||
fade-in-step = 0.03;
|
||||
|
||||
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
|
||||
# fade-out-step = 0.03
|
||||
fade-out-step = 0.03;
|
||||
|
||||
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
|
||||
fade-delta = 5
|
||||
|
||||
# Specify a list of conditions of windows that should not be faded.
|
||||
# don't need this, we disable fading for all normal windows with wintypes: {}
|
||||
fade-exclude = [
|
||||
"class_g = 'slop'" # maim
|
||||
]
|
||||
|
||||
# Do not fade on window open/close.
|
||||
# no-fading-openclose = false
|
||||
|
||||
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
|
||||
# no-fading-destroyed-argb = false
|
||||
|
||||
|
||||
#################################
|
||||
# Transparency / Opacity #
|
||||
#################################
|
||||
|
||||
|
||||
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
||||
# inactive-opacity = 1
|
||||
inactive-opacity = 1;
|
||||
|
||||
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
||||
# frame-opacity = 1.0
|
||||
frame-opacity = 1;
|
||||
|
||||
# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
|
||||
# menu-opacity = 1.0
|
||||
|
||||
# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
|
||||
# inactive-opacity-override = true
|
||||
inactive-opacity-override = false;
|
||||
|
||||
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
|
||||
active-opacity = 1.0;
|
||||
|
||||
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
|
||||
inactive-dim = 0.1;
|
||||
|
||||
# Specify a list of conditions of windows that should always be considered focused.
|
||||
# focus-exclude = []
|
||||
focus-exclude = [
|
||||
"class_g = 'Cairo-clock'",
|
||||
"class_g = 'Bar'", # lemonbar
|
||||
"class_g = 'slop'" # maim
|
||||
];
|
||||
|
||||
# Use fixed inactive dim value, instead of adjusting according to window opacity.
|
||||
# inactive-dim-fixed = 1.0
|
||||
|
||||
# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
|
||||
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
|
||||
# Note we don't make any guarantee about possible conflicts with other
|
||||
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
|
||||
# example:
|
||||
# opacity-rule = [ "80:class_g = 'URxvt'" ];
|
||||
#
|
||||
# opacity-rule = []
|
||||
opacity-rule = [
|
||||
"80:class_g = 'Polybar'",
|
||||
"80:class_g *= 'Dunst'",
|
||||
"100:class_g = 'slop'", # maim
|
||||
"100:class_g = 'XTerm'",
|
||||
"100:class_g = 'URxvt'",
|
||||
"100:class_g = 'kitty'",
|
||||
"100:class_g = 'Alacritty'",
|
||||
"100:class_g = 'code-oss'",
|
||||
"100:class_g = 'Meld'",
|
||||
"90:class_g = 'Joplin'",
|
||||
"100:class_g = 'firefox'",
|
||||
"100:class_g = 'Thunderbird'"
|
||||
];
|
||||
|
||||
|
||||
#################################
|
||||
# Background-Blurring #
|
||||
#################################
|
||||
|
||||
|
||||
# Parameters for background blurring, see the *BLUR* section for more information.
|
||||
# blur-method =
|
||||
# blur-size = 12
|
||||
#
|
||||
# blur-deviation = false
|
||||
|
||||
# Blur background of semi-transparent / ARGB windows.
|
||||
# Bad in performance, with driver-dependent behavior.
|
||||
# The name of the switch may change without prior notifications.
|
||||
#
|
||||
blur-background = true;
|
||||
|
||||
# Blur background of windows when the window frame is not opaque.
|
||||
# Implies:
|
||||
# blur-background
|
||||
# Bad in performance, with driver-dependent behavior. The name may change.
|
||||
#
|
||||
# blur-background-frame = false;
|
||||
|
||||
|
||||
# Use fixed blur strength rather than adjusting according to window opacity.
|
||||
blur-background-fixed = false;
|
||||
|
||||
|
||||
# Specify the blur convolution kernel, with the following format:
|
||||
# example:
|
||||
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
|
||||
#
|
||||
# blur-kern = ''
|
||||
# blur-kern = "3x3box";
|
||||
|
||||
blur: {
|
||||
# requires: https://github.com/ibhagwan/picom
|
||||
method = "dual_kawase";
|
||||
#method = "kernel";
|
||||
strength = 12;
|
||||
# deviation = 1.0;
|
||||
# kernel = "11x11gaussian";
|
||||
background = false;
|
||||
background-frame = false;
|
||||
background-fixed = false;
|
||||
kern = "3x3box";
|
||||
}
|
||||
|
||||
# Exclude conditions for background blur.
|
||||
blur-background-exclude = [
|
||||
#"window_type = 'dock'",
|
||||
#"window_type = 'desktop'",
|
||||
#"class_g = 'URxvt'",
|
||||
#
|
||||
# prevents picom from blurring the background
|
||||
# when taking selection screenshot with `main`
|
||||
# https://github.com/naelstrof/maim/issues/130
|
||||
"class_g = 'slop'",
|
||||
"class_g *= 'Peek'",
|
||||
"name *= 'polybar-floating_wm'",
|
||||
"class_g = 'xsnow'",
|
||||
"_GTK_FRAME_EXTENTS@:c",
|
||||
"name *= 'overlay'",
|
||||
"class_g *= 'overlay'",
|
||||
#"window_type = 'dock'",
|
||||
#"window_type = 'desktop'"
|
||||
];
|
||||
|
||||
|
||||
#################################
|
||||
# General Settings #
|
||||
#################################
|
||||
|
||||
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
|
||||
# daemon = false
|
||||
|
||||
# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
|
||||
# `xrender` is the default one.
|
||||
#
|
||||
experimental-backends = true;
|
||||
backend = "glx";
|
||||
#backend = "xr_glx_hybrid"
|
||||
#backend = "xrender";
|
||||
|
||||
|
||||
# Enable/disable VSync.
|
||||
# vsync = false
|
||||
vsync = true
|
||||
|
||||
# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
|
||||
# dbus = false
|
||||
|
||||
# Try to detect WM windows (a non-override-redirect window with no
|
||||
# child that has 'WM_STATE') and mark them as active.
|
||||
#
|
||||
# mark-wmwin-focused = false
|
||||
mark-wmwin-focused = true;
|
||||
|
||||
# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
|
||||
# mark-ovredir-focused = false
|
||||
mark-ovredir-focused = true;
|
||||
|
||||
# Try to detect windows with rounded corners and don't consider them
|
||||
# shaped windows. The accuracy is not very high, unfortunately.
|
||||
#
|
||||
# detect-rounded-corners = false
|
||||
detect-rounded-corners = true;
|
||||
|
||||
# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
|
||||
# not passing '_NET_WM_OPACITY' of client windows to frame windows.
|
||||
#
|
||||
# detect-client-opacity = false
|
||||
detect-client-opacity = true;
|
||||
|
||||
# Specify refresh rate of the screen. If not specified or 0, picom will
|
||||
# try detecting this with X RandR extension.
|
||||
#
|
||||
# refresh-rate = 60
|
||||
refresh-rate = 0
|
||||
|
||||
# Limit picom to repaint at most once every 1 / 'refresh_rate' second to
|
||||
# boost performance. This should not be used with
|
||||
# vsync drm/opengl/opengl-oml
|
||||
# as they essentially does sw-opti's job already,
|
||||
# unless you wish to specify a lower refresh rate than the actual value.
|
||||
#
|
||||
# sw-opti =
|
||||
|
||||
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
|
||||
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
|
||||
# provided that the WM supports it.
|
||||
#
|
||||
# use-ewmh-active-win = false
|
||||
|
||||
# Unredirect all windows if a full-screen opaque window is detected,
|
||||
# to maximize performance for full-screen windows. Known to cause flickering
|
||||
# when redirecting/unredirecting windows. paint-on-overlay may make the flickering less obvious.
|
||||
#
|
||||
# unredir-if-possible = false
|
||||
|
||||
# Delay before unredirecting the window, in milliseconds. Defaults to 0.
|
||||
# unredir-if-possible-delay = 0
|
||||
|
||||
# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
|
||||
# unredir-if-possible-exclude = []
|
||||
|
||||
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
|
||||
# in the same group focused at the same time.
|
||||
#
|
||||
# detect-transient = false
|
||||
detect-transient = true
|
||||
|
||||
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
|
||||
# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if
|
||||
# detect-transient is enabled, too.
|
||||
#
|
||||
# detect-client-leader = false
|
||||
detect-client-leader = true
|
||||
|
||||
# Resize damaged region by a specific number of pixels.
|
||||
# A positive value enlarges it while a negative one shrinks it.
|
||||
# If the value is positive, those additional pixels will not be actually painted
|
||||
# to screen, only used in blur calculation, and such. (Due to technical limitations,
|
||||
# with use-damage, those pixels will still be incorrectly painted to screen.)
|
||||
# Primarily used to fix the line corruption issues of blur,
|
||||
# in which case you should use the blur radius value here
|
||||
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
|
||||
# with a 5x5 one you use `--resize-damage 2`, and so on).
|
||||
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
|
||||
#
|
||||
# resize-damage = 1
|
||||
|
||||
# Specify a list of conditions of windows that should be painted with inverted color.
|
||||
# Resource-hogging, and is not well tested.
|
||||
#
|
||||
# invert-color-include = []
|
||||
|
||||
# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
|
||||
# Might cause incorrect opacity when rendering transparent content (but never
|
||||
# practically happened) and may not work with blur-background.
|
||||
# My tests show a 15% performance boost. Recommended.
|
||||
#
|
||||
# glx-no-stencil = false
|
||||
|
||||
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||
# Probably could improve performance on rapid window content changes,
|
||||
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
|
||||
# Recommended if it works.
|
||||
#
|
||||
# glx-no-rebind-pixmap = false
|
||||
|
||||
# Disable the use of damage information.
|
||||
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
|
||||
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
|
||||
# The opposing option is use-damage
|
||||
#
|
||||
# no-use-damage = false
|
||||
use-damage = true
|
||||
|
||||
# Use X Sync fence to sync clients' draw calls, to make sure all draw
|
||||
# calls are finished before picom starts drawing. Needed on nvidia-drivers
|
||||
# with GLX backend for some users.
|
||||
#
|
||||
# xrender-sync-fence = false
|
||||
|
||||
# GLX backend: Use specified GLSL fragment shader for rendering window contents.
|
||||
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
|
||||
# in the source tree for examples.
|
||||
#
|
||||
# glx-fshader-win = ''
|
||||
|
||||
# Force all windows to be painted with blending. Useful if you
|
||||
# have a glx-fshader-win that could turn opaque pixels transparent.
|
||||
#
|
||||
# force-win-blend = false
|
||||
|
||||
# Do not use EWMH to detect fullscreen windows.
|
||||
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
|
||||
#
|
||||
# no-ewmh-fullscreen = false
|
||||
|
||||
# Dimming bright windows so their brightness doesn't exceed this set value.
|
||||
# Brightness of a window is estimated by averaging all pixels in the window,
|
||||
# so this could comes with a performance hit.
|
||||
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
|
||||
#
|
||||
# max-brightness = 1.0
|
||||
|
||||
# Make transparent windows clip other windows like non-transparent windows do,
|
||||
# instead of blending on top of them.
|
||||
#
|
||||
# transparent-clipping = false
|
||||
|
||||
# Set the log level. Possible values are:
|
||||
# "trace", "debug", "info", "warn", "error"
|
||||
# in increasing level of importance. Case doesn't matter.
|
||||
# If using the "TRACE" log level, it's better to log into a file
|
||||
# using *--log-file*, since it can generate a huge stream of logs.
|
||||
#
|
||||
# log-level = "debug"
|
||||
log-level = "info";
|
||||
|
||||
# Set the log file.
|
||||
# If *--log-file* is never specified, logs will be written to stderr.
|
||||
# Otherwise, logs will to written to the given file, though some of the early
|
||||
# logs might still be written to the stderr.
|
||||
# When setting this option from the config file, it is recommended to use an absolute path.
|
||||
#
|
||||
# log-file = '/path/to/your/log/file'
|
||||
|
||||
# Show all X errors (for debugging)
|
||||
# show-all-xerrors = false
|
||||
|
||||
# Write process ID to a file.
|
||||
# write-pid-path = '/path/to/your/log/file'
|
||||
|
||||
# Window type settings
|
||||
#
|
||||
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
|
||||
# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
|
||||
# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
|
||||
# "tooltip", "notification", "combo", and "dnd".
|
||||
#
|
||||
# Following per window-type options are available: ::
|
||||
#
|
||||
# fade, shadow:::
|
||||
# Controls window-type-specific shadow and fade settings.
|
||||
#
|
||||
# opacity:::
|
||||
# Controls default opacity of the window type.
|
||||
#
|
||||
# focus:::
|
||||
# Controls whether the window of this type is to be always considered focused.
|
||||
# (By default, all window types except "normal" and "dialog" has this on.)
|
||||
#
|
||||
# full-shadow:::
|
||||
# Controls whether shadow is drawn under the parts of the window that you
|
||||
# normally won't be able to see. Useful when the window has parts of it
|
||||
# transparent, and you want shadows in those areas.
|
||||
#
|
||||
# redir-ignore:::
|
||||
# Controls whether this type of windows should cause screen to become
|
||||
# redirected again after been unredirected. If you have unredir-if-possible
|
||||
# set, and doesn't want certain window to cause unnecessary screen redirection,
|
||||
# you can set this to `true`.
|
||||
#
|
||||
wintypes:
|
||||
{
|
||||
normal = { fade = true; shadow = false; }
|
||||
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
|
||||
dock = { shadow = false; }
|
||||
dnd = { shadow = false; }
|
||||
popup_menu = { opacity = 0.8; }
|
||||
dropdown_menu = { opacity = 0.8; }
|
||||
};
|
||||
@@ -0,0 +1,533 @@
|
||||
#################################
|
||||
# Corners #
|
||||
#################################
|
||||
# requires: https://github.com/sdhand/compton
|
||||
corner-radius = 15.0;
|
||||
rounded-corners-exclude = [
|
||||
#"class_g *= ''",
|
||||
"class_g != 'Polybar'",
|
||||
# "class_g != 'Dunst'",
|
||||
#"window_type = 'normal'",
|
||||
#"window_type = 'popup'",
|
||||
#"window_type = 'menu'",
|
||||
#"class_g = 'awesome'",
|
||||
#"class_g *= 'thunar'",
|
||||
#"class_g *= 'Thunar'",
|
||||
#"class_g = 'URxvt'",
|
||||
#"class_g = 'XTerm'",
|
||||
#"class_g = 'kitty'",
|
||||
#"class_g = 'Alacritty'",
|
||||
#"class_g = 'code-oss'",
|
||||
#"class_g = 'firefox'",
|
||||
#"class_g = 'Thunderbird'"
|
||||
];
|
||||
|
||||
round-borders = 0;
|
||||
round-borders-exclude = [
|
||||
#"window_type = 'normal'",
|
||||
#"class_g = 'TelegramDesktop'",
|
||||
];
|
||||
|
||||
# Specify a list of border width rules, in the format `PIXELS:PATTERN`,
|
||||
# Note we don't make any guarantee about possible conflicts with the
|
||||
# border_width set by the window manager.
|
||||
#
|
||||
# example:
|
||||
# round-borders-rule = [ "2:class_g = 'URxvt'" ];
|
||||
#
|
||||
round-borders-rule = [
|
||||
];
|
||||
|
||||
#################################
|
||||
# Shadows #
|
||||
#################################
|
||||
|
||||
|
||||
# Enabled client-side shadows on windows. Note desktop windows
|
||||
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
|
||||
# unless explicitly requested using the wintypes option.
|
||||
#
|
||||
# shadow = false
|
||||
shadow = true;
|
||||
|
||||
# The blur radius for shadows, in pixels. (defaults to 12)
|
||||
# shadow-radius = 12
|
||||
shadow-radius = 5;
|
||||
|
||||
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
||||
# shadow-opacity = .75
|
||||
|
||||
# The left offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-x = -15
|
||||
shadow-offset-x = -5;
|
||||
|
||||
# The top offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-y = -15
|
||||
shadow-offset-y = -5;
|
||||
|
||||
# Avoid drawing shadows on dock/panel windows. This option is deprecated,
|
||||
# you should use the *wintypes* option in your config file instead.
|
||||
#
|
||||
# no-dock-shadow = false
|
||||
|
||||
# Don't draw shadows on drag-and-drop windows. This option is deprecated,
|
||||
# you should use the *wintypes* option in your config file instead.
|
||||
#
|
||||
# no-dnd-shadow = false
|
||||
|
||||
# Red color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-red = 0
|
||||
|
||||
# Green color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-green = 0
|
||||
|
||||
# Blue color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-blue = 0
|
||||
|
||||
# Do not paint shadows on shaped windows. Note shaped windows
|
||||
# here means windows setting its shape through X Shape extension.
|
||||
# Those using ARGB background is beyond our control.
|
||||
# Deprecated, use
|
||||
# shadow-exclude = 'bounding_shaped'
|
||||
# or
|
||||
# shadow-exclude = 'bounding_shaped && !rounded_corners'
|
||||
# instead.
|
||||
#
|
||||
shadow-ignore-shaped = false;
|
||||
|
||||
# Specify a list of conditions of windows that should have no shadow.
|
||||
#
|
||||
# examples:
|
||||
# shadow-exclude = "n:e:Notification";
|
||||
#
|
||||
# shadow-exclude = []
|
||||
shadow-exclude = [
|
||||
"! name~=''",
|
||||
"name *= 'polybar'",
|
||||
"name = 'Notification'",
|
||||
"name = 'Plank'",
|
||||
"name = 'Docky'",
|
||||
"name = 'Kupfer'",
|
||||
"name = 'xfce4-notifyd'",
|
||||
"name *= 'VLC'",
|
||||
"name *= 'overlay'",
|
||||
"name *= 'compton'",
|
||||
"name *= 'picom'",
|
||||
"name *= 'Chromium'",
|
||||
"name *= 'Chrome'",
|
||||
"name *= 'overlay'",
|
||||
"class_g *= 'overlay'",
|
||||
"class_g = 'Firefox' && argb",
|
||||
"class_g = 'Conky'",
|
||||
"class_g = 'Kupfer'",
|
||||
"class_g = 'Synapse'",
|
||||
"name = 'notify-osd'",
|
||||
"class_g ?= 'Cairo-dock'",
|
||||
"class_g ?= 'Xfce4-notifyd'",
|
||||
"class_g ?= 'Xfce4-power-manager'",
|
||||
"_GTK_FRAME_EXTENTS@:c",
|
||||
"_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
|
||||
];
|
||||
|
||||
# Specify a X geometry that describes the region in which shadow should not
|
||||
# be painted in, such as a dock window region. Use
|
||||
# shadow-exclude-reg = "x10+0+0"
|
||||
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
|
||||
#
|
||||
# shadow-exclude-reg = ""
|
||||
|
||||
# Crop shadow of a window fully on a particular Xinerama screen to the screen.
|
||||
# xinerama-shadow-crop = false
|
||||
|
||||
|
||||
#################################
|
||||
# Fading #
|
||||
#################################
|
||||
|
||||
|
||||
# Fade windows in/out when opening/closing and when opacity changes,
|
||||
# unless no-fading-openclose is used.
|
||||
# fading = false
|
||||
fading = true;
|
||||
|
||||
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
|
||||
# fade-in-step = 0.028
|
||||
fade-in-step = 0.03;
|
||||
|
||||
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
|
||||
# fade-out-step = 0.03
|
||||
fade-out-step = 0.03;
|
||||
|
||||
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
|
||||
fade-delta = 5
|
||||
|
||||
# Specify a list of conditions of windows that should not be faded.
|
||||
# don't need this, we disable fading for all normal windows with wintypes: {}
|
||||
fade-exclude = [
|
||||
"class_g = 'slop'" # maim
|
||||
]
|
||||
|
||||
# Do not fade on window open/close.
|
||||
# no-fading-openclose = false
|
||||
|
||||
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
|
||||
# no-fading-destroyed-argb = false
|
||||
|
||||
|
||||
#################################
|
||||
# Transparency / Opacity #
|
||||
#################################
|
||||
|
||||
|
||||
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
||||
# inactive-opacity = 1
|
||||
inactive-opacity = 1;
|
||||
|
||||
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
||||
# frame-opacity = 1.0
|
||||
frame-opacity = 1;
|
||||
|
||||
# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
|
||||
# menu-opacity = 1.0
|
||||
|
||||
# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
|
||||
# inactive-opacity-override = true
|
||||
inactive-opacity-override = false;
|
||||
|
||||
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
|
||||
active-opacity = 1.0;
|
||||
|
||||
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
|
||||
inactive-dim = 0.1;
|
||||
|
||||
# Specify a list of conditions of windows that should always be considered focused.
|
||||
# focus-exclude = []
|
||||
focus-exclude = [
|
||||
"class_g = 'Cairo-clock'",
|
||||
"class_g = 'Bar'", # lemonbar
|
||||
"class_g = 'slop'" # maim
|
||||
];
|
||||
|
||||
# Use fixed inactive dim value, instead of adjusting according to window opacity.
|
||||
# inactive-dim-fixed = 1.0
|
||||
|
||||
# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
|
||||
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
|
||||
# Note we don't make any guarantee about possible conflicts with other
|
||||
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
|
||||
# example:
|
||||
# opacity-rule = [ "80:class_g = 'URxvt'" ];
|
||||
#
|
||||
# opacity-rule = []
|
||||
opacity-rule = [
|
||||
"80:class_g = 'Polybar'",
|
||||
"80:class_g *= 'Dunst'",
|
||||
"100:class_g = 'slop'", # maim
|
||||
"100:class_g = 'XTerm'",
|
||||
"100:class_g = 'URxvt'",
|
||||
"100:class_g = 'kitty'",
|
||||
"100:class_g = 'Alacritty'",
|
||||
"100:class_g = 'code-oss'",
|
||||
"100:class_g = 'Meld'",
|
||||
"90:class_g = 'Joplin'",
|
||||
"100:class_g = 'firefox'",
|
||||
"100:class_g = 'Thunderbird'"
|
||||
];
|
||||
|
||||
|
||||
#################################
|
||||
# Background-Blurring #
|
||||
#################################
|
||||
|
||||
|
||||
# Parameters for background blurring, see the *BLUR* section for more information.
|
||||
# blur-method =
|
||||
# blur-size = 12
|
||||
#
|
||||
# blur-deviation = false
|
||||
|
||||
# Blur background of semi-transparent / ARGB windows.
|
||||
# Bad in performance, with driver-dependent behavior.
|
||||
# The name of the switch may change without prior notifications.
|
||||
#
|
||||
blur-background = true;
|
||||
|
||||
# Blur background of windows when the window frame is not opaque.
|
||||
# Implies:
|
||||
# blur-background
|
||||
# Bad in performance, with driver-dependent behavior. The name may change.
|
||||
#
|
||||
# blur-background-frame = false;
|
||||
|
||||
|
||||
# Use fixed blur strength rather than adjusting according to window opacity.
|
||||
blur-background-fixed = false;
|
||||
|
||||
|
||||
# Specify the blur convolution kernel, with the following format:
|
||||
# example:
|
||||
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
|
||||
#
|
||||
# blur-kern = ''
|
||||
# blur-kern = "3x3box";
|
||||
|
||||
blur: {
|
||||
# requires: https://github.com/ibhagwan/picom
|
||||
method = "dual_kawase";
|
||||
#method = "kernel";
|
||||
strength = 12;
|
||||
# deviation = 1.0;
|
||||
# kernel = "11x11gaussian";
|
||||
background = false;
|
||||
background-frame = false;
|
||||
background-fixed = false;
|
||||
kern = "3x3box";
|
||||
}
|
||||
|
||||
# Exclude conditions for background blur.
|
||||
blur-background-exclude = [
|
||||
#"window_type = 'dock'",
|
||||
#"window_type = 'desktop'",
|
||||
#"class_g = 'URxvt'",
|
||||
#
|
||||
# prevents picom from blurring the background
|
||||
# when taking selection screenshot with `main`
|
||||
# https://github.com/naelstrof/maim/issues/130
|
||||
"class_g = 'slop'",
|
||||
"class_g *= 'Peek'",
|
||||
"name *= 'polybar-floating_wm'",
|
||||
"class_g = 'xsnow'",
|
||||
"_GTK_FRAME_EXTENTS@:c",
|
||||
"name *= 'overlay'",
|
||||
"class_g *= 'overlay'",
|
||||
#"window_type = 'dock'",
|
||||
#"window_type = 'desktop'"
|
||||
];
|
||||
|
||||
|
||||
#################################
|
||||
# General Settings #
|
||||
#################################
|
||||
|
||||
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
|
||||
# daemon = false
|
||||
|
||||
# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
|
||||
# `xrender` is the default one.
|
||||
#
|
||||
experimental-backends = false;
|
||||
backend = "glx";
|
||||
#backend = "xr_glx_hybrid"
|
||||
#backend = "xrender";
|
||||
|
||||
|
||||
# Enable/disable VSync.
|
||||
# vsync = false
|
||||
vsync = true
|
||||
|
||||
# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
|
||||
# dbus = false
|
||||
|
||||
# Try to detect WM windows (a non-override-redirect window with no
|
||||
# child that has 'WM_STATE') and mark them as active.
|
||||
#
|
||||
# mark-wmwin-focused = false
|
||||
mark-wmwin-focused = true;
|
||||
|
||||
# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
|
||||
# mark-ovredir-focused = false
|
||||
mark-ovredir-focused = true;
|
||||
|
||||
# Try to detect windows with rounded corners and don't consider them
|
||||
# shaped windows. The accuracy is not very high, unfortunately.
|
||||
#
|
||||
# detect-rounded-corners = false
|
||||
detect-rounded-corners = true;
|
||||
|
||||
# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
|
||||
# not passing '_NET_WM_OPACITY' of client windows to frame windows.
|
||||
#
|
||||
# detect-client-opacity = false
|
||||
detect-client-opacity = true;
|
||||
|
||||
# Specify refresh rate of the screen. If not specified or 0, picom will
|
||||
# try detecting this with X RandR extension.
|
||||
#
|
||||
# refresh-rate = 60
|
||||
refresh-rate = 0
|
||||
|
||||
# Limit picom to repaint at most once every 1 / 'refresh_rate' second to
|
||||
# boost performance. This should not be used with
|
||||
# vsync drm/opengl/opengl-oml
|
||||
# as they essentially does sw-opti's job already,
|
||||
# unless you wish to specify a lower refresh rate than the actual value.
|
||||
#
|
||||
# sw-opti =
|
||||
|
||||
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
|
||||
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
|
||||
# provided that the WM supports it.
|
||||
#
|
||||
# use-ewmh-active-win = false
|
||||
|
||||
# Unredirect all windows if a full-screen opaque window is detected,
|
||||
# to maximize performance for full-screen windows. Known to cause flickering
|
||||
# when redirecting/unredirecting windows. paint-on-overlay may make the flickering less obvious.
|
||||
#
|
||||
# unredir-if-possible = false
|
||||
|
||||
# Delay before unredirecting the window, in milliseconds. Defaults to 0.
|
||||
# unredir-if-possible-delay = 0
|
||||
|
||||
# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
|
||||
# unredir-if-possible-exclude = []
|
||||
|
||||
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
|
||||
# in the same group focused at the same time.
|
||||
#
|
||||
# detect-transient = false
|
||||
detect-transient = true
|
||||
|
||||
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
|
||||
# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if
|
||||
# detect-transient is enabled, too.
|
||||
#
|
||||
# detect-client-leader = false
|
||||
detect-client-leader = true
|
||||
|
||||
# Resize damaged region by a specific number of pixels.
|
||||
# A positive value enlarges it while a negative one shrinks it.
|
||||
# If the value is positive, those additional pixels will not be actually painted
|
||||
# to screen, only used in blur calculation, and such. (Due to technical limitations,
|
||||
# with use-damage, those pixels will still be incorrectly painted to screen.)
|
||||
# Primarily used to fix the line corruption issues of blur,
|
||||
# in which case you should use the blur radius value here
|
||||
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
|
||||
# with a 5x5 one you use `--resize-damage 2`, and so on).
|
||||
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
|
||||
#
|
||||
# resize-damage = 1
|
||||
|
||||
# Specify a list of conditions of windows that should be painted with inverted color.
|
||||
# Resource-hogging, and is not well tested.
|
||||
#
|
||||
# invert-color-include = []
|
||||
|
||||
# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
|
||||
# Might cause incorrect opacity when rendering transparent content (but never
|
||||
# practically happened) and may not work with blur-background.
|
||||
# My tests show a 15% performance boost. Recommended.
|
||||
#
|
||||
# glx-no-stencil = false
|
||||
|
||||
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||
# Probably could improve performance on rapid window content changes,
|
||||
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
|
||||
# Recommended if it works.
|
||||
#
|
||||
# glx-no-rebind-pixmap = false
|
||||
|
||||
# Disable the use of damage information.
|
||||
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
|
||||
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
|
||||
# The opposing option is use-damage
|
||||
#
|
||||
# no-use-damage = false
|
||||
use-damage = true
|
||||
|
||||
# Use X Sync fence to sync clients' draw calls, to make sure all draw
|
||||
# calls are finished before picom starts drawing. Needed on nvidia-drivers
|
||||
# with GLX backend for some users.
|
||||
#
|
||||
# xrender-sync-fence = false
|
||||
|
||||
# GLX backend: Use specified GLSL fragment shader for rendering window contents.
|
||||
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
|
||||
# in the source tree for examples.
|
||||
#
|
||||
# glx-fshader-win = ''
|
||||
|
||||
# Force all windows to be painted with blending. Useful if you
|
||||
# have a glx-fshader-win that could turn opaque pixels transparent.
|
||||
#
|
||||
# force-win-blend = false
|
||||
|
||||
# Do not use EWMH to detect fullscreen windows.
|
||||
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
|
||||
#
|
||||
# no-ewmh-fullscreen = false
|
||||
|
||||
# Dimming bright windows so their brightness doesn't exceed this set value.
|
||||
# Brightness of a window is estimated by averaging all pixels in the window,
|
||||
# so this could comes with a performance hit.
|
||||
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
|
||||
#
|
||||
# max-brightness = 1.0
|
||||
|
||||
# Make transparent windows clip other windows like non-transparent windows do,
|
||||
# instead of blending on top of them.
|
||||
#
|
||||
# transparent-clipping = false
|
||||
|
||||
# Set the log level. Possible values are:
|
||||
# "trace", "debug", "info", "warn", "error"
|
||||
# in increasing level of importance. Case doesn't matter.
|
||||
# If using the "TRACE" log level, it's better to log into a file
|
||||
# using *--log-file*, since it can generate a huge stream of logs.
|
||||
#
|
||||
# log-level = "debug"
|
||||
log-level = "info";
|
||||
|
||||
# Set the log file.
|
||||
# If *--log-file* is never specified, logs will be written to stderr.
|
||||
# Otherwise, logs will to written to the given file, though some of the early
|
||||
# logs might still be written to the stderr.
|
||||
# When setting this option from the config file, it is recommended to use an absolute path.
|
||||
#
|
||||
# log-file = '/path/to/your/log/file'
|
||||
|
||||
# Show all X errors (for debugging)
|
||||
# show-all-xerrors = false
|
||||
|
||||
# Write process ID to a file.
|
||||
# write-pid-path = '/path/to/your/log/file'
|
||||
|
||||
# Window type settings
|
||||
#
|
||||
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
|
||||
# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
|
||||
# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
|
||||
# "tooltip", "notification", "combo", and "dnd".
|
||||
#
|
||||
# Following per window-type options are available: ::
|
||||
#
|
||||
# fade, shadow:::
|
||||
# Controls window-type-specific shadow and fade settings.
|
||||
#
|
||||
# opacity:::
|
||||
# Controls default opacity of the window type.
|
||||
#
|
||||
# focus:::
|
||||
# Controls whether the window of this type is to be always considered focused.
|
||||
# (By default, all window types except "normal" and "dialog" has this on.)
|
||||
#
|
||||
# full-shadow:::
|
||||
# Controls whether shadow is drawn under the parts of the window that you
|
||||
# normally won't be able to see. Useful when the window has parts of it
|
||||
# transparent, and you want shadows in those areas.
|
||||
#
|
||||
# redir-ignore:::
|
||||
# Controls whether this type of windows should cause screen to become
|
||||
# redirected again after been unredirected. If you have unredir-if-possible
|
||||
# set, and doesn't want certain window to cause unnecessary screen redirection,
|
||||
# you can set this to `true`.
|
||||
#
|
||||
wintypes:
|
||||
{
|
||||
normal = { fade = true; shadow = false; }
|
||||
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
|
||||
dock = { shadow = false; }
|
||||
dnd = { shadow = false; }
|
||||
popup_menu = { opacity = 0.8; }
|
||||
dropdown_menu = { opacity = 0.8; }
|
||||
};
|
||||
@@ -0,0 +1,2 @@
|
||||
*.bak
|
||||
config
|
||||
@@ -1,503 +0,0 @@
|
||||
;=====================================================
|
||||
;
|
||||
; To learn more about how to configure Polybar
|
||||
; go to https://github.com/jaagr/polybar
|
||||
;
|
||||
; The README contains alot of information
|
||||
;
|
||||
;=====================================================
|
||||
|
||||
[colors]
|
||||
background = #000
|
||||
foreground = #fff
|
||||
foreground-alt = #555
|
||||
|
||||
[bar/landscape]
|
||||
|
||||
; not used: songname menu-media xbacklightbuttons
|
||||
modules-left = i3touchmenu update ovpn nvpn usbmodem1 usbmodem2 usbmodem3 eth wlan
|
||||
modules-center = xbacklight i3 volume
|
||||
modules-right = cpu memory temperature disk battery date
|
||||
|
||||
monitor = ${env:MONITOR:eDP1}
|
||||
width = 100%
|
||||
height = 20
|
||||
fixed-center = true
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
line-size = 3
|
||||
line-color = #000
|
||||
separator =|
|
||||
module-margin-left = 1
|
||||
module-margin-right = 1
|
||||
padding-right= 2
|
||||
font-0 = Hack Nerd Font:fontformat=truetype:pixelsize=10;1
|
||||
font-1 = Font Awesome 5 Free:fontformat=truetype:pixelsize=10:antialias=true;0
|
||||
tray-position = left
|
||||
tray-padding = 9
|
||||
tray-detached = false
|
||||
tray-maxsize = 15
|
||||
tray-background = ${root.background}
|
||||
tray-scale = 1.0
|
||||
enable-ipc = true
|
||||
|
||||
[bar/portrait]
|
||||
; not used: songname menu-media update disk eth
|
||||
modules-left = i3touchmenu xbacklightbuttons ovpn nvpn usbmodem1 usbmodem2 usbmodem3 wlanshort
|
||||
modules-center = xbacklight i3 volume
|
||||
modules-right = cpu memory temperature batteryshort date
|
||||
|
||||
monitor = ${env:MONITOR:eDP1}
|
||||
width = 100%
|
||||
height = 20
|
||||
fixed-center = true
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
line-size = 3
|
||||
line-color = #000
|
||||
separator =|
|
||||
module-margin-left = 1
|
||||
module-margin-right = 1
|
||||
padding-right= 2
|
||||
font-0 = Hack Nerd Font:fontformat=truetype:pixelsize=10;1
|
||||
font-1 = Font Awesome 5 Free:fontformat=truetype:pixelsize=10:antialias=true;0
|
||||
tray-position = left
|
||||
tray-padding = 9
|
||||
tray-detached = false
|
||||
tray-maxsize = 15
|
||||
tray-background = ${root.background}
|
||||
tray-scale = 1.0
|
||||
enable-ipc = true
|
||||
|
||||
|
||||
|
||||
[module/i3]
|
||||
type = internal/i3
|
||||
pin-workspaces = false
|
||||
strip-wsnumbers = true
|
||||
index-sort = true
|
||||
enable-click = true
|
||||
enable-scroll = true
|
||||
wrapping-scroll = true
|
||||
reverse-scroll = true
|
||||
fuzzy-match = false
|
||||
format = <label-state> <label-mode>
|
||||
label-mode = %mode%
|
||||
label-mode-padding = 1
|
||||
label-mode-background = ${colors.background}
|
||||
label-focused =%icon%%name%
|
||||
label-focused-foreground = ${colors.foreground}
|
||||
label-focused-background = ${colors.background}
|
||||
label-focused-underline = #fff
|
||||
label-focused-margin = 2
|
||||
label-unfocused =%icon%%name%
|
||||
label-unfocused-foreground = ${colors.foreground}
|
||||
label-unfocused-background = ${colors.background}
|
||||
label-unfocused-margin = 1
|
||||
label-visible =%icon%%name%
|
||||
label-visible-underline = #fff
|
||||
label-visible-margin = 1
|
||||
label-urgent =%icon%%name%!
|
||||
label-urgent-foreground = ${colors.foreground-alt}
|
||||
label-urgent-background = ${colors.background}
|
||||
label-urgent-padding = 1
|
||||
|
||||
[module/menu-media]
|
||||
type = custom/menu
|
||||
expand-right = true
|
||||
label-open =
|
||||
label-close =
|
||||
label-separator = " "
|
||||
menu-0-0 =
|
||||
menu-0-0-exec = "playerctl previous"
|
||||
menu-0-1 =
|
||||
menu-0-1-exec = "playerctl play-pause"
|
||||
menu-0-2 =
|
||||
menu-0-2-exec = "playerctl next"
|
||||
|
||||
[module/ovpn]
|
||||
type = custom/script
|
||||
interval = 3
|
||||
format = ovpn: <label>
|
||||
label-maxlen=50
|
||||
label-ellipsis=true
|
||||
exec = echo $(nmcli con show --active | grep vpn | cut -c1-12 | tr -d ' ')
|
||||
|
||||
[module/nvpn]
|
||||
type = custom/script
|
||||
interval = 3
|
||||
format = nvpn: <label>
|
||||
label-maxlen=50
|
||||
label-ellipsis=true
|
||||
exec = echo $(nordvpn status | grep -oP '(?<=Current server: ).*' | cut -f1 -d'.')
|
||||
|
||||
[module/update]
|
||||
type = custom/script
|
||||
interval = 60
|
||||
format = upd: <label>
|
||||
label-maxlen=15
|
||||
label-ellipsis=true
|
||||
exec = "echo $(yay -Qu 2>/dev/null | wc -l | awk '$1 ~ /^[[:digit:]]+$/')"
|
||||
click-left = "setsid urxvt -e sh -c 'echo ---UPDATE LIST---; echo; yay -Qu; echo ; read -p ---END---'"
|
||||
click-right = "setsid urxvt -e sh -c 'echo ---UPDATING---; echo ; yay -Syu --sudoloop; echo ; read -p ---END---'"
|
||||
click-middle = "setsid urxvt -e sh -c 'echo ---UPDATING, NOCONFIRM---; echo ; yay -Syu --sudoloop --noconfirm; echo ; read -p ---END---'"
|
||||
|
||||
[module/quicklaunch]
|
||||
type = custom/script
|
||||
format = | <label>
|
||||
interval = 999999999
|
||||
exec = echo quick
|
||||
label = quick
|
||||
label-maxlen=5
|
||||
label-ellipsis=false
|
||||
click-left = "setsid quicklaunch"
|
||||
|
||||
[module/songname]
|
||||
type = custom/script
|
||||
interval = 3
|
||||
format = <label>
|
||||
label-maxlen=50
|
||||
label-ellipsis=true
|
||||
exec = echo $(printf "%s: %s" "$(playerctl metadata artist 2>&1)" "$(playerctl metadata title 2>&1)" | sed -r 's/No players found//g;' | awk 'length > 2')
|
||||
click-left = "playerctl play-pause"
|
||||
click-right = "playerctl next"
|
||||
click-middle = "playerctl previous"
|
||||
|
||||
[module/xbacklightbuttons]
|
||||
type = custom/menu
|
||||
expand-right = true
|
||||
label-open = blght
|
||||
label-close = x
|
||||
label-separator = " "
|
||||
menu-0-0 = -
|
||||
menu-0-0-exec = "xbacklight -dec 10; notify-send 'brightness down'"
|
||||
menu-0-1 = +
|
||||
menu-0-1-exec = "xbacklight -inc 10; notify-send 'brightness up'"
|
||||
|
||||
[module/xbacklight]
|
||||
type = internal/xbacklight
|
||||
format = <label>
|
||||
label = %percentage%
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 2
|
||||
label = cpu: %percentage%%
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
interval = 2
|
||||
label = ram: %percentage_used%%
|
||||
|
||||
[module/temperature]
|
||||
type = internal/temperature
|
||||
interval = 3
|
||||
label = tmp: %temperature-c%
|
||||
|
||||
[module/wlan]
|
||||
type = internal/network
|
||||
interface = wlp2s0
|
||||
interval = 3
|
||||
format-connected = <label-connected>
|
||||
label-connected = %ifname%: %local_ip% [%essid%]
|
||||
|
||||
[module/wlanshort]
|
||||
type = internal/network
|
||||
interface = wlp2s0
|
||||
interval = 3
|
||||
format-connected = <label-connected>
|
||||
label-connected = %essid%
|
||||
|
||||
[module/eth]
|
||||
type = internal/network
|
||||
interface = enp60s0u1u4
|
||||
interval = 3
|
||||
format-connected = <label-connected>
|
||||
label-connected = %ifname%: %local_ip%
|
||||
|
||||
[module/usbmodem1]
|
||||
type = custom/script
|
||||
format = usb: <label>
|
||||
interval = 3
|
||||
exec = echo $(ip -4 addr show enp0s20f0u1 2>&1 | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
|
||||
|
||||
[module/usbmodem2]
|
||||
type = custom/script
|
||||
format = usb: <label>
|
||||
interval = 3
|
||||
exec = echo $(ip -4 addr show enp0s20f0u6 2>&1 | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
|
||||
|
||||
[module/usbmodem3]
|
||||
type = custom/script
|
||||
format = usb: <label>
|
||||
interval = 3
|
||||
exec = echo $(ip -4 addr show enp0s20f0u3 2>&1 | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
date = tme:
|
||||
date-alt = %d.%m.%Y,
|
||||
time = %H:%M
|
||||
time-alt = %H:%M:%S
|
||||
label = %date% %time%
|
||||
|
||||
[module/volume]
|
||||
type = internal/alsa
|
||||
format-volume = <label-volume>
|
||||
label-volume = %percentage%
|
||||
label-volume-foreground = ${root.foreground}
|
||||
format-muted-foreground = ${root.foreground}
|
||||
label-muted = x
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
battery = BAT0
|
||||
poll-interval = 3
|
||||
adapter = ADP1
|
||||
full-at = 95
|
||||
label-full = bat: %percentage%%
|
||||
label-charging = bat: %percentage%% (+%consumption%W, %time%)
|
||||
label-discharging = bat: %percentage%% (-%consumption%W, %time%)
|
||||
|
||||
[module/batteryshort]
|
||||
type = internal/battery
|
||||
battery = BAT0
|
||||
poll-interval = 3
|
||||
adapter = ADP1
|
||||
full-at = 95
|
||||
label-full = bat: %percentage%%
|
||||
label-charging = bat: %percentage%%
|
||||
label-discharging = bat: %percentage%%
|
||||
|
||||
[module/disk]
|
||||
type = internal/fs
|
||||
mount-0 = /
|
||||
interval = 10
|
||||
fixed-values = true
|
||||
spacing = 4
|
||||
label-mounted = dsk: %used% / %total%
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
|
||||
[global/wm]
|
||||
margin-top = 0
|
||||
margin-bottom = 5
|
||||
|
||||
[module/i3touchmenu]
|
||||
type = custom/menu
|
||||
|
||||
expand-right = true
|
||||
|
||||
format-spacing = 1
|
||||
|
||||
;; Open the menu
|
||||
label-open = "| touch"
|
||||
label-open-foreground = #FFF
|
||||
|
||||
;; Close the menu
|
||||
label-close = "| x"
|
||||
label-separator = "'"
|
||||
|
||||
;; Launcher
|
||||
menu-0-0 =
|
||||
menu-0-0-exec = menu-open-1
|
||||
|
||||
;; Move
|
||||
menu-0-1 =
|
||||
menu-0-1-exec = menu-open-2
|
||||
|
||||
;; Layout
|
||||
menu-0-2 =
|
||||
menu-0-2-exec = menu-open-3
|
||||
|
||||
;; Split
|
||||
menu-0-3 =
|
||||
menu-0-3-exec = menu-open-4
|
||||
|
||||
;; Resize
|
||||
menu-0-4 =
|
||||
menu-0-4-exec = menu-open-5
|
||||
|
||||
;; Move to workspace
|
||||
menu-0-5 =
|
||||
menu-0-5-exec = menu-open-6
|
||||
|
||||
;; Kill
|
||||
menu-0-6 =
|
||||
menu-0-6-exec = menu-open-7
|
||||
|
||||
|
||||
;; Power
|
||||
menu-0-7 =""
|
||||
menu-0-7-exec = menu-open-8
|
||||
|
||||
;; Launcher: Back to main menu
|
||||
menu-1-0 =
|
||||
menu-1-0-exec = menu-open-0
|
||||
|
||||
;; Launcher
|
||||
menu-1-1="quick"
|
||||
menu-1-1-exec= setsid quicklaunch
|
||||
|
||||
:: Launcher
|
||||
menu-1-2="xournal"
|
||||
menu-1-2-exec = "setsid xournalpp"
|
||||
|
||||
:: Launcher
|
||||
menu-1-3="sync"
|
||||
menu-1-3-exec = "setsid python Sync/o_school/5AHEL/Notebooks/pdfconvert.py"
|
||||
|
||||
:: Launcher
|
||||
menu-1-4=""
|
||||
menu-1-4-exec = urxvt &
|
||||
|
||||
;; Move: Back to main menu
|
||||
menu-2-0 =
|
||||
menu-2-0-exec = menu-open-0
|
||||
|
||||
;; Move: Left
|
||||
menu-2-1 =
|
||||
menu-2-1-exec = i3-msg 'move left'
|
||||
|
||||
;; Move: Right
|
||||
menu-2-2 =
|
||||
menu-2-2-exec = i3-msg 'move right'
|
||||
|
||||
;; Move: Up
|
||||
menu-2-3 =
|
||||
menu-2-3-exec = i3-msg 'move up'
|
||||
|
||||
;; Move: Down
|
||||
menu-2-4 = ""
|
||||
menu-2-4-exec = i3-msg 'move down'
|
||||
|
||||
;; Layout: Back to main menu
|
||||
menu-3-0 =
|
||||
menu-3-0-exec = menu-open-0
|
||||
|
||||
|
||||
;; Layout: Split
|
||||
menu-3-1 = split
|
||||
menu-3-1-exec = i3-msg 'layout toggle split'
|
||||
|
||||
;; Layout: Stacking
|
||||
menu-3-2 = stack
|
||||
menu-3-2-exec = i3-msg 'layout stacking'
|
||||
|
||||
;; Layout: Tabbed
|
||||
menu-3-3 = tab
|
||||
menu-3-3-exec = i3-msg 'layout tabbed'
|
||||
|
||||
;; Layout: Toggle floating
|
||||
menu-3-4 = float
|
||||
menu-3-4-exec = i3-msg 'floating toggle'
|
||||
|
||||
;; Split: Back to main menu
|
||||
menu-4-0 =
|
||||
menu-4-0-exec = menu-open-0
|
||||
|
||||
|
||||
;; Split: Vertical
|
||||
menu-4-1 = vert
|
||||
menu-4-1-exec = i3-msg 'split v'
|
||||
|
||||
;; Split: Horizontal
|
||||
menu-4-2 = horz
|
||||
menu-4-2-exec = i3-msg 'split h'
|
||||
|
||||
;; Resize: Back to main menu
|
||||
menu-5-0 =
|
||||
menu-5-0-exec = menu-open-0
|
||||
|
||||
|
||||
;; Resize: Grow height
|
||||
menu-5-1 = h+
|
||||
menu-5-1-exec = i3-msg 'resize grow height 5 px or 5 ppt'
|
||||
|
||||
;; Resize: Shrink height
|
||||
menu-5-2 = h-
|
||||
menu-5-2-exec = i3-msg 'resize shrink height 5 px or 5 ppt'
|
||||
|
||||
;; Resize: Grow width
|
||||
menu-5-3 = w+
|
||||
menu-5-3-exec = i3-msg 'resize grow width 5 px or 5 ppt'
|
||||
|
||||
;; Resize: Shrink width
|
||||
menu-5-4 = w-
|
||||
menu-5-4-exec = i3-msg 'resize shrink width 5 px or 5 ppt'
|
||||
|
||||
;; Move to workspace: Back to main menu
|
||||
menu-6-0 =
|
||||
menu-6-0-exec = menu-open-0
|
||||
|
||||
|
||||
;; Move to workspace: 1
|
||||
menu-6-1 = 1
|
||||
menu-6-1-exec = i3-msg 'move container to workspace 1'
|
||||
|
||||
;; Move to workspace: 2
|
||||
menu-6-2 = 2
|
||||
menu-6-2-exec = i3-msg 'move container to workspace 2'
|
||||
|
||||
;; Move to workspace: 3
|
||||
menu-6-3 = 3
|
||||
menu-6-3-exec = i3-msg 'move container to workspace 3'
|
||||
|
||||
;; Move to workspace: 4
|
||||
menu-6-4 = 4
|
||||
menu-6-4-exec = i3-msg 'move container to workspace 4'
|
||||
|
||||
;; Move to workspace: 5
|
||||
menu-6-5 = 5
|
||||
menu-6-5-exec = i3-msg 'move container to workspace 5'
|
||||
|
||||
;; Move to workspace: 6
|
||||
menu-6-6 = 6
|
||||
menu-6-6-exec = i3-msg 'move container to workspace 6'
|
||||
|
||||
;; Move to workspace: 7
|
||||
menu-6-7 = 7
|
||||
menu-6-7-exec = i3-msg 'move container to workspace 7'
|
||||
|
||||
;; Move to workspace: 8
|
||||
menu-6-8 = 8
|
||||
menu-6-8-exec = i3-msg 'move container to workspace 8'
|
||||
|
||||
;; Move to workspace: 9
|
||||
menu-6-9 = 9
|
||||
menu-6-9-exec = i3-msg 'move container to workspace 9'
|
||||
|
||||
;; Move to workspace: 10
|
||||
menu-6-10 = "10"
|
||||
menu-6-10-exec = i3-msg 'move container to workspace 10'
|
||||
|
||||
;; Kill: Back to main menu
|
||||
menu-7-0 =
|
||||
menu-7-0-exec = menu-open-0
|
||||
|
||||
|
||||
;; Kill: Kill
|
||||
menu-7-1 = "confirm"
|
||||
menu-7-1-exec = i3-msg 'kill'
|
||||
|
||||
;; Power: Back to main menu
|
||||
menu-8-0 =
|
||||
menu-8-0-exec = menu-open-0
|
||||
|
||||
;; Power: Screen off
|
||||
menu-8-1 =
|
||||
menu-8-1-exec = xset dpms force off
|
||||
|
||||
;; Power: Lock
|
||||
menu-8-2 =
|
||||
menu-8-2-exec = i3lock
|
||||
|
||||
;; Power: Reboot
|
||||
menu-8-3 =
|
||||
menu-8-3-exec = shutdown -r now
|
||||
|
||||
;; Power: Shutdown
|
||||
menu-8-4 = ""
|
||||
menu-8-4-exec = shutdown -h now
|
||||
@@ -0,0 +1,9 @@
|
||||
;=====================================================;
|
||||
; ;
|
||||
; To learn more about how to configure Polybar ;
|
||||
; go to https://github.com/jaagr/polybar ;
|
||||
; ;
|
||||
; The README contains alot of information ;
|
||||
; ;
|
||||
;=====================================================;
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
; Global Settings
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
|
||||
[colors]
|
||||
transparent = #00ffffff
|
||||
background = ${xrdb:background}
|
||||
foreground = ${xrdb:foreground}
|
||||
foreground-alt = ${xrdb:highlight}
|
||||
|
||||
border = ${xrdb:i3_focused}
|
||||
|
||||
urgent = ${xrdb:i3_urgent}
|
||||
focused = ${xrdb:i3_focused}
|
||||
unfocused = ${xrdb:foreground}
|
||||
@@ -0,0 +1 @@
|
||||
c02-config-bars-base##h.yoga3
|
||||
@@ -0,0 +1,58 @@
|
||||
; Material design icon font:
|
||||
; https://github.com/Templarian/MaterialDesign-Font/blob/master/MaterialDesignIconsDesktop.ttf
|
||||
|
||||
[bar/base_master]
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
fixed-center = true
|
||||
font-0 = Hack Nerd Font:fontformat=truetype:pixelsize=10;1
|
||||
font-1 = Material Design Icons Desktop:fontformat=truetype:pixelsize=10:antialias=true;1
|
||||
line-size = 1
|
||||
module-margin-left = 1
|
||||
module-margin-right = 1
|
||||
padding= 2
|
||||
separator =""
|
||||
override-redirect = true
|
||||
|
||||
[bar/base_border]
|
||||
inherit="bar/base_master"
|
||||
border-size=2
|
||||
border-color=${colors.border}
|
||||
radius = 15.0
|
||||
|
||||
[bar/base_floating]
|
||||
inherit="bar/base_border"
|
||||
bottom = true
|
||||
enable-ipc = false
|
||||
height = 40px
|
||||
width = 60%
|
||||
offset-x = 20%
|
||||
offset-y = 8px
|
||||
override-redirect = true
|
||||
tray-detached = true
|
||||
tray-maxsize = 15
|
||||
tray-offset-x= 136
|
||||
tray-offset-y =0px
|
||||
tray-padding = 3
|
||||
tray-position = left
|
||||
tray-scale = 0.8
|
||||
|
||||
[bar/base_floating_popup]
|
||||
inherit="bar/base_border"
|
||||
bottom = true
|
||||
enable-ipc = true
|
||||
height = 40px
|
||||
width = 22%
|
||||
offset-x = 20%
|
||||
offset-y = 58px
|
||||
|
||||
[bar/base_floating_wm]
|
||||
inherit="bar/base_master"
|
||||
background = ${colors.transparent}
|
||||
font-0 = dark forest:style=Bold:fontformat=truetype:pixelsize=10;4
|
||||
font-1 = Material Design Icons Desktop:fontformat=truetype:pixelsize=10:antialias=true;3
|
||||
height = 15
|
||||
width = 100%
|
||||
modules-center = i3
|
||||
padding= 4
|
||||
wm-restack = i3
|
||||
@@ -0,0 +1,60 @@
|
||||
; Material design icon font:
|
||||
; https://github.com/Templarian/MaterialDesign-Font/blob/master/MaterialDesignIconsDesktop.ttf
|
||||
|
||||
[bar/base_master]
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
fixed-center = true
|
||||
font-0 = Hack Nerd Font:fontformat=truetype:pixelsize=10;1
|
||||
font-1 = Material Design Icons Desktop:fontformat=truetype:pixelsize=10:antialias=true;1
|
||||
line-size = 1
|
||||
module-margin-left = 1
|
||||
module-margin-right = 1
|
||||
padding= 2
|
||||
separator =|
|
||||
override-redirect = true
|
||||
|
||||
[bar/base_border]
|
||||
inherit="bar/base_master"
|
||||
border-size=2
|
||||
border-color=${colors.border}
|
||||
radius = 15
|
||||
|
||||
[bar/base_floating]
|
||||
inherit="bar/base_border"
|
||||
bottom = true
|
||||
enable-ipc = false
|
||||
height = 40px
|
||||
width = 60%
|
||||
offset-x = 20%
|
||||
offset-y = 8px
|
||||
override-redirect = true
|
||||
tray-detached = true
|
||||
tray-maxsize = 15
|
||||
tray-offset-x= 260
|
||||
tray-offset-y =4px
|
||||
tray-padding = 3
|
||||
tray-position = left
|
||||
tray-scale = 0.8
|
||||
|
||||
[bar/base_floating_popup]
|
||||
inherit="bar/base_border"
|
||||
bottom = true
|
||||
enable-ipc = true
|
||||
height = 40px
|
||||
width = 23%
|
||||
offset-x = 20%
|
||||
offset-y = 58px
|
||||
|
||||
[bar/base_floating_wm]
|
||||
inherit="bar/base_master"
|
||||
background = ${colors.transparent}
|
||||
font-0 = dark forest:style=Bold:fontformat=truetype:pixelsize=10;4
|
||||
font-1 = Hack Nerd Font:fontformat=truetype:pixelsize=10;1
|
||||
font-2 = Material Design Icons Desktop:fontformat=truetype:pixelsize=10:antialias=true;1
|
||||
height = 20
|
||||
width = 100%
|
||||
modules-center = i3
|
||||
padding= 4
|
||||
wm-restack = i3
|
||||
override-redirect = false
|
||||
@@ -0,0 +1 @@
|
||||
c03-config-bars##h.yoga3
|
||||
@@ -0,0 +1,23 @@
|
||||
[bar/floating]
|
||||
inherit="bar/base_floating"
|
||||
monitor = ${env:MONITOR:DP-4}
|
||||
modules-center = clock playerctl_long
|
||||
modules-left = floating_popup_button sep pavucontrol_button screenlayout_button sep
|
||||
modules-right = sensors_cpu_pc sep nvgpu sep memory
|
||||
|
||||
[bar/floating_cava]
|
||||
inherit = "bar/floating"
|
||||
modules-center = cava
|
||||
|
||||
[bar/floating_popup]
|
||||
inherit="bar/base_floating_popup"
|
||||
monitor = ${env:MONITOR:DP-4}
|
||||
modules-left = disk_short_pc checkupdates ovpn nvpn eth_pc
|
||||
|
||||
[bar/floating_wm]
|
||||
inherit="bar/base_floating_wm"
|
||||
monitor = ${env:MONITOR:DP-4}
|
||||
|
||||
[bar/floating_wm_secondary]
|
||||
inherit="bar/base_floating_wm"
|
||||
monitor = ${env:MONITOR:HDMI-0}
|
||||
@@ -0,0 +1,21 @@
|
||||
[bar/floating]
|
||||
inherit="bar/base_floating"
|
||||
monitor = ${env:MONITOR:eDP1}
|
||||
modules-center = clock playerctl_long
|
||||
modules-left = floating_popup_button pavucontrol_button sensors_cpu_yoga3 memory_sep
|
||||
modules-right = usbmodem5 wlan_short battery
|
||||
|
||||
[bar/floating_cava]
|
||||
inherit = "bar/floating"
|
||||
modules-center = cava
|
||||
|
||||
[bar/floating_popup]
|
||||
inherit="bar/base_floating_popup"
|
||||
monitor = ${env:MONITOR:eDP1}
|
||||
modules-left = disk_short_pc checkupdates ovpn wlan
|
||||
|
||||
[bar/floating_wm]
|
||||
inherit="bar/base_floating_wm"
|
||||
monitor = ${env:MONITOR:eDP1}
|
||||
modules-right = battery_short
|
||||
modules-left = clock
|
||||
@@ -0,0 +1,167 @@
|
||||
[global/wm]
|
||||
margin-top = 0
|
||||
margin-bottom = 0
|
||||
|
||||
[module/i3]
|
||||
type = internal/i3
|
||||
pin-workspaces = true
|
||||
strip-wsnumbers = true
|
||||
index-sort = true
|
||||
enable-click = true
|
||||
enable-scroll = true
|
||||
wrapping-scroll = true
|
||||
reverse-scroll = true
|
||||
fuzzy-match = false
|
||||
format = <label-state> <label-mode>
|
||||
label-mode = %mode%
|
||||
label-mode-padding = 1
|
||||
label-focused =%icon%%name%
|
||||
label-focused-foreground = ${colors.focused}
|
||||
label-focused-margin = 2
|
||||
label-unfocused =%icon%%name%
|
||||
label-unfocused-foreground = ${colors.unfocused}
|
||||
label-unfocused-margin = 1
|
||||
label-visible =%icon%%name%
|
||||
label-visible-margin = 1
|
||||
label-urgent =%icon%%name%
|
||||
label-urgent-foreground = ${colors.urgent}
|
||||
label-urgent-padding = 1
|
||||
|
||||
[module/i3_dots]
|
||||
type = internal/i3
|
||||
ws-icon-default =" "
|
||||
pin-workspaces = true
|
||||
strip-wsnumbers = true
|
||||
index-sort = true
|
||||
enable-click = true
|
||||
enable-scroll = true
|
||||
wrapping-scroll = true
|
||||
reverse-scroll = true
|
||||
fuzzy-match = false
|
||||
format =<label-state><label-mode>
|
||||
label-mode = %mode%
|
||||
label-focused =" "
|
||||
label-focused-foreground = ${colors.foreground}
|
||||
label-unfocused =" "
|
||||
label-unfocused-foreground = ${colors.foreground}
|
||||
label-visible =" "
|
||||
label-urgent =" "
|
||||
label-urgent-foreground = ${colors.foreground-alt}
|
||||
|
||||
; Module Menus
|
||||
|
||||
[module/i3touchmenu]
|
||||
type = custom/menu
|
||||
expand-right = true
|
||||
format-spacing = 1
|
||||
label-open = "| touch"
|
||||
label-open-foreground = #FFF
|
||||
label-close = "| x"
|
||||
label-separator = "'"
|
||||
; Menu Root
|
||||
menu-0-0 =
|
||||
menu-0-0-exec = menu-open-1
|
||||
menu-0-1 =
|
||||
menu-0-1-exec = menu-open-2
|
||||
menu-0-2 =
|
||||
menu-0-2-exec = menu-open-3
|
||||
menu-0-3 =
|
||||
menu-0-3-exec = menu-open-4
|
||||
menu-0-4 =
|
||||
menu-0-4-exec = menu-open-5
|
||||
menu-0-5 =
|
||||
menu-0-5-exec = menu-open-6
|
||||
menu-0-6 =
|
||||
menu-0-6-exec = menu-open-7
|
||||
menu-0-7 =""
|
||||
menu-0-7-exec = menu-open-8
|
||||
; Menu Category Launcher
|
||||
menu-1-0 =
|
||||
menu-1-0-exec = menu-open-0
|
||||
menu-1-1="quick"
|
||||
menu-1-1-exec= setsid quicklaunch
|
||||
menu-1-2="xournal"
|
||||
menu-1-2-exec = "setsid xournalpp"
|
||||
menu-1-3="sync"
|
||||
menu-1-3-exec = "setsid python Sync/o_school/5AHEL/Notebooks/pdfconvert.py"
|
||||
menu-1-4=""
|
||||
menu-1-4-exec = urxvt &
|
||||
; Menu Category Window Movement
|
||||
menu-2-0 =
|
||||
menu-2-0-exec = menu-open-0
|
||||
menu-2-1 =
|
||||
menu-2-1-exec = i3-msg 'move left'
|
||||
menu-2-2 =
|
||||
menu-2-2-exec = i3-msg 'move right'
|
||||
menu-2-3 =
|
||||
menu-2-3-exec = i3-msg 'move up'
|
||||
menu-2-4 = ""
|
||||
menu-2-4-exec = i3-msg 'move down'
|
||||
menu-3-0 =
|
||||
menu-3-0-exec = menu-open-0
|
||||
; Menu Category Layout
|
||||
menu-3-1 = split
|
||||
menu-3-1-exec = i3-msg 'layout toggle split'
|
||||
menu-3-2 = stack
|
||||
menu-3-2-exec = i3-msg 'layout stacking'
|
||||
menu-3-3 = tab
|
||||
menu-3-3-exec = i3-msg 'layout tabbed'
|
||||
menu-3-4 = float
|
||||
menu-3-4-exec = i3-msg 'floating toggle'
|
||||
; Menu Category Split
|
||||
menu-4-0 =
|
||||
menu-4-0-exec = menu-open-0
|
||||
menu-4-1 = vert
|
||||
menu-4-1-exec = i3-msg 'split v'
|
||||
menu-4-2 = horz
|
||||
menu-4-2-exec = i3-msg 'split h'
|
||||
; Menu Category Resize
|
||||
menu-5-0 =
|
||||
menu-5-0-exec = menu-open-0
|
||||
menu-5-1 = h+
|
||||
menu-5-1-exec = i3-msg 'resize grow height 5 px or 5 ppt'
|
||||
menu-5-2 = h-
|
||||
menu-5-2-exec = i3-msg 'resize shrink height 5 px or 5 ppt'
|
||||
menu-5-3 = w+
|
||||
menu-5-3-exec = i3-msg 'resize grow width 5 px or 5 ppt'
|
||||
menu-5-4 = w-
|
||||
menu-5-4-exec = i3-msg 'resize shrink width 5 px or 5 ppt'
|
||||
; Menu Category Move
|
||||
menu-6-0 =
|
||||
menu-6-0-exec = menu-open-0
|
||||
menu-6-1 = 1
|
||||
menu-6-1-exec = i3-msg 'move container to workspace 1'
|
||||
menu-6-2 = 2
|
||||
menu-6-2-exec = i3-msg 'move container to workspace 2'
|
||||
menu-6-3 = 3
|
||||
menu-6-3-exec = i3-msg 'move container to workspace 3'
|
||||
menu-6-4 = 4
|
||||
menu-6-4-exec = i3-msg 'move container to workspace 4'
|
||||
menu-6-5 = 5
|
||||
menu-6-5-exec = i3-msg 'move container to workspace 5'
|
||||
menu-6-6 = 6
|
||||
menu-6-6-exec = i3-msg 'move container to workspace 6'
|
||||
menu-6-7 = 7
|
||||
menu-6-7-exec = i3-msg 'move container to workspace 7'
|
||||
menu-6-8 = 8
|
||||
menu-6-8-exec = i3-msg 'move container to workspace 8'
|
||||
menu-6-9 = 9
|
||||
menu-6-9-exec = i3-msg 'move container to workspace 9'
|
||||
menu-6-10 = "10"
|
||||
menu-6-10-exec = i3-msg 'move container to workspace 10'
|
||||
; Menu Category Kill
|
||||
menu-7-0 =
|
||||
menu-7-0-exec = menu-open-0
|
||||
menu-7-1 = "confirm"
|
||||
menu-7-1-exec = i3-msg 'kill'
|
||||
; Menu Category Powermenu
|
||||
menu-8-0 =
|
||||
menu-8-0-exec = menu-open-0
|
||||
menu-8-1 =
|
||||
menu-8-1-exec = xset dpms force off
|
||||
menu-8-2 =
|
||||
menu-8-2-exec = i3lock
|
||||
menu-8-3 =
|
||||
menu-8-3-exec = shutdown -r now
|
||||
menu-8-4 = ""
|
||||
menu-8-4-exec = shutdown -h now
|
||||
@@ -0,0 +1,273 @@
|
||||
[module/separator]
|
||||
type = custom/text
|
||||
content =|
|
||||
|
||||
[module/sep]
|
||||
inherit = "module/separator"
|
||||
|
||||
; Module popup
|
||||
|
||||
[module/floating_popup_button]
|
||||
type = custom/script
|
||||
interval = 0.5
|
||||
format =<label>
|
||||
label-maxlen = 5
|
||||
exec = ~/.config/polybar/scripts/polypopup.sh
|
||||
click-left = ~/.config/polybar/scripts/polypopup.sh --toggle
|
||||
content =
|
||||
|
||||
; Module Date
|
||||
|
||||
[module/clock]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
date =
|
||||
date-alt =%d.%m.%Y
|
||||
time =" %H:%M"
|
||||
time-alt =%H:%M:%S,
|
||||
label =%time% %date%
|
||||
|
||||
[module/clock_icon]
|
||||
inherit = "module/clock"
|
||||
date =
|
||||
|
||||
[module/clock_analog]
|
||||
type = custom/script
|
||||
interval = 30
|
||||
label-maxlen=5
|
||||
label-ellipsis = false
|
||||
exec = "python ~/.config/polybar/scripts/modules/timeicon.py"
|
||||
|
||||
; Module Updates
|
||||
|
||||
[module/checkupdates]
|
||||
type = custom/script
|
||||
interval = 30
|
||||
format = <label>
|
||||
label-maxlen=15
|
||||
label-ellipsis=true
|
||||
exec = "echo $(bash ~/.config/polybar/scripts/modules/update.sh --count-short)"
|
||||
click-left = "setsid alacritty -e bash ~/.config/polybar/scripts/modules/update.sh --list"
|
||||
click-right = "setsid alacritty -e bash ~/.config/polybar/scripts/modules/update.sh --update"
|
||||
click-middle = "setsid alacritty -e bash ~/.config/polybar/scripts/modules/update.sh --update-noconfirm"
|
||||
|
||||
; Module HW-Statistics
|
||||
; For 'sensors_'-modules, run 'sensors-detect' from 'lm_sensors' first
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
interval = 2
|
||||
label = %percentage_used%%
|
||||
|
||||
[module/memory_sep]
|
||||
inherit = module/memory
|
||||
format = <label> |
|
||||
|
||||
[module/nvgpu]
|
||||
type = custom/script
|
||||
interval = 2
|
||||
format = <label>
|
||||
label-maxlen=15
|
||||
label-ellipsis=true
|
||||
exec = "echo $((nvidia-smi -q | grep "Gpu" | awk -F':' '{print $2}' | tr -d ' '; echo ", "; nvidia-smi -q | grep "GPU Current Temp" | awk -F':' '{print $2}' | tr -d ' C' ; echo '°') | cat | tr -d '\\n')"
|
||||
click-left = "setsid alacritty -e sh -c nvtop"
|
||||
|
||||
[module/sensors_cpu_pc]
|
||||
type = custom/script
|
||||
interval = 2
|
||||
format = <label>
|
||||
label-maxlen=15
|
||||
label-ellipsis=true
|
||||
exec = "echo $((top -bn1 | grep 'Cpu(s)' | sed 's/.*, *\\([0-9.]*\\)%* id.*/\\1/' | awk -F '.' '{print 100 - $1}' ; echo '%, ' ; sensors | grep "CPUTIN" | awk -F' ' '{print $2}' | awk -F'.' '{print $1}' | tr -d '+'; echo '°') | tr -d '\\n')"
|
||||
click-left = "setsid alacritty -e sh -c htop"
|
||||
|
||||
[module/sensors_cpu_yoga3]
|
||||
type = custom/script
|
||||
interval = 2
|
||||
format = <label>
|
||||
label-maxlen=15
|
||||
label-ellipsis=true
|
||||
exec = "echo $((top -bn1 | grep 'Cpu(s)' | sed 's/.*, *\\([0-9.]*\\)%* id.*/\\1/' | awk -F '.' '{print 100 - $1}' ; echo '%, ' ; sensors | grep "Package id 0:" | awk -F' ' '{print $4}' | awk -F'.' '{print $1}' | tr -d '+'; echo '°') | tr -d '\\n')"
|
||||
click-left = "setsid alacritty -e sh -c htop"
|
||||
|
||||
; Module Network Interfaces
|
||||
|
||||
[module/wlan]
|
||||
type = internal/network
|
||||
interface = wlp2s0
|
||||
interval = 3
|
||||
format-connected = <label-connected>
|
||||
label-connected = %ifname%: %local_ip% [%essid%]
|
||||
|
||||
[module/wlan_short]
|
||||
inherit="module/wlan"
|
||||
label-connected = %essid%
|
||||
|
||||
[module/eth_pc]
|
||||
type = internal/network
|
||||
interface = enp5s0
|
||||
interval = 3
|
||||
format-connected = <label-connected>
|
||||
label-connected = %local_ip%
|
||||
|
||||
[module/eth_yoga3]
|
||||
inherit="module/eth_pc"
|
||||
interface = enp0s31f6
|
||||
|
||||
[module/usbmodem1]
|
||||
type = custom/script
|
||||
format = usb: <label>
|
||||
interval = 3
|
||||
exec = bash .config/polybar/scripts/modules/usbmodem.sh enp0s20f0u1
|
||||
|
||||
[module/usbmodem2]
|
||||
inherit="module/usbmodem1"
|
||||
exec = bash .config/polybar/scripts/modules/usbmodem.sh enp0s20f0u6
|
||||
|
||||
[module/usbmodem3]
|
||||
inherit="module/usbmodem1"
|
||||
exec = bash .config/polybar/scripts/modules/usbmodem.sh enp0s20f0u3
|
||||
|
||||
[module/usbmodem4]
|
||||
inherit="module/usbmodem1"
|
||||
exec = bash .config/polybar/scripts/modules/usbmodem.sh ens8u1u2
|
||||
|
||||
[module/usbmodem5]
|
||||
inherit="module/usbmodem1"
|
||||
exec = bash .config/polybar/scripts/modules/usbmodem.sh enp60s0u2u2
|
||||
|
||||
; Module VPN
|
||||
|
||||
[module/ovpn]
|
||||
type = custom/script
|
||||
interval = 3
|
||||
format = ovpn: <label>
|
||||
label-maxlen=50
|
||||
label-ellipsis=true
|
||||
exec = echo $(nmcli con show --active | grep vpn | cut -c1-12 | tr -d ' ')
|
||||
|
||||
[module/nvpn]
|
||||
inherit="module/ovpn"
|
||||
format = nvpn: <label>
|
||||
exec = echo $(nordvpn status | grep -oP '(?<=Current server: ).*' | cut -f1 -d'.')
|
||||
|
||||
; Module Volume + Media
|
||||
|
||||
[module/volume]
|
||||
type = internal/pulseaudio
|
||||
master-mixer = IEC958
|
||||
mapped = true
|
||||
format-volume = <label-volume>
|
||||
label-volume = %percentage%
|
||||
label-volume-foreground = ${root.foreground}
|
||||
format-muted-foreground = ${root.foreground}
|
||||
label-muted = x
|
||||
interval = 1
|
||||
|
||||
[module/playerctl]
|
||||
type = custom/script
|
||||
tail = true
|
||||
exec = ~/.config/polybar/scripts/modules/playerctl.sh
|
||||
click-left = "playerctl play-pause"
|
||||
click-right = "playerctl next"
|
||||
click-middle = "playerctl previous"
|
||||
|
||||
[module/playerctl_long]
|
||||
inherit="module/playerctl"
|
||||
exec = bash ~/.config/polybar/scripts/modules/playerctl.sh 30
|
||||
|
||||
[module/playerctl_buttons]
|
||||
type = custom/menu
|
||||
expand-right = true
|
||||
label-open =
|
||||
label-close =
|
||||
label-separator = " "
|
||||
menu-0-0 =
|
||||
menu-0-0-exec = "playerctl previous"
|
||||
menu-0-1 =
|
||||
menu-0-1-exec = "playerctl play-pause"
|
||||
menu-0-2 =
|
||||
menu-0-2-exec = "playerctl next"
|
||||
|
||||
[module/pavucontrol_button]
|
||||
type = custom/text
|
||||
content =
|
||||
click-left = "sh ~/.config/rofi/menus/launch.sh defaultsink"
|
||||
click-right = "setsid pavucontrol"
|
||||
click-middle = "bash ~/Userdata/Scripts/Launchers/restart_pulseaudio_1s.sh"
|
||||
|
||||
[module/pavucontrol_button_sep]
|
||||
inherit="module/pavucontrol_button"
|
||||
content = |
|
||||
|
||||
[module/screenlayout_button]
|
||||
type = custom/text
|
||||
content =
|
||||
click-left = "sh ~/.config/rofi/menus/launch.sh screenlayouts"
|
||||
click-right = "setsid arandr"
|
||||
|
||||
[module/screenlayout_button_sep]
|
||||
inherit="module/screenlayout_button"
|
||||
content = |
|
||||
|
||||
[module/cava]
|
||||
type = custom/script
|
||||
tail = true
|
||||
exec = python ~/.config/polybar/scripts/modules/cava.py
|
||||
|
||||
; Module Battery
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
battery = BAT0
|
||||
poll-interval = 3
|
||||
adapter = ADP1
|
||||
full-at = 95
|
||||
label-full = %percentage%%
|
||||
;label-charging = %percentage%% (+%consumption%W, %time%)
|
||||
label-charging = %percentage%% (+%consumption%W)
|
||||
;label-discharging = %percentage%% (-%consumption%W, %time%)
|
||||
label-discharging = %percentage%% (-%consumption%W)
|
||||
|
||||
[module/battery_short]
|
||||
inherit = "module/battery"
|
||||
label-full = %percentage%%
|
||||
label-charging = %percentage%%
|
||||
label-discharging = %percentage%%
|
||||
|
||||
; Module Disk
|
||||
|
||||
[module/disk_short_pc]
|
||||
type = custom/script
|
||||
format = <label>
|
||||
interval = 10
|
||||
exec = echo $(df -h / | tail +2 | awk -F ' ' '{print $3 " / " $2 " (" $5 ")"}' | tr -d 'G')
|
||||
click-left = "setsid alacritty -e sh -c 'echo Disk overview... ; echo ; df -h -x tmpfs; echo ; read -p Done'"
|
||||
click-right = "setsid alacritty -e sh -c 'echo Scanning main disk ; echo ; ncdu --exclude /data / ; echo ; read -p Done!'"
|
||||
click-middle = "setsid alacritty -e sh -c 'echo Scanning full disk... ; echo ; sudo ncdu / ; echo ; read -p Done!'"
|
||||
|
||||
[module/disk_short_pc_spacer]
|
||||
inherit = "module/disk_short_pc"
|
||||
format = | <label>
|
||||
|
||||
[module/disk_short_yoga3]
|
||||
inherit = "module/disk_short_pc"
|
||||
exec = echo $(df -h / | tail +2 | awk -F ' ' '{print $3 " / " $2 " (" $5 ")"}' | tr -d 'G')
|
||||
|
||||
; Module Backlight
|
||||
|
||||
[module/xbacklight]
|
||||
type = internal/xbacklight
|
||||
format = <label>
|
||||
label = %percentage%
|
||||
|
||||
[module/xbacklight_buttons]
|
||||
type = custom/menu
|
||||
expand-right = true
|
||||
label-open = blght
|
||||
label-close = x
|
||||
label-separator = " "
|
||||
menu-0-0 = -
|
||||
menu-0-0-exec = "xbacklight -dec 10; notify-send 'brightness down'"
|
||||
menu-0-1 = +
|
||||
menu-0-1-exec = "xbacklight -inc 10; notify-send 'brightness up'"
|
||||
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
LOCATION="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||
|
||||
OUTPUT_FILE="$1"
|
||||
INPUT_DIR="${2:-$LOCATION}"
|
||||
|
||||
echo -n "Merging files in '$INPUT_DIR'"
|
||||
|
||||
if [ -n "$OUTPUT_FILE" ]; then
|
||||
echo " into '$OUTPUT_FILE'"
|
||||
if [ -f "$OUTPUT_FILE" ]; then
|
||||
mv "$OUTPUT_FILE" "$OUTPUT_FILE.bak"
|
||||
fi
|
||||
fi
|
||||
|
||||
find "$INPUT_DIR" -regextype sed -regex ".*c[0-9]*-.*" -print0 | sort -z |
|
||||
while IFS= read -r -d '' filePath; do
|
||||
file="${filePath:$((${#LOCATION} + 1))}"
|
||||
if [[ $file != *"##"* ]]; then
|
||||
|
||||
if [ -z "$OUTPUT_FILE" ]; then
|
||||
OUTPUT_FILE=$(echo "$file" | awk -F "[-]" '{print $2}')
|
||||
echo " into '$OUTPUT_FILE'"
|
||||
if [ -f "$OUTPUT_FILE" ]; then
|
||||
mv "$OUTPUT_FILE" "$OUTPUT_FILE.bak"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -f "$OUTPUT_FILE" ]; then
|
||||
touch "$OUTPUT_FILE"
|
||||
fi
|
||||
|
||||
echo "> $file"
|
||||
(
|
||||
cat "$INPUT_DIR/$file"
|
||||
echo
|
||||
) >>"$OUTPUT_FILE"
|
||||
else
|
||||
echo "x $file"
|
||||
fi
|
||||
done
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
launch.sh##h.yoga3
|
||||
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
|
||||
######################
|
||||
# Kill programs used by modules
|
||||
#
|
||||
# hideit
|
||||
ps -ef | grep hideIt | grep -v grep | awk '{print $2}' | xargs kill
|
||||
#
|
||||
# cava
|
||||
killall -q cava
|
||||
|
||||
|
||||
######################
|
||||
# Kill polybar instances
|
||||
#
|
||||
killall -q polybar
|
||||
#
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -x polybar >/dev/null; do sleep 1; done
|
||||
|
||||
######################
|
||||
# Create config
|
||||
bash ~/.config/polybar/config-merge/config-merge.sh ~/.config/polybar/config.ini
|
||||
|
||||
######################
|
||||
# Launch polybar(s)
|
||||
#
|
||||
polybar floating -r -l warning &
|
||||
polybar floating_wm -r -l warning &
|
||||
polybar floating_wm_secondary -r -l warning &
|
||||
polybar floating_popup -r -l warning &
|
||||
#
|
||||
#polybar pc_vnc_landscape -r -l warning &
|
||||
#
|
||||
# Wait a moment for the bar(s) to set up
|
||||
sleep 1
|
||||
|
||||
|
||||
######################
|
||||
# Launch programs used by modules
|
||||
#
|
||||
setsid ~/.config/polybar/scripts/hideIt.sh --wait --region 0x1080+1920+-10 --name '^polybar-floating_DP-4$' > /dev/null 2>&1 &
|
||||
#
|
||||
# Hide floating_sysinfo polybar and reset popup state
|
||||
(xdo id -m -N Polybar && polybar-msg -p $(ps -ef | grep floating_sysinfo | grep -v grep | awk '{print $2}') cmd hide) > /dev/null 2>&1 &
|
||||
STATUSFILE="$HOME/.config/polybar/scripts/.sysinfo.active"
|
||||
rm -f "$STATUSFILE"
|
||||
|
||||
|
||||
######################
|
||||
# Done!
|
||||
#
|
||||
echo "Bar launched!"
|
||||
@@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
|
||||
######################
|
||||
# Kill programs used by modules
|
||||
#
|
||||
# hideit
|
||||
ps -ef | grep hideIt | grep -v grep | awk '{print $2}' | xargs kill
|
||||
#
|
||||
# cava
|
||||
killall -q cava
|
||||
|
||||
|
||||
######################
|
||||
# Kill polybar instances
|
||||
#
|
||||
killall -q polybar
|
||||
#
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -x polybar >/dev/null; do sleep 1; done
|
||||
|
||||
######################
|
||||
# Create config
|
||||
bash ~/.config/polybar/config-merge/config-merge.sh ~/.config/polybar/config.ini
|
||||
|
||||
######################
|
||||
# Launch polybar(s)
|
||||
#
|
||||
polybar floating -r -l warning &
|
||||
polybar floating_wm -r -l warning &
|
||||
polybar floating_popup -r -l warning &
|
||||
#
|
||||
#polybar pc_vnc_landscape -r -l warning &
|
||||
#
|
||||
# Wait a moment for the bar(s) to set up
|
||||
sleep 1
|
||||
|
||||
|
||||
######################
|
||||
# Launch programs used by modules
|
||||
#
|
||||
setsid ~/.config/polybar/scripts/hideIt.sh --wait --region 0x1440+2560+-10 --name '^polybar-floating_eDP1$' > /dev/null 2>&1 &
|
||||
#
|
||||
# Hide floating_sysinfo polybar and reset popup state
|
||||
(xdo id -m -N Polybar && polybar-msg -p $(ps -ef | grep floating_sysinfo | grep -v grep | awk '{print $2}') cmd hide) > /dev/null 2>&1 &
|
||||
STATUSFILE="$HOME/.config/polybar/scripts/.sysinfo.active"
|
||||
rm -f "$STATUSFILE"
|
||||
|
||||
|
||||
######################
|
||||
# Done!
|
||||
#
|
||||
echo "Bar launched!"
|
||||
@@ -1,13 +0,0 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# Terminate already running bar instances
|
||||
killall -q polybar
|
||||
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -x polybar >/dev/null; do sleep 1; done
|
||||
|
||||
# Launch
|
||||
polybar landscape -r &
|
||||
|
||||
insync
|
||||
echo "Bar launched..."
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# Terminate already running bar instances
|
||||
killall -q polybar
|
||||
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -x polybar >/dev/null; do sleep 1; done
|
||||
|
||||
# Launch
|
||||
polybar portrait -r &
|
||||
|
||||
insync
|
||||
|
||||
echo "Bar launched..."
|
||||
@@ -1,339 +0,0 @@
|
||||
# https://github.com/jaagr/dots/tree/master/.local/etc/themer/themes
|
||||
|
||||
[bar/top]
|
||||
monitor = eDP-1
|
||||
width = 100%
|
||||
height = 34
|
||||
|
||||
background = #00000000
|
||||
foreground = #ccffffff
|
||||
|
||||
line-color = ${bar/bottom.background}
|
||||
line-size = 16
|
||||
|
||||
spacing = 2
|
||||
padding-right = 5
|
||||
module-margin = 4
|
||||
|
||||
font-0 = NotoSans-Regular:size=8;-1
|
||||
font-1 = MaterialIcons:size=10;0
|
||||
font-2 = Termsynu:size=8:antialias=false;-2
|
||||
font-3 = FontAwesome:size=10;0
|
||||
|
||||
modules-left = powermenu mpd
|
||||
modules-right = volume backlight wireless-network wired-network battery date
|
||||
|
||||
[bar/bottom]
|
||||
monitor = eDP-1
|
||||
bottom = true
|
||||
width = 100%
|
||||
height = 27
|
||||
|
||||
background = ${bar/top.background}
|
||||
foreground = ${bar/top.foreground}
|
||||
|
||||
line-color = ${bar/top.background}
|
||||
line-size = 2
|
||||
|
||||
spacing = 3
|
||||
padding-right = 4
|
||||
module-margin-left = 0
|
||||
module-margin-right = 6
|
||||
|
||||
font-0 = NotoSans-Regular:size=8;0
|
||||
font-1 = unifont:size=6;-3
|
||||
font-2 = FontAwesome:size=8;-2
|
||||
font-3 = NotoSans-Regular:size=8;-1
|
||||
font-4 = MaterialIcons:size=10;-1
|
||||
font-5 = Termsynu:size=8:antialias=false;0
|
||||
|
||||
modules-left = bspwm
|
||||
modules-right = cpu memory
|
||||
|
||||
[module/backlight]
|
||||
type = internal/xbacklight
|
||||
format = <ramp> <bar>
|
||||
|
||||
ramp-0 =
|
||||
ramp-1 =
|
||||
ramp-2 =
|
||||
|
||||
bar-width = 10
|
||||
bar-indicator = |
|
||||
bar-indicator-font = 3
|
||||
bar-indicator-foreground = #ff
|
||||
bar-fill = ─
|
||||
bar-fill-font = 3
|
||||
bar-fill-foreground = #c9665e
|
||||
bar-empty = ─
|
||||
bar-empty-font = 3
|
||||
bar-empty-foreground = #44
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
full-at = 98
|
||||
|
||||
format-charging = <animation-charging> <label-charging>
|
||||
format-discharging = <ramp-capacity> <label-discharging>
|
||||
format-full = <ramp-capacity> <label-full>
|
||||
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-0-foreground = #f53c3c
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-1-foreground = #ffa900
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-3 =
|
||||
ramp-capacity-4 =
|
||||
|
||||
bar-capacity-width = 10
|
||||
bar-capacity-format = %{+u}%{+o}%fill%%empty%%{-u}%{-o}
|
||||
bar-capacity-fill = █
|
||||
bar-capacity-fill-foreground = #ddffffff
|
||||
bar-capacity-fill-font = 3
|
||||
bar-capacity-empty = █
|
||||
bar-capacity-empty-font = 3
|
||||
bar-capacity-empty-foreground = #44ffffff
|
||||
|
||||
animation-charging-0 =
|
||||
animation-charging-1 =
|
||||
animation-charging-2 =
|
||||
animation-charging-3 =
|
||||
animation-charging-4 =
|
||||
animation-charging-framerate = 750
|
||||
|
||||
[module/bspwm]
|
||||
type = internal/bspwm
|
||||
|
||||
ws-icon-0 = term;
|
||||
ws-icon-1 = web;
|
||||
ws-icon-2 = code;
|
||||
ws-icon-3 = music;
|
||||
ws-icon-4 = irssi;
|
||||
ws-icon-default =
|
||||
|
||||
format = <label-state> <label-mode>
|
||||
|
||||
label-dimmed-underline = ${BAR.background}
|
||||
|
||||
label-active = %icon%
|
||||
label-active-foreground = #fff
|
||||
label-active-background = #773f3f3f
|
||||
label-active-underline = #c9665e
|
||||
label-active-font = 4
|
||||
label-active-padding = 4
|
||||
|
||||
label-occupied = %icon%
|
||||
label-occupied-foreground = #dd
|
||||
label-occupied-underline = #666
|
||||
label-occupied-font = 4
|
||||
label-occupied-padding = 4
|
||||
|
||||
label-urgent = %icon%
|
||||
label-urgent-foreground = #000000
|
||||
label-urgent-background = #bd2c40
|
||||
label-urgent-underline = #9b0a20
|
||||
label-urgent-font = 4
|
||||
label-urgent-padding = 4
|
||||
|
||||
label-empty = %icon%
|
||||
label-empty-foreground = #55
|
||||
label-empty-font = 4
|
||||
label-empty-padding = 4
|
||||
|
||||
label-monocle =
|
||||
label-monocle-underline = ${module/bspwm.label-active-underline}
|
||||
label-monocle-background = #33ffffff
|
||||
label-monocle-padding = 2
|
||||
|
||||
label-locked =
|
||||
label-locked-foreground = #bd2c40
|
||||
label-locked-underline = ${module/bspwm.label-monocle-underline}
|
||||
label-locked-padding = ${module/bspwm.label-monocle-padding}
|
||||
|
||||
label-sticky =
|
||||
label-sticky-foreground = #fba922
|
||||
label-sticky-underline = ${module/bspwm.label-monocle-underline}
|
||||
label-sticky-padding = ${module/bspwm.label-monocle-padding}
|
||||
|
||||
label-private =
|
||||
label-private-foreground = #bd2c40
|
||||
label-private-underline = ${module/bspwm.label-monocle-underline}
|
||||
label-private-padding = ${module/bspwm.label-monocle-padding}
|
||||
|
||||
[module/bspwm-tmp]
|
||||
type = internal/bspwm
|
||||
format = <label-state>
|
||||
|
||||
label-active =
|
||||
label-active-padding = 1
|
||||
label-occupied =
|
||||
label-occupied-padding = 1
|
||||
label-empty =
|
||||
label-empty-padding = 1
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 0.5
|
||||
format = <label> <ramp-coreload>
|
||||
label = CPU
|
||||
|
||||
ramp-coreload-0 = ▁
|
||||
ramp-coreload-0-font = 2
|
||||
ramp-coreload-0-foreground = #aaff77
|
||||
ramp-coreload-1 = ▂
|
||||
ramp-coreload-1-font = 2
|
||||
ramp-coreload-1-foreground = #aaff77
|
||||
ramp-coreload-2 = ▃
|
||||
ramp-coreload-2-font = 2
|
||||
ramp-coreload-2-foreground = #aaff77
|
||||
ramp-coreload-3 = ▄
|
||||
ramp-coreload-3-font = 2
|
||||
ramp-coreload-3-foreground = #aaff77
|
||||
ramp-coreload-4 = ▅
|
||||
ramp-coreload-4-font = 2
|
||||
ramp-coreload-4-foreground = #fba922
|
||||
ramp-coreload-5 = ▆
|
||||
ramp-coreload-5-font = 2
|
||||
ramp-coreload-5-foreground = #fba922
|
||||
ramp-coreload-6 = ▇
|
||||
ramp-coreload-6-font = 2
|
||||
ramp-coreload-6-foreground = #ff5555
|
||||
ramp-coreload-7 = █
|
||||
ramp-coreload-7-font = 2
|
||||
ramp-coreload-7-foreground = #ff5555
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
date = %%{F#99}%Y-%m-%d%%{F-} %%{F#fff}%H:%M%%{F-}
|
||||
date-alt = %%{F#fff}%A, %d %B %Y %%{F#fff}%H:%M%%{F#666}:%%{F#fba922}%S%%{F-}
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
format = <label> <bar-used>
|
||||
label = RAM
|
||||
|
||||
bar-used-width = 30
|
||||
bar-used-foreground-0 = #aaff77
|
||||
bar-used-foreground-1 = #aaff77
|
||||
bar-used-foreground-2 = #fba922
|
||||
bar-used-foreground-3 = #ff5555
|
||||
bar-used-indicator = |
|
||||
bar-used-indicator-font = 6
|
||||
bar-used-indicator-foreground = #ff
|
||||
bar-used-fill = ─
|
||||
bar-used-fill-font = 6
|
||||
bar-used-empty = ─
|
||||
bar-used-empty-font = 6
|
||||
bar-used-empty-foreground = #444444
|
||||
|
||||
[module/mpd]
|
||||
type = internal/mpd
|
||||
format-online = <icon-prev> <icon-stop> <toggle> <icon-next> <icon-repeat> <icon-random> <bar-progress> <label-time> <label-song>
|
||||
|
||||
icon-play =
|
||||
icon-pause =
|
||||
icon-stop =
|
||||
icon-prev =
|
||||
icon-next =
|
||||
icon-random =
|
||||
icon-repeat =
|
||||
|
||||
toggle-on-foreground =
|
||||
toggle-off-foreground = #55
|
||||
|
||||
bar-progress-width = 45
|
||||
bar-progress-format = %{A4:mpdseek+2: A5:mpdseek-2:}%fill%%indicator%%empty%%{A A}
|
||||
bar-progress-indicator = |
|
||||
bar-progress-indicator-foreground = #ff
|
||||
bar-progress-indicator-font = 3
|
||||
bar-progress-fill = ─
|
||||
bar-progress-fill-foreground = #bb
|
||||
bar-progress-fill-font = 3
|
||||
bar-progress-empty = ─
|
||||
bar-progress-empty-font = 3
|
||||
bar-progress-empty-foreground = #44
|
||||
|
||||
[module/wireless-network]
|
||||
type = internal/network
|
||||
interface = net1
|
||||
interval = 3.0
|
||||
ping-interval = 10
|
||||
|
||||
format-connected = <ramp-signal> <label-connected>
|
||||
label-connected = %essid%
|
||||
label-disconnected = not connected
|
||||
label-disconnected-foreground = #66
|
||||
|
||||
ramp-signal-0 =
|
||||
ramp-signal-1 =
|
||||
ramp-signal-2 =
|
||||
ramp-signal-3 =
|
||||
ramp-signal-4 =
|
||||
|
||||
animation-packetloss-0 =
|
||||
animation-packetloss-0-foreground = #ffa64c
|
||||
animation-packetloss-1 =
|
||||
animation-packetloss-1-foreground = ${bar/top.foreground}
|
||||
animation-packetloss-framerate = 500
|
||||
|
||||
[module/wired-network]
|
||||
type = internal/network
|
||||
interface = net0
|
||||
interval = 3.0
|
||||
|
||||
label-connected = %{T3}%local_ip%%{T-}
|
||||
label-disconnected-foreground = #66
|
||||
|
||||
[module/volume]
|
||||
type = internal/volume
|
||||
speaker-mixer = Speaker
|
||||
headphone-mixer = Headphone
|
||||
headphone-id = 9
|
||||
|
||||
format-volume = <ramp-volume> <label-volume>
|
||||
label-muted = muted
|
||||
label-muted-foreground = #66
|
||||
|
||||
ramp-volume-0 =
|
||||
ramp-volume-1 =
|
||||
ramp-volume-2 =
|
||||
ramp-volume-3 =
|
||||
|
||||
[module/powermenu]
|
||||
type = custom/menu
|
||||
|
||||
format-padding = 5
|
||||
|
||||
label-open =
|
||||
label-close =
|
||||
|
||||
menu-0-0 = Terminate WM
|
||||
menu-0-0-foreground = #fba922
|
||||
menu-0-0-exec = bspc quit -1
|
||||
menu-0-1 = Reboot
|
||||
menu-0-1-foreground = #fba922
|
||||
menu-0-1-exec = menu_open-1
|
||||
menu-0-2 = Power off
|
||||
menu-0-2-foreground = #fba922
|
||||
menu-0-2-exec = menu_open-2
|
||||
|
||||
menu-1-0 = Cancel
|
||||
menu-1-0-foreground = #fba922
|
||||
menu-1-0-exec = menu_open-0
|
||||
menu-1-1 = Reboot
|
||||
menu-1-1-foreground = #fba922
|
||||
menu-1-1-exec = sudo reboot
|
||||
|
||||
menu-2-0 = Power off
|
||||
menu-2-0-foreground = #fba922
|
||||
menu-2-0-exec = sudo poweroff
|
||||
menu-2-1 = Cancel
|
||||
menu-2-1-foreground = #fba922
|
||||
menu-2-1-exec = menu_open-0
|
||||
|
||||
[module/clock]
|
||||
type = internal/date
|
||||
interval = 2
|
||||
date = %%{F#999}%Y-%m-%d%%{F-} %%{F#fff}%H:%M%%{F-}
|
||||
|
||||
; vim:ft=dosini
|
||||
Executable
+738
@@ -0,0 +1,738 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# https://github.com/Tadly/hideIt.sh
|
||||
#
|
||||
# Automagically hide/show a window by its name when the cursor is
|
||||
# within a defined region or you mouse over it.
|
||||
#
|
||||
# This script was initially written to imitate gnome-shell's systray
|
||||
# but should be generic enough to do other things as well.
|
||||
#
|
||||
# Requirements:
|
||||
# bash, xdotool, xwininfo, xev
|
||||
#
|
||||
|
||||
######################
|
||||
# Preferences
|
||||
|
||||
# Print verbose logs
|
||||
LOGS=0
|
||||
|
||||
# Set if opened popups should keep the bar shown
|
||||
POPUPS_PIN=1
|
||||
|
||||
# Statusfile Prefix
|
||||
STATUSFILE="$HOME/.config/polybar/scripts/.polypopup.floating_popup"
|
||||
|
||||
######################
|
||||
|
||||
WIN_ID=""
|
||||
WIN_NAME_MOVEALONG_ONE='^Polybar tray window$'
|
||||
WIN_OFFSETY_MOVEALONG=6
|
||||
WIN_ID_MOVEALONG_ONE=
|
||||
WIN_NAME=""
|
||||
WIN_CLASS=""
|
||||
WIN_INSTANCE=""
|
||||
WAIT=1
|
||||
|
||||
WIN_WIDTH=""
|
||||
WIN_HEIGHT=""
|
||||
WIN_POSX=""
|
||||
WIN_POSX_MOVEALONG_ONE=""
|
||||
WIN_POSY=""
|
||||
|
||||
SCREEN_WIDTH=""
|
||||
SCREEN_HEIGHT=""
|
||||
|
||||
MINX=""
|
||||
MINY=""
|
||||
MAXX=""
|
||||
MAXY=""
|
||||
|
||||
HOVER=1
|
||||
SIGNAL=1
|
||||
INTERVAL=0.2
|
||||
PEEK=0
|
||||
DIRECTION="bottom"
|
||||
STEPS=3
|
||||
NO_TRANS=1
|
||||
TOGGLE=1
|
||||
TOGGLE_PEEK=1
|
||||
|
||||
_IS_HIDDEN=1
|
||||
_DOES_PEEK=0
|
||||
_HAS_REGION=1
|
||||
_WAIT_PID=""
|
||||
_PID_FILE=""
|
||||
|
||||
usage() {
|
||||
# Print usage
|
||||
printf "usage: $0 [options]\n"
|
||||
printf "\n"
|
||||
printf "Required (At least on):\n"
|
||||
printf " -N, --name [pattern]\n"
|
||||
printf " Match against the window name.\n"
|
||||
printf " This is the same string that is displayed in the window titlebar.\n"
|
||||
printf "\n"
|
||||
printf " -C, --class [pattern]\n"
|
||||
printf " Match against the window class.\n"
|
||||
printf "\n"
|
||||
printf " -I, --instance [pattern]\n"
|
||||
printf " Match against the window instance.\n"
|
||||
printf "\n"
|
||||
printf " --id [window-id]\n"
|
||||
printf " Explicitly specify a window id rather than searching for one.\n"
|
||||
printf "\n"
|
||||
printf "Optional:\n"
|
||||
printf " -w, --wait\n"
|
||||
printf " Wait until a matching window was found.\n"
|
||||
printf " This will check once every second.\n"
|
||||
printf "\n"
|
||||
printf " -r, --region [posXxposY+offsetX+offsetY]\n"
|
||||
printf " Cursor region at which to trigger.\n"
|
||||
printf " Examples:\n"
|
||||
printf " --region 0x1080+10+-10 (Bottom left incl. a 10 pixel offset)\n"
|
||||
printf " --region 1920x1080+0+0 (Bottom right without offset)\n"
|
||||
printf "\n"
|
||||
printf " -H, --hover\n"
|
||||
printf " Show the window when hovering over it.\n"
|
||||
printf " If --region was defined, --hover will be ignored!\n"
|
||||
printf " This will only work if --peek is greater 0.\n"
|
||||
printf " By default, hover is off.\n"
|
||||
printf "\n"
|
||||
printf " -S, --signal\n"
|
||||
printf " Toggle the visibility by sending a 'SIGUSR1' signal.\n"
|
||||
printf " Both --region and --hover will be ignored.\n"
|
||||
printf "\n"
|
||||
printf " -i, --interval [interval]\n"
|
||||
printf " Interval in seconds to check the cursors location.\n"
|
||||
printf " Defaults to 1.\n"
|
||||
printf "\n"
|
||||
printf " -p, --peek [amount]\n"
|
||||
printf " When hidden, peek 'amount' of pixels to indicate the window.\n"
|
||||
printf " Required if --hover is used."
|
||||
printf " Defaults to 3.\n"
|
||||
printf "\n"
|
||||
printf " -d, --direction [left|right|top|bottom]\n"
|
||||
printf " direction in which to move the window.\n"
|
||||
printf " Defaults to left.\n"
|
||||
printf "\n"
|
||||
printf " -s, --steps [amount]\n"
|
||||
printf " steps in pixel used to move the window. The higher the value,\n"
|
||||
printf " the faster it will move at the cost of smoothness.\n"
|
||||
printf " Defaults to 3.\n"
|
||||
printf "\n"
|
||||
printf " -T, --no-trans\n"
|
||||
printf " Turn of the transition effect.\n"
|
||||
printf "\n"
|
||||
printf " -t, --toggle\n"
|
||||
printf " Send a SIGUSR1 signal to the process matching the same window.\n"
|
||||
printf " This will toggle the visibility of the window."
|
||||
printf "\n\n"
|
||||
printf " -P, --toggle-peek\n"
|
||||
printf " Send a SIGUSR2 signal to the process matching the same window.\n"
|
||||
printf " This will toggle the hidden state of the window if --peek is greater 0."
|
||||
printf "\n\n"
|
||||
printf "Examples:\n"
|
||||
printf " Dropdown Terminal:\n"
|
||||
printf " # Start a terminal with a unique name\n"
|
||||
printf " # (Make sure yourself it is positioned correctly)\n"
|
||||
printf " $ termite --title=dropdown-terminal &\n"
|
||||
printf "\n"
|
||||
printf " # Hide it and wait for a SIGUSR1 signal\n"
|
||||
printf " $ hideIt.sh --name '^dropdown-terminal$' --direction top --steps 5 --signal\n"
|
||||
printf "\n"
|
||||
printf " # Send a SIGUSR1 signal (This could be mapped to a keyboard shortcut)\n"
|
||||
printf " $ hideIt.sh --name '^dropdown-terminal$' --toggle\n"
|
||||
}
|
||||
|
||||
argparse() {
|
||||
# Parse system args
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case $1 in
|
||||
"-N" | "--name")
|
||||
WIN_NAME="$2"
|
||||
shift
|
||||
;;
|
||||
"-C" | "--class")
|
||||
WIN_CLASS="$2"
|
||||
shift
|
||||
;;
|
||||
"-I" | "--instance")
|
||||
WIN_INSTANCE="$2"
|
||||
shift
|
||||
;;
|
||||
"--id")
|
||||
if [[ ! $2 =~ [0-9]+ ]]; then
|
||||
printf "Invalid window id. Should be a number.\n" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
WIN_ID="$2"
|
||||
shift
|
||||
;;
|
||||
"-w" | "--wait")
|
||||
WAIT=0
|
||||
;;
|
||||
"-H" | "--hover")
|
||||
HOVER=0
|
||||
;;
|
||||
"-S" | "--signal")
|
||||
SIGNAL=0
|
||||
;;
|
||||
"-r" | "--region")
|
||||
local posX posY offsetX offsetY
|
||||
read posX posY offsetX offsetY <<<$(echo "$2" |
|
||||
sed -rn 's/^([0-9]+)x([0-9]+)\+(-?[0-9]+)\+(-?[0-9]+)/\1 \2 \3 \4/p')
|
||||
|
||||
# Test if we have proper values by trying
|
||||
# to add them all together
|
||||
expr $posX + $posY + $offsetX + $offsetY >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
printf "Invalid region. See --help for usage.\n" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
MINX=$posX
|
||||
MAXX=$((${MINX} + ${offsetX}))
|
||||
if [ $MINX -gt $MAXX ]; then
|
||||
read MINX MAXX <<<"$MAXX $MINX"
|
||||
fi
|
||||
|
||||
MINY=$posY
|
||||
MAXY=$((${MINY} + ${offsetY}))
|
||||
if [ $MINY -gt $MAXY ]; then
|
||||
read MINY MAXY <<<"$MAXY $MINY"
|
||||
fi
|
||||
|
||||
if [[ ! $MINX =~ [0-9]+ ]] || [[ ! $MINY =~ [0-9]+ ]] ||
|
||||
[[ ! $MAXY =~ [0-9]+ ]] || [[ ! $MAXY =~ [0-9]+ ]]; then
|
||||
printf "Missing or invalid region. See --help for usage.\n" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
_HAS_REGION=0
|
||||
shift
|
||||
;;
|
||||
"-i" | "--interval")
|
||||
INTERVAL="$2"
|
||||
if [[ ! $INTERVAL =~ [0-9]+ ]]; then
|
||||
printf "Interval should be a number. " 1>&2
|
||||
exit 1
|
||||
fi
|
||||
shift
|
||||
;;
|
||||
"-p" | "--peek")
|
||||
PEEK="$2"
|
||||
if [[ ! $PEEK =~ [0-9]+ ]]; then
|
||||
printf "Peek should be a number. " 1>&2
|
||||
exit 1
|
||||
fi
|
||||
shift
|
||||
;;
|
||||
"-d" | "--direction")
|
||||
DIRECTION="$2"
|
||||
if [[ ! "$DIRECTION" =~ ^(left|right|top|bottom)$ ]]; then
|
||||
printf "Invalid direction. See --help for usage.\n" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
shift
|
||||
;;
|
||||
"-s" | "--steps")
|
||||
STEPS="$2"
|
||||
if [[ ! $STEPS =~ [0-9]+ ]]; then
|
||||
printf "Steps should be a number. " 1>&2
|
||||
exit 1
|
||||
fi
|
||||
shift
|
||||
;;
|
||||
"-T" | "--no-trans")
|
||||
NO_TRANS=0
|
||||
;;
|
||||
"-t" | "--toggle")
|
||||
TOGGLE=0
|
||||
;;
|
||||
"-P" | "--toggle-peek")
|
||||
TOGGLE_PEEK=0
|
||||
;;
|
||||
"-h" | "--help")
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
**)
|
||||
printf "Didn't understand '$1'\n" 1>&2
|
||||
printf "See --help for usage.\n"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# Check required arguments
|
||||
local _names="${WIN_ID}${WIN_NAME}${WIN_CLASS}${WIN_INSTANCE}"
|
||||
if [ -z "$_names" ] && [ -z "$WIN_ID" ]; then
|
||||
printf "At least one of --name, --class, --instance or --id" 1>&2
|
||||
printf " is required!\n" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $TOGGLE -ne 0 ] && [ $TOGGLE_PEEK -ne 0 ] && [ $SIGNAL -ne 0 ] &&
|
||||
[ $_HAS_REGION -ne 0 ] && [ $HOVER -ne 0 ]; then
|
||||
printf "At least one of --toggle, --signal, --hover or" 1>&2
|
||||
printf " --region is required!\n" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function fetch_window_id_MOVEALONG() {
|
||||
|
||||
WIN_ID_MOVEALONG_ONE=$(xdotool search --name "$WIN_NAME_MOVEALONG_ONE")
|
||||
echo "WIN_ID_MOVEALONG_ONE $WIN_NAME_MOVEALONG_ONE -> $WIN_ID_MOVEALONG_ONE"
|
||||
|
||||
}
|
||||
function fetch_window_id() {
|
||||
|
||||
fetch_window_id_MOVEALONG
|
||||
|
||||
# Sets the values for the following global
|
||||
# WIN_ID
|
||||
|
||||
# We already have a window id
|
||||
if [ ! -z "$WIN_ID" ]; then
|
||||
_PID_FILE="/tmp/hideIt-${WIN_ID}.pid"
|
||||
return
|
||||
fi
|
||||
|
||||
local _id=-1
|
||||
|
||||
# Search all windows matching the provided class
|
||||
local _tmp1=()
|
||||
if [ ! -z "$WIN_CLASS" ]; then
|
||||
_tmp1=($(xdotool search --class "$WIN_CLASS"))
|
||||
_tmp1=${_tmp1:--1}
|
||||
fi
|
||||
|
||||
# Search all windows matching the provided instance
|
||||
local _tmp2=()
|
||||
if [ ! -z "$WIN_INSTANCE" ]; then
|
||||
_tmp2=($(xdotool search --classname "$WIN_INSTANCE"))
|
||||
_tmp2=${_tmp2:--1}
|
||||
fi
|
||||
|
||||
# Search all windows matching the provided name (title)
|
||||
local _tmp3=()
|
||||
if [ ! -z "$WIN_NAME" ]; then
|
||||
_tmp3=($(xdotool search --name "$WIN_NAME"))
|
||||
_tmp3=${_tmp3:--1}
|
||||
fi
|
||||
|
||||
# Shift values upwards
|
||||
for i in {1..2}; do
|
||||
if [ -z $_tmp1 ]; then
|
||||
_tmp1=(${_tmp2[@]})
|
||||
_tmp2=()
|
||||
fi
|
||||
|
||||
if [ -z $_tmp2 ]; then
|
||||
_tmp2=(${_tmp3[@]})
|
||||
_tmp3=()
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -z $_tmp2 ]; then
|
||||
# We only have one list of ids so we pick the first one from it
|
||||
_id=${_tmp1[0]}
|
||||
else
|
||||
# We have multiple lists so we have to find the id that appears
|
||||
# in all of them
|
||||
local _oldIFS=$IFS
|
||||
IFS=$'\n\t'
|
||||
|
||||
local _ids=($(comm -12 \
|
||||
<(echo "${_tmp1[*]}" | sort) \
|
||||
<(echo "${_tmp2[*]}" | sort)))
|
||||
|
||||
if [ ! -z $_tmp3 ]; then
|
||||
_ids=($(comm -12 \
|
||||
<(echo "${_tmp3[*]}" | sort) \
|
||||
<(echo "${_ids[*]}" | sort)))
|
||||
fi
|
||||
IFS=$_oldIFS
|
||||
|
||||
_id=${_ids[0]}
|
||||
fi
|
||||
|
||||
if [[ $_id =~ [0-9]+ ]] && [ $_id -gt 0 ]; then
|
||||
WIN_ID=$_id
|
||||
_PID_FILE="/tmp/hideIt-${WIN_ID}.pid"
|
||||
fi
|
||||
}
|
||||
|
||||
function fetch_screen_dimensions() {
|
||||
# Sets the values for the following globals
|
||||
# SCREEN_WIDTH, SCREEN_HEIGHT
|
||||
|
||||
local win_info=$(xwininfo -root)
|
||||
SCREEN_WIDTH=$(echo "$win_info" | sed -rn 's/.*Width: +([0-9]+)/\1/p')
|
||||
SCREEN_HEIGHT=$(echo "$win_info" | sed -rn 's/.*Height: +([0-9]+)/\1/p')
|
||||
}
|
||||
|
||||
function fetch_window_dimensions() {
|
||||
# Sets the values for the following globals unless no WIN_ID exists
|
||||
# WIN_WIDTH, WIN_HEIGHT, WIN_POSX, WIN_POSY
|
||||
|
||||
if [[ ! $WIN_ID =~ [0-9]+ ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
local win_info=$(xwininfo -id $WIN_ID)
|
||||
|
||||
WIN_WIDTH=$(echo "$win_info" | sed -rn 's/.*Width: +([0-9]+)/\1/p')
|
||||
WIN_HEIGHT=$(echo "$win_info" | sed -rn 's/.*Height: +([0-9]+)/\1/p')
|
||||
|
||||
if [ ! -z "$1" ] && [ $1 -eq 0 ]; then
|
||||
WIN_POSX=$(echo "$win_info" |
|
||||
sed -rn 's/.*Absolute upper-left X: +(-?[0-9]+)/\1/p')
|
||||
WIN_POSY=$(echo "$win_info" |
|
||||
sed -rn 's/.*Absolute upper-left Y: +(-?[0-9]+)/\1/p')
|
||||
fi
|
||||
|
||||
local win_info_MOVEALONG=$(xwininfo -id $WIN_ID_MOVEALONG_ONE)
|
||||
WIN_POSX_MOVEALONG_ONE=$(echo "$win_info_MOVEALONG" |
|
||||
sed -rn 's/.*Absolute upper-left X: +(-?[0-9]+)/\1/p')
|
||||
}
|
||||
|
||||
function send_signal() {
|
||||
# Send a SIGUSR1 to an active hideIt.sh instance
|
||||
# if a pid file was found.
|
||||
local signal=$1
|
||||
if [ ! -f "$_PID_FILE" ]; then
|
||||
printf "Pid file at \"${_PID_FILE}\" doesn't exist!\n" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local _pid=$(cat $_PID_FILE)
|
||||
if [ ! "$LOGS" -eq 0 ]; then printf "Sending ${signal} to instance...\n"; fi
|
||||
|
||||
if [[ $_pid =~ [0-9]+ ]]; then
|
||||
kill -${signal} $_pid
|
||||
exit 0
|
||||
else
|
||||
printf "Invalid pid in \"${_PID_FILE}\".\n" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function winmove() {
|
||||
#echo "WIN_ID $WIN_ID"
|
||||
xdotool windowmove $WIN_ID $1 $2
|
||||
xdotool 2>/dev/null 1>&2 windowmove $WIN_ID $1 $2
|
||||
|
||||
# Tray
|
||||
#echo "WIN_ID_MOVEALONG_ONE $WIN_ID_MOVEALONG_ONE"
|
||||
#xdotool windowmove $WIN_ID_MOVEALONG_ONE $1 $2
|
||||
xdotool 2>/dev/null 1>&2 windowmove $WIN_ID_MOVEALONG_ONE $WIN_POSX_MOVEALONG_ONE $(($2 + $WIN_OFFSETY_MOVEALONG))
|
||||
|
||||
}
|
||||
|
||||
function hide_window() {
|
||||
# Move the window in or out
|
||||
# Args:
|
||||
# hide: 0 to hide, 1 to show
|
||||
|
||||
local hide=$1
|
||||
|
||||
# Make sure window still exists and exit if not.
|
||||
xwininfo -id $WIN_ID &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
printf "Window doesn't exist anymore, exiting!\n"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
_IS_HIDDEN=$hide
|
||||
|
||||
# Update WIN_WIDTH, WIN_HEIGHT in case they changed
|
||||
fetch_window_dimensions
|
||||
|
||||
# Activate the window.
|
||||
# Should bring it to the front, change workspace etc.
|
||||
if [ $hide -ne 0 ]; then
|
||||
# Unhide
|
||||
xdotool windowactivate $WIN_ID >/dev/null 2>&1
|
||||
else
|
||||
# Hide
|
||||
#while [ -f "$STATUSFILE" ]; do
|
||||
# File exists
|
||||
# sleep 0.2
|
||||
#done
|
||||
bash ~/.config/polybar/scripts/polypopup.sh --hide
|
||||
fi
|
||||
|
||||
# Generate the sequence used to move the window
|
||||
local to=()
|
||||
local sequence=()
|
||||
if [ "$DIRECTION" == "left" ]; then
|
||||
to=-$(($WIN_WIDTH - $PEEK))
|
||||
if [ $hide -eq 0 ]; then
|
||||
sequence=($(seq $WIN_POSX -$STEPS $to))
|
||||
sequence+=($to)
|
||||
else
|
||||
sequence=($(seq $to $STEPS $WIN_POSX))
|
||||
sequence+=($WIN_POSX)
|
||||
fi
|
||||
|
||||
elif [ "$DIRECTION" == "right" ]; then
|
||||
to=$(($SCREEN_WIDTH - $PEEK))
|
||||
if [ $hide -eq 0 ]; then
|
||||
sequence=($(seq $WIN_POSX $STEPS $to))
|
||||
sequence+=($to)
|
||||
else
|
||||
sequence=($(seq $to -$STEPS $WIN_POSX))
|
||||
sequence+=($WIN_POSX)
|
||||
fi
|
||||
|
||||
elif [ "$DIRECTION" == "bottom" ]; then
|
||||
to=$(($SCREEN_HEIGHT - $PEEK))
|
||||
if [ $hide -eq 0 ]; then
|
||||
sequence=($(seq $WIN_POSY $STEPS $to))
|
||||
sequence+=($to)
|
||||
else
|
||||
sequence=($(seq $to -$STEPS $WIN_POSY))
|
||||
sequence+=($WIN_POSY)
|
||||
fi
|
||||
|
||||
elif [ "$DIRECTION" == "top" ]; then
|
||||
to=-$(($WIN_HEIGHT - $PEEK))
|
||||
if [ $hide -eq 0 ]; then
|
||||
sequence=($(seq $WIN_POSY -$STEPS $to))
|
||||
sequence+=($to)
|
||||
else
|
||||
sequence=($(seq $to $STEPS $WIN_POSY))
|
||||
sequence+=($WIN_POSY)
|
||||
fi
|
||||
fi
|
||||
|
||||
# Actually move the window
|
||||
if [ $NO_TRANS -ne 0 ]; then
|
||||
for pos in ${sequence[@]}; do
|
||||
if [[ "$DIRECTION" =~ ^(left|right)$ ]]; then
|
||||
winmove $pos $WIN_POSY
|
||||
elif [[ "$DIRECTION" =~ ^(top|bottom)$ ]]; then
|
||||
winmove $WIN_POSX $pos
|
||||
fi
|
||||
done
|
||||
else
|
||||
pos=${sequence[-1]}
|
||||
if [[ "$DIRECTION" =~ ^(left|right)$ ]]; then
|
||||
winmove $pos $WIN_POSY
|
||||
elif [[ "$DIRECTION" =~ ^(top|bottom)$ ]]; then
|
||||
winmove $WIN_POSX $pos
|
||||
fi
|
||||
fi
|
||||
|
||||
# In case we hid the window, try to give focus to whatever is
|
||||
# underneath the cursor.
|
||||
if [ $hide -eq 0 ]; then
|
||||
eval $(xdotool getmouselocation --shell)
|
||||
xdotool windowactivate $WINDOW >/dev/null 2>&1
|
||||
fi
|
||||
}
|
||||
|
||||
function toggle() {
|
||||
# Toggle the hidden state of the window
|
||||
|
||||
if [ $_IS_HIDDEN -eq 0 ]; then
|
||||
hide_window 1
|
||||
else
|
||||
hide_window 0
|
||||
fi
|
||||
}
|
||||
|
||||
function toggle_peek() {
|
||||
# Completely hide/unhide the window in case PEEK is greater 0
|
||||
|
||||
if [ $PEEK -eq 0 ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
local _peek=$PEEK
|
||||
local _win_posx=$WIN_POSX
|
||||
local _win_posy=$WIN_POSY
|
||||
|
||||
fetch_window_dimensions 0
|
||||
|
||||
if [ $_DOES_PEEK -eq 0 ]; then
|
||||
_DOES_PEEK=1
|
||||
PEEK=0
|
||||
else
|
||||
_DOES_PEEK=0
|
||||
fi
|
||||
|
||||
hide_window 0
|
||||
|
||||
PEEK=$_peek
|
||||
WIN_POSX=$_win_posx
|
||||
WIN_POSY=$_win_posy
|
||||
}
|
||||
|
||||
function serve_region() {
|
||||
# Check the cursors location and act accordingly
|
||||
|
||||
local _hide=0
|
||||
while true; do
|
||||
if [ $_DOES_PEEK -eq 0 ]; then
|
||||
# Get cursor x, y position and active window
|
||||
eval $(xdotool getmouselocation --shell)
|
||||
|
||||
# Test if the cursor is within the region
|
||||
if [ $X -ge $MINX -a $X -le $MAXX ] &&
|
||||
[ $Y -ge $MINY -a $Y -le $MAXY ]; then
|
||||
_hide=1
|
||||
else
|
||||
|
||||
if [ ! "$POPUPS_PIN" -eq 0 ] && [ -f $STATUSFILE ]; then
|
||||
_hide=1
|
||||
else
|
||||
_hide=0
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# Don't hide if the cursor is still above the window
|
||||
if [ $_IS_HIDDEN -ne 0 ] && [ $_hide -eq 0 ] ; then
|
||||
if [ $WINDOW -eq $WIN_ID ] || [ $WINDOW -eq $WIN_ID_MOVEALONG_ONE ] ; then
|
||||
_hide=1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Only do something if necessary
|
||||
if [ $_IS_HIDDEN -ne $_hide ]; then
|
||||
|
||||
hide_window $_hide
|
||||
fi
|
||||
fi
|
||||
|
||||
# Cut some slack
|
||||
sleep $INTERVAL
|
||||
done
|
||||
}
|
||||
|
||||
function serve_xev() {
|
||||
# Wait for cursor "Enter" and "Leave" events reported by
|
||||
# xev and act accordingly
|
||||
|
||||
xev -id $WIN_ID -event mouse | while read line; do
|
||||
if [[ "$line" =~ ^EnterNotify.* ]]; then
|
||||
hide_window 1
|
||||
elif [[ "$line" =~ ^LeaveNotify.* ]]; then
|
||||
if [ -nf "$STATUSFILE" ]; then
|
||||
hide_window 0
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
function restore() {
|
||||
# Called by trap once we receive an EXIT
|
||||
|
||||
if [ -n "$_WAIT_PID" ]; then
|
||||
kill -- "-${_WAIT_PID}"
|
||||
fi
|
||||
|
||||
if [ -f "$_PID_FILE" ]; then
|
||||
rm "$_PID_FILE"
|
||||
fi
|
||||
|
||||
if [ $_IS_HIDDEN -eq 0 ]; then
|
||||
if [ ! "$LOGS" -eq 0 ]; then printf "Restoring original window position...\n"; fi
|
||||
hide_window 1
|
||||
fi
|
||||
|
||||
exit 0
|
||||
}
|
||||
|
||||
function main() {
|
||||
# Entry point for hideIt
|
||||
|
||||
# Parse all the args!
|
||||
argparse "$@"
|
||||
|
||||
if [ ! "$LOGS" -eq 0 ]; then printf "Searching window...\n"; fi
|
||||
fetch_window_id
|
||||
|
||||
# If enabled, wait until a window was found.
|
||||
if [ $WAIT -eq 0 ] && [[ ! $WIN_ID =~ [0-9]+ ]]; then
|
||||
if [ ! "$LOGS" -eq 0 ]; then printf "Waiting for window"; fi
|
||||
while [[ ! $WIN_ID =~ [0-9]+ ]]; do
|
||||
printf "."
|
||||
fetch_window_id
|
||||
sleep 1
|
||||
done
|
||||
if [ ! "$LOGS" -eq 0 ]; then printf "\n"; fi
|
||||
fi
|
||||
|
||||
if [[ ! $WIN_ID =~ [0-9]+ ]]; then
|
||||
printf "No window found!\n" 1>&2
|
||||
exit 1
|
||||
else
|
||||
if [ ! "$LOGS" -eq 0 ]; then printf "Found window with id: $WIN_ID\n"; fi
|
||||
fi
|
||||
|
||||
if [ $TOGGLE -eq 0 ]; then
|
||||
send_signal SIGUSR1
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ $TOGGLE_PEEK -eq 0 ]; then
|
||||
send_signal SIGUSR2
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! "$LOGS" -eq 0 ]; then printf "Fetching window dimensions...\n"; fi
|
||||
fetch_window_dimensions 0
|
||||
|
||||
if [ ! "$LOGS" -eq 0 ]; then printf "Fetching screen dimensions...\n"; fi
|
||||
fetch_screen_dimensions
|
||||
|
||||
trap restore EXIT
|
||||
|
||||
if [ ! "$LOGS" -eq 0 ]; then printf "Initially hiding window...\n"; fi
|
||||
hide_window 0
|
||||
|
||||
# Save our pid into a file
|
||||
echo "$$" >/tmp/hideIt-${WIN_ID}.pid
|
||||
trap toggle_peek SIGUSR2
|
||||
|
||||
# Start observing
|
||||
if [ $_HAS_REGION -eq 0 ]; then
|
||||
if [ ! "$LOGS" -eq 0 ]; then
|
||||
printf "Defined region:\n"
|
||||
printf " X: $MINX $MAXX\n"
|
||||
printf " Y: $MINY $MAXY\n"
|
||||
printf "\n"
|
||||
printf "Waiting for region...\n"
|
||||
fi
|
||||
serve_region &
|
||||
_WAIT_PID=$!
|
||||
elif [ $SIGNAL -eq 0 ]; then
|
||||
if [ ! "$LOGS" -eq 0 ]; then printf "Waiting for SIGUSR1...\n"; fi
|
||||
trap toggle SIGUSR1
|
||||
sleep infinity &
|
||||
_WAIT_PID=$!
|
||||
elif [ $HOVER -eq 0 ]; then
|
||||
if [ ! "$LOGS" -eq 0 ]; then printf "Waiting for HOVER...\n"; fi
|
||||
serve_xev &
|
||||
_WAIT_PID=$!
|
||||
fi
|
||||
|
||||
if [ -n "$_WAIT_PID" ]; then
|
||||
while true; do
|
||||
wait "$_WAIT_PID"
|
||||
if [ ! "$LOGS" -eq 0 ]; then printf "Received signal...\n"; fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
# Lets do disss!
|
||||
set -m
|
||||
main "$@"
|
||||
Executable
+314
@@ -0,0 +1,314 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
|
||||
import sys
|
||||
import time
|
||||
import struct
|
||||
import os.path
|
||||
import subprocess
|
||||
import configparser
|
||||
|
||||
|
||||
from collections import OrderedDict
|
||||
|
||||
|
||||
##################################################
|
||||
# Config
|
||||
|
||||
# This script converts cava's data output into fancy little bars. These values can range from 0 to 100
|
||||
# We need to distribute 9 characters ('Zero output' and all bar heights: '▁▂▃▄▅▆▇█') over this value range.
|
||||
# The 'BAR_FACTOR' is used to calculator all those states and keep the code readable
|
||||
# (See 'BAR_CHARACTERS')
|
||||
#
|
||||
BAR_FACTOR = 100 / 7
|
||||
|
||||
# Configure resolution and style of the output here.
|
||||
# The script fetches the cava output value and searches for the biggest matching key to get the character from
|
||||
# (See 'BAR_FACTOR')
|
||||
#
|
||||
BAR_CHARACTERS = dict([
|
||||
(000, '▁'), # Zero output
|
||||
|
||||
(BAR_FACTOR * 1, '▁'),
|
||||
(BAR_FACTOR * 2, '▂'),
|
||||
(BAR_FACTOR * 3, '▃'),
|
||||
(BAR_FACTOR * 4, '▄'),
|
||||
(BAR_FACTOR * 5, '▅'),
|
||||
(BAR_FACTOR * 6, '▆'),
|
||||
(BAR_FACTOR * 7, '▇'),
|
||||
|
||||
(100, '█'), # Highest output
|
||||
])
|
||||
|
||||
# Separator Character between bars. Can be anything
|
||||
#
|
||||
# Default: ' '
|
||||
#
|
||||
SEPARATOR = ' '
|
||||
|
||||
# Display no output if all bars are at minimum level (no sound output)
|
||||
#
|
||||
# Default: False
|
||||
#
|
||||
HIDE_WHEN_EMPTY = False
|
||||
|
||||
# Specify how long this script should wait before printing another value
|
||||
#
|
||||
# Default: 0.0005
|
||||
#
|
||||
OUTPUT_DELAY = 0.0005
|
||||
|
||||
# Specify how many times cava can report "no sound" (all values are 0) before the script detects it
|
||||
#
|
||||
# Default: 5
|
||||
#
|
||||
EMPTY_OUTPUT_THRESHOLD = 5
|
||||
|
||||
# If the script output should be written to a named pipe, specify the path here.
|
||||
# Set to 'None' to disable FIFO output and print to STDOUT
|
||||
#
|
||||
# Default: None
|
||||
#
|
||||
# Examples:
|
||||
# "/tmp/cava_polybar_output.fifo"
|
||||
# os.path.join(os.sep, "tmp", "cava_polybar_output.fifo")
|
||||
#
|
||||
PIPE_OUT = None
|
||||
|
||||
|
||||
# Path of the temporary cava configuration used to run the cava subprocess
|
||||
#
|
||||
# Default: os.path.join(os.sep, "tmp", "cava_polybar.config")
|
||||
#
|
||||
# Examples:
|
||||
# "/tmp/cava_polybar.config"
|
||||
# os.path.join(os.sep, "tmp", "cava_polybar.config")
|
||||
#
|
||||
CAVA_CONFIG_PATH = os.path.join(os.sep, "tmp", "cava_polybar.config")
|
||||
|
||||
# The following data will be used in the temporary cava config
|
||||
#
|
||||
# FIFO input pipe for raw cava data
|
||||
#
|
||||
PIPE_IN = os.path.join(os.sep, "tmp", "cava_polybar_input.fifo")
|
||||
|
||||
# Number of bars in cava
|
||||
#
|
||||
# Default: 8
|
||||
#
|
||||
CAVA_BARS_NUMBER = 16
|
||||
|
||||
# Output bit format for cava.
|
||||
# Can be 16bit ot 8bit, but 8 should be plenty of resolution for the default of 8 bars...
|
||||
#
|
||||
# Default: "8bit"
|
||||
#
|
||||
CAVA_BIT_FORMAT = "8bit"
|
||||
|
||||
|
||||
##################################################
|
||||
# Code begins here
|
||||
|
||||
bytetype, bytesize, bytenorm = ("H", 2, 65535) if (
|
||||
CAVA_BIT_FORMAT == "16bit") else ("B", 1, 255)
|
||||
|
||||
|
||||
def output(string, file):
|
||||
"""
|
||||
Print/Write the given value either to STDOUT ot the specified output pipe
|
||||
|
||||
Args:
|
||||
string ([string]): String to print
|
||||
file ([file]): [description]
|
||||
"""
|
||||
|
||||
if (PIPE_OUT):
|
||||
file.write(string)
|
||||
else:
|
||||
print(string, end="")
|
||||
sys.stdout.flush()
|
||||
|
||||
time.sleep(OUTPUT_DELAY)
|
||||
|
||||
|
||||
def valueToCharacter(value):
|
||||
"""
|
||||
Returns the respective character for a value. Returns 'highest' character if no match is found
|
||||
|
||||
Args:
|
||||
value ([int]): Value that should be mapped to a character
|
||||
|
||||
Returns:
|
||||
[char]: Respective character for the given value
|
||||
"""
|
||||
|
||||
for bar_threshold in BAR_CHARACTERS:
|
||||
if(value < bar_threshold):
|
||||
return BAR_CHARACTERS[bar_threshold]
|
||||
return BAR_CHARACTERS[100]
|
||||
|
||||
|
||||
def run():
|
||||
"""
|
||||
Prepare variables and run the conversion process
|
||||
"""
|
||||
|
||||
createCavaConfig()
|
||||
|
||||
# Create cava subprocess
|
||||
FNULL = open(os.devnull, 'w')
|
||||
cavaProcess = subprocess.Popen(
|
||||
["cava", "-p", CAVA_CONFIG_PATH],
|
||||
stdout=FNULL,
|
||||
stderr=subprocess.STDOUT
|
||||
)
|
||||
|
||||
# Open output pipe if specified
|
||||
outputPipe = None
|
||||
if (PIPE_OUT):
|
||||
print("The converted output can be found in " + PIPE_OUT)
|
||||
|
||||
if os.path.exists(PIPE_OUT):
|
||||
os.remove(PIPE_OUT)
|
||||
|
||||
os.mkfifo(PIPE_OUT)
|
||||
outputPipe = open(PIPE_OUT, "w")
|
||||
|
||||
# Open input pipe (raw cava data)
|
||||
inputPipe = open(PIPE_IN, "rb")
|
||||
|
||||
exitCode = 0
|
||||
try:
|
||||
# Run the conversion process
|
||||
convert(inputPipe, outputPipe)
|
||||
except KeyboardInterrupt:
|
||||
exitCode = 1
|
||||
|
||||
# Close output pipe if needed
|
||||
if (PIPE_OUT):
|
||||
outputPipe.close()
|
||||
os.remove(PIPE_OUT)
|
||||
|
||||
# Close input pipe and kill the subprocess
|
||||
inputPipe.close()
|
||||
cavaProcess.kill()
|
||||
|
||||
sys.exit(exitCode)
|
||||
|
||||
|
||||
def convert(inputPipe, outputPipe=None):
|
||||
"""
|
||||
Converts values taken from the input pipe to printable characters.
|
||||
The result is either printed to STDOUT or written to the output pipe
|
||||
|
||||
Args:
|
||||
inputPipe ([file]): Input file containing raw cava data
|
||||
outputPipe ([file]): Output file (if specified)
|
||||
"""
|
||||
|
||||
# Initialize variables
|
||||
chunk = bytesize * CAVA_BARS_NUMBER
|
||||
fmt = bytetype * CAVA_BARS_NUMBER
|
||||
|
||||
emptyOutputs = 0
|
||||
|
||||
# Convert
|
||||
while True:
|
||||
rawData = inputPipe.read(chunk)
|
||||
if len(rawData) < chunk:
|
||||
break
|
||||
|
||||
tstring = ""
|
||||
emptyOutput = True
|
||||
|
||||
for i in struct.unpack(fmt, rawData):
|
||||
value = int(i / bytenorm * 100)
|
||||
|
||||
if (len(tstring) > 0):
|
||||
tstring += SEPARATOR
|
||||
tstring += valueToCharacter(value)
|
||||
|
||||
if (value != 0):
|
||||
emptyOutput = False
|
||||
|
||||
if (emptyOutput and HIDE_WHEN_EMPTY):
|
||||
emptyOutputs += 1
|
||||
if (emptyOutputs > EMPTY_OUTPUT_THRESHOLD):
|
||||
output(" " + os.linesep, outputPipe)
|
||||
else:
|
||||
emptyOutputs = 0
|
||||
output(tstring + os.linesep, outputPipe)
|
||||
|
||||
|
||||
def createCavaConfig():
|
||||
"""
|
||||
Create the temporary configuration file used by the cava subprocess
|
||||
"""
|
||||
|
||||
config = configparser.ConfigParser()
|
||||
|
||||
config.add_section('general')
|
||||
config.set('general', 'bars', str(CAVA_BARS_NUMBER))
|
||||
config.set('general', 'overshoot', str(0))
|
||||
|
||||
config.add_section('output')
|
||||
config.set('output', 'method', 'raw')
|
||||
config.set('output', 'channels', 'mono')
|
||||
config.set('output', 'mono_option', 'average')
|
||||
config.set('output', 'raw_target', PIPE_IN)
|
||||
config.set('output', 'bit_format', CAVA_BIT_FORMAT)
|
||||
|
||||
config.add_section('smoothing')
|
||||
config.set('smoothing', 'integral', '0')
|
||||
|
||||
with open(CAVA_CONFIG_PATH, 'w') as configfile:
|
||||
config.write(configfile)
|
||||
|
||||
|
||||
def printTestData():
|
||||
"""
|
||||
Prints test data to stdout. Useful for checking resolution and customisation configuration
|
||||
"""
|
||||
|
||||
print("")
|
||||
|
||||
print("Bar Characters:")
|
||||
for bar_threshold in BAR_CHARACTERS:
|
||||
print('{:06.2f}: {}'.format(
|
||||
bar_threshold, BAR_CHARACTERS[bar_threshold]))
|
||||
|
||||
print("")
|
||||
|
||||
print("Value Test:")
|
||||
for i in range(101):
|
||||
print('{:03d}: {}'.format(i, valueToCharacter(i)))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
# Sort the dict to ensure correct character mapping
|
||||
BAR_CHARACTERS = OrderedDict(sorted(BAR_CHARACTERS.items()))
|
||||
|
||||
for arg in sys.argv:
|
||||
if (arg == "h" or arg == "help"):
|
||||
print("")
|
||||
print("cava polybar parse script")
|
||||
print(
|
||||
"Converts cava raw values into characters and outputs to STDOUT or a fifo buffer")
|
||||
print("")
|
||||
print("Adjust thresholds, characters and config directly in the script")
|
||||
print(
|
||||
"If the config file at 'CONFIG_PATH' (/tmp/cava_polybar.config) is messed up, simply delet it")
|
||||
print("")
|
||||
print("Arguments:")
|
||||
print("<none> ... Execute normally")
|
||||
print("t, test ... Run test mode (stdout only)")
|
||||
print("h, help ... Show this help message and exit (stdout only)")
|
||||
print("")
|
||||
sys.exit()
|
||||
|
||||
if (arg == "t" or arg == "test"):
|
||||
printTestData()
|
||||
sys.exit()
|
||||
|
||||
run()
|
||||
Executable
+29
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
# Based on https://github.com/PrayagS/polybar-spotify/
|
||||
|
||||
# Set the max text length.
|
||||
# Default is 10 characters
|
||||
LENGTH=${1:-20}
|
||||
|
||||
# Set the source audio player here.
|
||||
# Players supporting the MPRIS spec are supported.
|
||||
# Examples: spotify, vlc, chrome, mpv and others.
|
||||
# Use `playerctld` to always detect the latest player.
|
||||
# See more here: https://github.com/altdesktop/playerctl/#selecting-players-to-control
|
||||
PLAYER="playerctld"
|
||||
|
||||
# Format of the information displayed
|
||||
# Eg. {{ artist }} - {{ album }} - {{ title }}
|
||||
# See more attributes here: https://github.com/altdesktop/playerctl/#printing-properties-and-metadata
|
||||
FORMAT="{{ title }} - {{ artist }}"
|
||||
|
||||
# see man zscroll for documentation of the following parameters
|
||||
zscroll -l "$LENGTH" \
|
||||
--delay 0.2 \
|
||||
--scroll-padding " >> " \
|
||||
--match-command "playerctl -s --player=$PLAYER status 2>/dev/null" \
|
||||
--match-text "Playing" "--scroll 1" \
|
||||
--match-text "Paused" "--scroll 0" \
|
||||
--update-check true "playerctl -s --player=$PLAYER metadata --format '$FORMAT'" &
|
||||
|
||||
wait
|
||||
@@ -0,0 +1,58 @@
|
||||
#!/bin/python
|
||||
|
||||
# 1
|
||||
# 2
|
||||
# 3
|
||||
# 4
|
||||
# 5
|
||||
# 6
|
||||
# 7
|
||||
# 8
|
||||
# 9
|
||||
# 10
|
||||
# 11
|
||||
# 12
|
||||
|
||||
import datetime
|
||||
|
||||
mappedChars = {
|
||||
-1: "",
|
||||
|
||||
0: "",
|
||||
1: "",
|
||||
2: "",
|
||||
3: "",
|
||||
4: "",
|
||||
5: "",
|
||||
6: "",
|
||||
7: "",
|
||||
8: "",
|
||||
9: "",
|
||||
10: "",
|
||||
11: "",
|
||||
12: "",
|
||||
|
||||
13: "",
|
||||
14: "",
|
||||
15: "",
|
||||
16: "",
|
||||
17: "",
|
||||
18: "",
|
||||
19: "",
|
||||
20: "",
|
||||
21: "",
|
||||
22: "",
|
||||
23: "",
|
||||
24: "",
|
||||
}
|
||||
|
||||
def getHours():
|
||||
return datetime.datetime.now().hour
|
||||
|
||||
def getSymbolByValue(value):
|
||||
for char in mappedChars:
|
||||
if(value < char):
|
||||
return mappedChars[value]
|
||||
return mappedChars[-1]
|
||||
|
||||
print(getSymbolByValue(getHours()))
|
||||
Executable
+95
@@ -0,0 +1,95 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Dependencies:
|
||||
# pacman-contrib, yay for AUR updates
|
||||
|
||||
ENA_UPDATES=$(command -v checkupdates)
|
||||
CNT_UPDATES="0"
|
||||
UPDATES="nA"
|
||||
|
||||
if [[ "$1" != *"count"* ]]; then
|
||||
echo "Fetching updates..."
|
||||
fi
|
||||
|
||||
if [ "$ENA_UPDATES" ]; then
|
||||
UPDATES=$(checkupdates 2>/dev/null)
|
||||
CNT_UPDATES=$(echo "$UPDATES" | wc -l)
|
||||
fi
|
||||
|
||||
ENA_UPDATES_AUR=$(command -v yay)
|
||||
CNT_UPDATES_AUR="0"
|
||||
UPDATES_AUR="nA"
|
||||
|
||||
if [ "$ENA_UPDATES_AUR" ]; then
|
||||
UPDATES_AUR=$(yay -Qua)
|
||||
CNT_UPDATES_AUR=$(echo "$UPDATES_AUR" | wc -l)
|
||||
fi
|
||||
|
||||
CNT_UPDATES_TOTAL=$(("$CNT_UPDATES" + "$CNT_UPDATES_AUR"))
|
||||
|
||||
if [[ "$1" != *"count"* ]]; then
|
||||
clear
|
||||
fi
|
||||
|
||||
if [ "$1" == "--count" ]; then
|
||||
echo "Official: $CNT_UPDATES, AUR: $CNT_UPDATES_AUR, Total: $CNT_UPDATES_TOTAL"
|
||||
fi
|
||||
if [ "$1" == "--count-short" ]; then
|
||||
echo "$CNT_UPDATES / $CNT_UPDATES_AUR"
|
||||
fi
|
||||
if [ "$1" == "--count-total" ]; then
|
||||
echo "$CNT_UPDATES_TOTAL"
|
||||
fi
|
||||
if [ "$1" == "--count-official" ]; then
|
||||
echo "$CNT_UPDATES"
|
||||
fi
|
||||
if [ "$1" == "--count-aur" ]; then
|
||||
echo "$CNT_UPDATES"
|
||||
fi
|
||||
|
||||
if [ "$1" == "--update" ]; then
|
||||
echo "--- Update all packages ($CNT_UPDATES_TOTAL) via yay ---"
|
||||
echo
|
||||
|
||||
yay -Syu --sudoflags "--stdin" --sudoloop
|
||||
|
||||
echo
|
||||
read -rp "Press any key to exit..."
|
||||
fi
|
||||
if [ "$1" == "--update-noconfirm" ]; then
|
||||
echo "--- Update all packages ($CNT_UPDATES_TOTAL) via yay [noconfirm] ---"
|
||||
echo
|
||||
|
||||
yay -Syu --sudoflags "--stdin" --sudoloop --noconfirm
|
||||
|
||||
echo
|
||||
read -rp "Press any key to exit..."
|
||||
fi
|
||||
|
||||
if [ "$1" == "--list" ]; then
|
||||
echo "--- List of updates ($CNT_UPDATES_TOTAL) ---"
|
||||
echo
|
||||
|
||||
if [ "$ENA_UPDATES" ]; then
|
||||
echo "-- Official ($CNT_UPDATES):"
|
||||
echo "$UPDATES"
|
||||
echo
|
||||
else
|
||||
echo "-- Package 'checkupdates' is not installed!"
|
||||
echo
|
||||
fi
|
||||
|
||||
if [ "$ENA_UPDATES_AUR" ]; then
|
||||
echo "-- AUR ($CNT_UPDATES_AUR):"
|
||||
echo "$UPDATES_AUR"
|
||||
echo
|
||||
else
|
||||
echo "-- Package 'yay' is not installed!"
|
||||
echo
|
||||
fi
|
||||
|
||||
echo
|
||||
read -rp "Press any key to exit..."
|
||||
fi
|
||||
|
||||
exit
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
ip -4 addr show "$1" 2>&1 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
|
||||
Executable
+93
@@ -0,0 +1,93 @@
|
||||
#!/bin/bash
|
||||
|
||||
###########
|
||||
## Settings
|
||||
#
|
||||
# Name of the bar in polybar (e.g. [bar/BARNAME]) which should be used as popup
|
||||
POPUP_NAME="floating_popup"
|
||||
#
|
||||
# Set labels to indicate whether the corresponding popup is shown. These will appear in your main polybar
|
||||
POPUP_LABEL_ACTIVE=""
|
||||
POPUP_LABEL_INACTIVE=""
|
||||
#
|
||||
# For each polypopup, a statusfile is created based on its name. You can set the path and prefix here
|
||||
# Be careful, as clearing all statusfiles happens with 'rm -f "$STATUSFILE_PATH$STATUSFILE_PREFIX*" '
|
||||
STATUSFILE_PATH="$HOME/.config/polybar/scripts/"
|
||||
STATUSFILE_PREFIX=".polypopup."
|
||||
#
|
||||
###########
|
||||
|
||||
POPUP_PID=-1
|
||||
STATUSFILE=$STATUSFILE_PATH$STATUSFILE_PREFIX
|
||||
|
||||
function removeLocks() {
|
||||
# Clears all lock files
|
||||
echo "$STATUSFILE_PATH$STATUSFILE_PREFIX*"
|
||||
}
|
||||
|
||||
function mapPID() {
|
||||
# Fetches the PID for the process with a name equal to 'POPUP_NAME' and stores it in 'POPUP_PID'
|
||||
|
||||
POPUP_PID=$(ps -ef | grep $POPUP_NAME | grep -v grep | awk '{print $2}')
|
||||
}
|
||||
|
||||
function setVisibility() {
|
||||
# Uses polybar-msg to hide or show the polybar with PID equal to 'POPUP_PID'.
|
||||
# Also creates a status file as indicator, using the name stored in 'POPUP_NAME' and
|
||||
# echos the specified active/inactive indicator label ('POPUP_LABEL_ACTIVE' / 'POPUP_LABEL_INACTIVE')
|
||||
#
|
||||
# Args:
|
||||
# $1: visibility (0 = hide / 1 = show)
|
||||
|
||||
if [ "$POPUP_PID" -eq -1 ]; then
|
||||
mapPID
|
||||
fi
|
||||
|
||||
if [ "$1" -eq 0 ] ; then
|
||||
|
||||
# Hide
|
||||
rm -f "$STATUSFILE$POPUP_NAME"
|
||||
polybar-msg -p "$POPUP_PID" cmd hide
|
||||
echo "$POPUP_LABEL_INACTIVE"
|
||||
|
||||
else
|
||||
|
||||
#Show
|
||||
touch "$STATUSFILE$POPUP_NAME"
|
||||
polybar-msg -p "$POPUP_PID" cmd show
|
||||
echo "$POPUP_LABEL_ACTIVE"
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$1" == "--toggle" ]; then
|
||||
if [ -f "$STATUSFILE$POPUP_NAME" ]; then
|
||||
# File exists -> hide
|
||||
setVisibility 0
|
||||
else
|
||||
# File does not exist -> show
|
||||
setVisibility 1
|
||||
fi
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ "$1" == "--hide" ]; then
|
||||
setVisibility 0
|
||||
exit
|
||||
fi
|
||||
if [ "$1" == "--show" ]; then
|
||||
setVisibility 1
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ "$1" == "--remove-locks" ]; then
|
||||
removeLocks
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -f "$STATUSFILE$POPUP_NAME" ]; then
|
||||
echo "$POPUP_LABEL_ACTIVE"
|
||||
else
|
||||
echo "$POPUP_LABEL_INACTIVE"
|
||||
fi
|
||||
exit
|
||||
@@ -1,122 +0,0 @@
|
||||
#!/bin/python
|
||||
|
||||
import sys
|
||||
import dbus
|
||||
import argparse
|
||||
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument(
|
||||
'-t',
|
||||
'--trunclen',
|
||||
type=int,
|
||||
metavar='trunclen'
|
||||
)
|
||||
parser.add_argument(
|
||||
'-f',
|
||||
'--format',
|
||||
type=str,
|
||||
metavar='custom format',
|
||||
dest='custom_format'
|
||||
)
|
||||
parser.add_argument(
|
||||
'-p',
|
||||
'--playpause',
|
||||
type=str,
|
||||
metavar='play-pause indicator',
|
||||
dest='play_pause'
|
||||
)
|
||||
parser.add_argument(
|
||||
'--font',
|
||||
type=str,
|
||||
metavar='the index of the font to use for the main label',
|
||||
dest='font'
|
||||
)
|
||||
parser.add_argument(
|
||||
'--playpause-font',
|
||||
type=str,
|
||||
metavar='the index of the font to use to display the playpause indicator',
|
||||
dest='play_pause_font'
|
||||
)
|
||||
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
def fix_string(string):
|
||||
# corrects encoding for the python version used
|
||||
if sys.version_info.major == 3:
|
||||
return string
|
||||
else:
|
||||
return string.encode('utf-8')
|
||||
|
||||
# Default parameters
|
||||
output = fix_string(u'{play_pause} {artist}: {song}')
|
||||
trunclen = 25
|
||||
play_pause = fix_string(u'\u25B6,\u23F8') # first character is play, second is paused
|
||||
|
||||
label_with_font = '%{{T{font}}}{label}%{{T-}}'
|
||||
font = args.font
|
||||
play_pause_font = args.play_pause_font
|
||||
|
||||
# parameters can be overwritten by args
|
||||
if args.trunclen is not None:
|
||||
trunclen = args.trunclen
|
||||
if args.custom_format is not None:
|
||||
output = args.custom_format
|
||||
if args.play_pause is not None:
|
||||
play_pause = args.play_pause
|
||||
|
||||
try:
|
||||
session_bus = dbus.SessionBus()
|
||||
spotify_bus = session_bus.get_object(
|
||||
'org.mpris.MediaPlayer2.spotify',
|
||||
'/org/mpris/MediaPlayer2'
|
||||
)
|
||||
|
||||
spotify_properties = dbus.Interface(
|
||||
spotify_bus,
|
||||
'org.freedesktop.DBus.Properties'
|
||||
)
|
||||
|
||||
metadata = spotify_properties.Get('org.mpris.MediaPlayer2.Player', 'Metadata')
|
||||
status = spotify_properties.Get('org.mpris.MediaPlayer2.Player', 'PlaybackStatus')
|
||||
|
||||
# Handle play/pause label
|
||||
|
||||
play_pause = play_pause.split(',')
|
||||
|
||||
if status == 'Playing':
|
||||
play_pause = play_pause[0]
|
||||
elif status == 'Paused':
|
||||
play_pause = play_pause[1]
|
||||
else:
|
||||
play_pause = str()
|
||||
|
||||
if play_pause_font:
|
||||
play_pause = label_with_font.format(font=play_pause_font, label=play_pause)
|
||||
|
||||
# Handle main label
|
||||
|
||||
artist = fix_string(metadata['xesam:artist'][0]) if metadata['xesam:artist'] else ''
|
||||
song = fix_string(metadata['xesam:title']) if metadata['xesam:title'] else ''
|
||||
|
||||
if not artist and not song:
|
||||
print('')
|
||||
else:
|
||||
if len(song) > trunclen:
|
||||
song = song[0:trunclen]
|
||||
song += '...'
|
||||
if ('(' in song) and (')' not in song):
|
||||
song += ')'
|
||||
|
||||
if font:
|
||||
artist = label_with_font.format(font=font, label=artist)
|
||||
song = label_with_font.format(font=font, label=song)
|
||||
|
||||
print(output.format(artist=artist, song=song, play_pause=play_pause))
|
||||
|
||||
except Exception as e:
|
||||
if isinstance(e, dbus.exceptions.DBusException):
|
||||
print('')
|
||||
else:
|
||||
print(e)
|
||||
@@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
###########
|
||||
# Update rofi config to apply Xresources color scheme
|
||||
#
|
||||
|
||||
NAMED_COLORS=("foreground" "background" "rofi_fgdim" "rofi_border" "rofi_selected")
|
||||
|
||||
# Target file
|
||||
SKELETON_FILE="$HOME/.config/rofi/rofi.skeleton.rasi"
|
||||
TARGET_FILE="$HOME/.config/rofi/rofi.rasi"
|
||||
|
||||
# copy input file to temporary file for black magic fuckery
|
||||
# (alacritty applies colors when the config file is written, so we want to do it
|
||||
# all in one write)
|
||||
cp "$SKELETON_FILE" "$TARGET_FILE.tmp"
|
||||
|
||||
# Grab colors from Xresources
|
||||
xrdb ~/.Xresources
|
||||
|
||||
# Named colors
|
||||
for i in "${NAMED_COLORS[@]}"
|
||||
do
|
||||
color=$(xrdb -query | awk "/*.$i/ { print substr(\$2,2) }")
|
||||
sed -i "s/%$i%/#${color}/g" "$TARGET_FILE.tmp"
|
||||
done
|
||||
|
||||
# Numbered colors
|
||||
for i in {0..15}
|
||||
do
|
||||
v=$(xrdb -query | awk '/*.color'"$i":'/ { print substr($2,2) }')
|
||||
eval "sed -i 's/%color${i}%/#${v}/g' $TARGET_FILE.tmp";
|
||||
done
|
||||
|
||||
|
||||
# Finally, replace target file with our updated one
|
||||
rm -f "$TARGET_FILE"
|
||||
mv "$TARGET_FILE.tmp" "$TARGET_FILE"
|
||||
@@ -0,0 +1,153 @@
|
||||
configuration {
|
||||
/*theme: "~/.config/rofi/rofi.rasi";*/
|
||||
|
||||
/* modi: "window,run,ssh";*/
|
||||
/* width: 50;*/
|
||||
lines: 5;
|
||||
/* columns: 1;*/
|
||||
font: "monospace 12";
|
||||
/* bw: 1;*/
|
||||
/* location: 0;*/
|
||||
/* padding: 5;*/
|
||||
/* yoffset: 0;*/
|
||||
/* xoffset: 0;*/
|
||||
fixed-num-lines: true;
|
||||
show-icons: true;
|
||||
/* terminal: "rofi-sensible-terminal";*/
|
||||
/* ssh-client: "ssh";*/
|
||||
/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
|
||||
/* run-command: "{cmd}";*/
|
||||
/* run-list-command: "";*/
|
||||
/* run-shell-command: "{terminal} -e {cmd}";*/
|
||||
/* window-command: "wmctrl -i -R {window}";*/
|
||||
/* window-match-fields: "all";*/
|
||||
icon-theme: "ePapirus, Adwaita";
|
||||
/* drun-match-fields: "name,generic,exec,categories,keywords";*/
|
||||
/* drun-categories: ;*/
|
||||
/* drun-show-actions: false;*/
|
||||
drun-display-format: "{name} [<span color='#434c5e' weight='light' size='small'>({generic})</span>]";
|
||||
/* drun-url-launcher: "xdg-open";*/
|
||||
/* disable-history: false;*/
|
||||
/* ignored-prefixes: "";*/
|
||||
sort: true;
|
||||
sorting-method: "fzf";
|
||||
/* case-sensitive: false;*/
|
||||
cycle: false;
|
||||
/* sidebar-mode: false;*/
|
||||
/* eh: 1;*/
|
||||
/* auto-select: false;*/
|
||||
/* parse-hosts: false;*/
|
||||
/* parse-known-hosts: true;*/
|
||||
/* combi-modi: "window,run";*/
|
||||
/* matching: "normal";*/
|
||||
/* tokenize: true;*/
|
||||
/* m: "-5";*/
|
||||
/* line-margin: 2;*/
|
||||
/* line-padding: 1;*/
|
||||
/* filter: ;*/
|
||||
/* separator-style: "dash";*/
|
||||
hide-scrollbar: true;
|
||||
/* fullscreen: false;*/
|
||||
/* fake-transparency: false;*/
|
||||
/* dpi: -1;*/
|
||||
/* threads: 0;*/
|
||||
/* scrollbar-width: 8;*/
|
||||
/* scroll-method: 0;*/
|
||||
/* fake-background: "screenshot";*/
|
||||
/* window-format: "{w} {c} {t}";*/
|
||||
/* click-to-exit: true;*/
|
||||
/* show-match: true;*/
|
||||
/* color-normal: ;*/
|
||||
/* color-urgent: ;*/
|
||||
/* color-active: ;*/
|
||||
/* color-window: ;*/
|
||||
/* max-history-size: 25;*/
|
||||
/* combi-hide-mode-prefix: false;*/
|
||||
/* matching-negate-char: '-' /* unsupported */;*/
|
||||
/* cache-dir: ;*/
|
||||
/* window-thumbnail: false;*/
|
||||
/* drun-use-desktop-cache: false;*/
|
||||
/* drun-reload-desktop-cache: false;*/
|
||||
/* pid: "/run/user/1000/rofi.pid";*/
|
||||
/* display-window: ;*/
|
||||
/* display-windowcd: ;*/
|
||||
/* display-run: ;*/
|
||||
/* display-ssh: ;*/
|
||||
/* display-drun: ;*/
|
||||
/* display-combi: ;*/
|
||||
/* display-keys: ;*/
|
||||
/* kb-primary-paste: "Control+V,Shift+Insert";*/
|
||||
/* kb-secondary-paste: "Control+v,Insert";*/
|
||||
/* kb-clear-line: "Control+w";*/
|
||||
/* kb-move-front: "Control+a";*/
|
||||
/* kb-move-end: "Control+e";*/
|
||||
/* kb-move-word-back: "Alt+b,Control+Left";*/
|
||||
/* kb-move-word-forward: "Alt+f,Control+Right";*/
|
||||
/* kb-move-char-back: "Left,Control+b";*/
|
||||
/* kb-move-char-forward: "Right,Control+f";*/
|
||||
/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
|
||||
/* kb-remove-word-forward: "Control+Alt+d";*/
|
||||
/* kb-remove-char-forward: "Delete,Control+d";*/
|
||||
/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
|
||||
/* kb-remove-to-eol: "Control+k";*/
|
||||
/* kb-remove-to-sol: "Control+u";*/
|
||||
/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
|
||||
/* kb-accept-custom: "Control+Return";*/
|
||||
/* kb-accept-alt: "Shift+Return";*/
|
||||
/* kb-delete-entry: "Shift+Delete";*/
|
||||
/* kb-mode-next: "Shift+Right,Control+Tab";*/
|
||||
/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
|
||||
/* kb-row-left: "Control+Page_Up";*/
|
||||
/* kb-row-right: "Control+Page_Down";*/
|
||||
/* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/
|
||||
/* kb-row-down: "Down,Control+n";*/
|
||||
/* kb-row-tab: "Tab";*/
|
||||
/* kb-page-prev: "Page_Up";*/
|
||||
/* kb-page-next: "Page_Down";*/
|
||||
/* kb-row-first: "Home,KP_Home";*/
|
||||
/* kb-row-last: "End,KP_End";*/
|
||||
/* kb-row-select: "Control+space";*/
|
||||
/* kb-screenshot: "Alt+S";*/
|
||||
/* kb-ellipsize: "Alt+period";*/
|
||||
/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
|
||||
/* kb-toggle-sort: "Alt+grave";*/
|
||||
/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
|
||||
/* kb-custom-1: "Alt+1";*/
|
||||
/* kb-custom-2: "Alt+2";*/
|
||||
/* kb-custom-3: "Alt+3";*/
|
||||
/* kb-custom-4: "Alt+4";*/
|
||||
/* kb-custom-5: "Alt+5";*/
|
||||
/* kb-custom-6: "Alt+6";*/
|
||||
/* kb-custom-7: "Alt+7";*/
|
||||
/* kb-custom-8: "Alt+8";*/
|
||||
/* kb-custom-9: "Alt+9";*/
|
||||
/* kb-custom-10: "Alt+0";*/
|
||||
/* kb-custom-11: "Alt+exclam";*/
|
||||
/* kb-custom-12: "Alt+at";*/
|
||||
/* kb-custom-13: "Alt+numbersign";*/
|
||||
/* kb-custom-14: "Alt+dollar";*/
|
||||
/* kb-custom-15: "Alt+percent";*/
|
||||
/* kb-custom-16: "Alt+dead_circumflex";*/
|
||||
/* kb-custom-17: "Alt+ampersand";*/
|
||||
/* kb-custom-18: "Alt+asterisk";*/
|
||||
/* kb-custom-19: "Alt+parenleft";*/
|
||||
/* kb-select-1: "Super+1";*/
|
||||
/* kb-select-2: "Super+2";*/
|
||||
/* kb-select-3: "Super+3";*/
|
||||
/* kb-select-4: "Super+4";*/
|
||||
/* kb-select-5: "Super+5";*/
|
||||
/* kb-select-6: "Super+6";*/
|
||||
/* kb-select-7: "Super+7";*/
|
||||
/* kb-select-8: "Super+8";*/
|
||||
/* kb-select-9: "Super+9";*/
|
||||
/* kb-select-10: "Super+0";*/
|
||||
/* ml-row-left: "ScrollLeft";*/
|
||||
/* ml-row-right: "ScrollRight";*/
|
||||
/* ml-row-up: "ScrollUp";*/
|
||||
/* ml-row-down: "ScrollDown";*/
|
||||
/* me-select-entry: "MousePrimary";*/
|
||||
/* me-accept-entry: "MouseDPrimary";*/
|
||||
/* me-accept-custom: "Control+MouseDPrimary";*/
|
||||
}
|
||||
|
||||
@theme "~/.config/rofi/rofi.rasi"
|
||||
Executable
+82
@@ -0,0 +1,82 @@
|
||||
#!/bin/python
|
||||
|
||||
# Creates a rofi menu to select the default audio output device
|
||||
#
|
||||
# Dependencies:
|
||||
# System: pacmd, pactl
|
||||
# pip: rofi-menu
|
||||
|
||||
import subprocess
|
||||
import re
|
||||
import rofi_menu
|
||||
|
||||
cmd_listsinks = ["pacmd", "list-sinks"]
|
||||
re_header = ".+index:.+[0-9]+$"
|
||||
re_productname = "device\.product\.name"
|
||||
re_sinkname = "name:"
|
||||
|
||||
|
||||
class Menu(rofi_menu.Menu):
|
||||
prompt = "Default output sink"
|
||||
items = []
|
||||
|
||||
def addSinks(self, sinks):
|
||||
for sink in sinks:
|
||||
if (sink.isOutput):
|
||||
self.items.append(rofi_menu.ShellItem(
|
||||
str(sink), "pacmd set-default-sink " + sink.index))
|
||||
|
||||
|
||||
class Sink:
|
||||
def __init__(self):
|
||||
self.index = -1
|
||||
self.name = "NULL"
|
||||
self.isDefault = False
|
||||
self.isOutput = False
|
||||
|
||||
def __repr__(self, showIndex=False):
|
||||
result = ("▸ " if (self.isDefault) else " ")
|
||||
if (showIndex):
|
||||
result += str(self.index) + ": "
|
||||
return result + self.name
|
||||
|
||||
|
||||
def fetchSinks(printEntries=False):
|
||||
sinks = []
|
||||
|
||||
info = str(subprocess.check_output(cmd_listsinks)
|
||||
).replace("\\t", "").split("\\n")
|
||||
|
||||
sink = None
|
||||
for line in info:
|
||||
# New sink entry
|
||||
if (re.match(re_header, line)):
|
||||
sink = Sink()
|
||||
sinks.append(sink)
|
||||
|
||||
headers = line.replace(" ", "").split(":")
|
||||
|
||||
sink.isDefault = headers[0].startswith('*')
|
||||
sink.index = headers[1]
|
||||
|
||||
if (sink == None):
|
||||
continue
|
||||
|
||||
if (re.match(re_productname, line)):
|
||||
sink.name = line.split("\"")[1]
|
||||
if (re.match(re_sinkname, line)):
|
||||
sink.isOutput = "alsa_output" in line
|
||||
|
||||
if (printEntries):
|
||||
print("Sinks:")
|
||||
for sink in sinks:
|
||||
if (sink.isOutput):
|
||||
print(sink, True)
|
||||
|
||||
return sinks
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
menu = Menu()
|
||||
menu.addSinks(fetchSinks())
|
||||
rofi_menu.run(menu, rofi_version="1.6")
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Run with menu name to display a rofi menu
|
||||
# Example: "sh launch.sh defaultsink"
|
||||
|
||||
rofi -modi menu:/home/sim/.config/rofi/menus/"$1".py -show menu
|
||||
Executable
+70
@@ -0,0 +1,70 @@
|
||||
#!/bin/python
|
||||
|
||||
# Creates a rofi menu to select the current screen layout
|
||||
#
|
||||
# Dependencies:
|
||||
# System: autorandr (with xrandr)
|
||||
|
||||
import subprocess
|
||||
import re
|
||||
import rofi_menu
|
||||
|
||||
class Menu(rofi_menu.Menu):
|
||||
prompt = "Display layout"
|
||||
items = []
|
||||
|
||||
def addEntries(self, entries):
|
||||
for entry in entries:
|
||||
if (entry.isVisible):
|
||||
self.items.append(rofi_menu.ShellItem(
|
||||
str(entry), "autorandr --load " + entry.name))
|
||||
|
||||
class Entry:
|
||||
def __init__(self):
|
||||
self.name = "NULL"
|
||||
self.isDefault = False
|
||||
self.isActive = False
|
||||
self.isVisible = True
|
||||
|
||||
def __repr__(self, showIndex=False):
|
||||
result = ("▸ " if (self.isActive) else " ")
|
||||
if (showIndex):
|
||||
result += str(self.index) + ": "
|
||||
return result + self.name
|
||||
|
||||
def fetchEntries(printEntries=False):
|
||||
entries = []
|
||||
entry = None
|
||||
|
||||
# fetch currently available config(s)
|
||||
detected = subprocess.check_output(["autorandr", "--detected"]).decode('utf-8').split("\n")[:-1]
|
||||
|
||||
for line in detected:
|
||||
# New entry
|
||||
entry = Entry()
|
||||
entries.append(entry)
|
||||
|
||||
entry.IsVisible = True
|
||||
entry.isActive = False
|
||||
entry.name = line
|
||||
|
||||
# fetch currently active config(s)
|
||||
current = subprocess.check_output(["autorandr", "--current"]).decode('utf-8').split("\n")[:-1]
|
||||
|
||||
for line in current:
|
||||
for detectedEntry in entries:
|
||||
if detectedEntry.name == line:
|
||||
detectedEntry.isActive = True
|
||||
|
||||
if (printEntries):
|
||||
print("Entries:")
|
||||
for entry in entries:
|
||||
print(entry)
|
||||
|
||||
return entries
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
menu = Menu()
|
||||
menu.addEntries(fetchEntries())
|
||||
rofi_menu.run(menu, rofi_version="1.6")
|
||||
@@ -0,0 +1,44 @@
|
||||
* {
|
||||
background-color:#3b4252;
|
||||
border: 0px;
|
||||
text-color:#d8dee9;
|
||||
spacing: 0;
|
||||
width: 512px;
|
||||
}
|
||||
|
||||
#window {
|
||||
border: 4px;
|
||||
border-color: #434c5e;
|
||||
background-color: #3b4252;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [prompt,entry];
|
||||
}
|
||||
|
||||
prompt {
|
||||
background-color: #434c5e;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
textbox {
|
||||
background-color: #434c5e;
|
||||
padding: 8px 16px;
|
||||
}
|
||||
|
||||
entry {
|
||||
background-color: #434c5e;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
listview {
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: #4c566a;
|
||||
text-color: #eceff4;
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
* {
|
||||
background-color:#3b4252;
|
||||
border: 0px;
|
||||
text-color:#d8dee9;
|
||||
spacing: 0;
|
||||
width: 512px;
|
||||
}
|
||||
|
||||
#window {
|
||||
border: 4px;
|
||||
border-color: #434c5e;
|
||||
background-color: #3b4252;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [prompt,entry];
|
||||
}
|
||||
|
||||
prompt {
|
||||
background-color: #434c5e;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
textbox {
|
||||
background-color: #434c5e;
|
||||
padding: 8px 16px;
|
||||
}
|
||||
|
||||
entry {
|
||||
background-color: #434c5e;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
listview {
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: #4c566a;
|
||||
text-color: #eceff4;
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
* {
|
||||
background-color:#3b4252;
|
||||
border: 0px;
|
||||
text-color:#d8dee9;
|
||||
spacing: 0;
|
||||
width: 512px;
|
||||
}
|
||||
|
||||
#window {
|
||||
border: 4px;
|
||||
border-color: #434c5e;
|
||||
background-color: #3b4252;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [prompt,entry];
|
||||
}
|
||||
|
||||
prompt {
|
||||
background-color: #434c5e;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
textbox {
|
||||
background-color: #434c5e;
|
||||
padding: 8px 16px;
|
||||
}
|
||||
|
||||
entry {
|
||||
background-color: #434c5e;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
listview {
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: #4c566a;
|
||||
text-color: #eceff4;
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
* {
|
||||
background-color:%color0%;
|
||||
border: 0px;
|
||||
text-color:%rofi_fgdim%;
|
||||
spacing: 0;
|
||||
width: 512px;
|
||||
}
|
||||
|
||||
#window {
|
||||
border: 4px;
|
||||
border-color: %rofi_border%;
|
||||
background-color: %color0%;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [prompt,entry];
|
||||
}
|
||||
|
||||
prompt {
|
||||
background-color: %rofi_border%;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
textbox {
|
||||
background-color: %rofi_border%;
|
||||
padding: 8px 16px;
|
||||
}
|
||||
|
||||
entry {
|
||||
background-color: %rofi_border%;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
listview {
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: %rofi_selected%;
|
||||
text-color: %foreground%;
|
||||
}
|
||||
@@ -1,12 +1,11 @@
|
||||
[Setting]
|
||||
spotify_path = /opt/spotify
|
||||
prefs_path = /home/sim/.config/spotify/prefs
|
||||
current_theme = SpicetifyDefault
|
||||
color_scheme =
|
||||
inject_css = 1
|
||||
replace_colors = 1
|
||||
overwrite_assets = 0
|
||||
spotify_path = /opt/spotify
|
||||
prefs_path = /home/sim/.config/spotify/prefs
|
||||
current_theme = Thinkpad
|
||||
; current_theme = darkblue
|
||||
color_scheme =
|
||||
|
||||
[Preprocesses]
|
||||
disable_sentry = 1
|
||||
@@ -15,21 +14,21 @@ remove_rtl_rule = 1
|
||||
expose_apis = 1
|
||||
|
||||
[AdditionalOptions]
|
||||
made_for_you_hub = 0
|
||||
new_feedback_ui = 0
|
||||
custom_apps =
|
||||
experimental_features = 0
|
||||
fastUser_switching = 0
|
||||
home = 0
|
||||
lyric_always_show = 1
|
||||
song_page = 0
|
||||
visualization_high_framerate = 0
|
||||
extensions =
|
||||
lyric_force_no_sync = 0
|
||||
minimal_ui = 0
|
||||
radio = 0
|
||||
search_in_sidebar = 0
|
||||
song_page = 0
|
||||
minimal_ui = 0
|
||||
custom_apps =
|
||||
fastUser_switching = 0
|
||||
lyric_force_no_sync = 0
|
||||
made_for_you_hub = 0
|
||||
home = 0
|
||||
lyric_always_show = 0
|
||||
new_feedback_ui = 0
|
||||
tastebuds = 0
|
||||
extensions =
|
||||
|
||||
; DO NOT CHANGE!
|
||||
[Backup]
|
||||
@@ -0,0 +1,39 @@
|
||||
[Setting]
|
||||
spotify_path = /opt/spotify
|
||||
prefs_path = /home/sim/.config/spotify/prefs
|
||||
current_theme = spicetify-nord
|
||||
color_scheme =
|
||||
inject_css = 1
|
||||
replace_colors = 1
|
||||
overwrite_assets = 0
|
||||
spotify_launch_flags =
|
||||
check_spicetify_upgrade = 0
|
||||
|
||||
[Preprocesses]
|
||||
disable_sentry = 1
|
||||
disable_ui_logging = 1
|
||||
remove_rtl_rule = 1
|
||||
expose_apis = 1
|
||||
disable_upgrade_check = 1
|
||||
|
||||
[AdditionalOptions]
|
||||
experimental_features = 0
|
||||
song_page = 0
|
||||
visualization_high_framerate = 0
|
||||
minimal_ui = 0
|
||||
radio = 0
|
||||
search_in_sidebar = 0
|
||||
custom_apps =
|
||||
fastUser_switching = 0
|
||||
lyric_force_no_sync = 0
|
||||
made_for_you_hub = 0
|
||||
home = 0
|
||||
lyric_always_show = 0
|
||||
new_feedback_ui = 0
|
||||
tastebuds = 0
|
||||
extensions =
|
||||
|
||||
; DO NOT CHANGE!
|
||||
[Backup]
|
||||
version = 1.1.42.622.gbd112320
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
[Setting]
|
||||
inject_css = 1
|
||||
replace_colors = 1
|
||||
overwrite_assets = 1
|
||||
spotify_path = /opt/spotify
|
||||
prefs_path = /home/sim/.config/spotify/prefs
|
||||
current_theme = Night-Owl
|
||||
; current_theme = Thinkpad
|
||||
; current_theme = darkblue
|
||||
color_scheme = nord-dark
|
||||
spotify_launch_flags =
|
||||
check_spicetify_upgrade = 0
|
||||
|
||||
[Preprocesses]
|
||||
disable_sentry = 1
|
||||
disable_ui_logging = 1
|
||||
remove_rtl_rule = 1
|
||||
expose_apis = 1
|
||||
disable_upgrade_check = 1
|
||||
|
||||
[AdditionalOptions]
|
||||
made_for_you_hub = 0
|
||||
new_feedback_ui = 0
|
||||
custom_apps =
|
||||
experimental_features = 0
|
||||
fastUser_switching = 0
|
||||
home = 0
|
||||
lyric_always_show = 1
|
||||
visualization_high_framerate = 0
|
||||
extensions =
|
||||
lyric_force_no_sync = 0
|
||||
radio = 0
|
||||
search_in_sidebar = 0
|
||||
song_page = 0
|
||||
minimal_ui = 0
|
||||
tastebuds = 0
|
||||
|
||||
; DO NOT CHANGE!
|
||||
[Backup]
|
||||
version = 1.1.10.546.ge08ef575
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
#cc2929
|
||||
@@ -1,73 +0,0 @@
|
||||
#Refresh rate of the visualizers. A really high refresh rate may cause screen tearing. Default is 20.
|
||||
visualizer.fps=50
|
||||
|
||||
#Defaults to "/tmp/mpd.fifo"
|
||||
mpd.fifo.path
|
||||
|
||||
#If set to false the visualizers will use mono mode instead of stereo. Some visualizers will
|
||||
#behave differently when mono is enabled. For example, spectrum show two sets of bars.
|
||||
audio.stereo.enabled=true
|
||||
|
||||
#Specifies how often the visualizer will change in seconds. 0 means do not rotate. Default is 0.
|
||||
#visualizer.rotation.secs=10
|
||||
|
||||
#Configures the samples rate and the cutoff frequencies.
|
||||
audio.sampling.frequency=44100
|
||||
audio.low.cutoff.frequency=30
|
||||
audio.high.cutoff.frequency=22050
|
||||
|
||||
#Configures the visualizers and the order they are in. Available visualizers are spectrum,lorenz,ellipse.
|
||||
#Defaults to spectrum,ellipse,lorenz
|
||||
visualizers=spectrum
|
||||
|
||||
#Configures what character the spectrum visualizer will use. Specifying a space (e.g " ") means the
|
||||
#background will be colored instead of the character. Defaults to " ".
|
||||
#visualizer.spectrum.character=#
|
||||
|
||||
#Spectrum bar width. Defaults to 1.
|
||||
visualizer.spectrum.bar.width=3
|
||||
|
||||
#The amount of space between each bar in the spectrum visualizer. Defaults to 1. It's possible to set this to
|
||||
#zero to have no space between bars
|
||||
visualizer.spectrum.bar.spacing=1
|
||||
|
||||
#Available smoothing options are monstercat, sgs, none. Defaults to sgs.
|
||||
visualizer.spectrum.smoothing.mode=monstercat
|
||||
|
||||
#This configures the falloff effect on the spectrum visualizer. Available falloff options are fill,top,none.
|
||||
#Defaults to "fill"
|
||||
visualizer.spectrum.falloff.mode=fill
|
||||
|
||||
#Configures how fast the falloff character falls. This is an exponential falloff so values usually look
|
||||
#best 0.9+ and small changes in this value can have a large effect. Defaults to 0.95
|
||||
visualizer.spectrum.falloff.weight=0.95
|
||||
|
||||
#Margins in percent of total screen for spectrum visualizer. All margins default to 0
|
||||
visualizer.spectrum.top.margin=0.0
|
||||
visualizer.spectrum.bottom.margin=0.0
|
||||
visualizer.spectrum.right.margin=0.0
|
||||
visualizer.spectrum.left.margin=0.0
|
||||
|
||||
#Reverses the direction of the spectrum so that high freqs are first and low freqs last. Defaults to false.
|
||||
visualizer.spectrum.reversed=false
|
||||
|
||||
#Sets the audio sources to use. Currently available ones are "mpd" and "alsa"Sets the audio sources to use.
|
||||
#Currently available ones are "mpd", "pulse", and "alsa". Defaults to "mpd".
|
||||
audio.sources=pulse
|
||||
|
||||
##vis tries to find the correct pulseaudio sink, however this will not work on all systems.
|
||||
#If pulse audio is not working with vis try switching the audio source. A list can be found by running the
|
||||
#command pacmd list-sinks | grep -e 'name:' -e 'index'
|
||||
audio.pulse.source=0
|
||||
|
||||
#This configures the sgs smoothing effect on the spectrum visualizer. More points spreads out the smoothing
|
||||
#effect and increasing passes runs the smoother multiple times on reach run. Defaults are points=3 and passes=2.
|
||||
visualizer.sgs.smoothing.points=3
|
||||
visualizer.sgs.smoothing.passes=2
|
||||
|
||||
## Turns off overriding the user's terminal colors
|
||||
colors.override.terminal=false
|
||||
|
||||
#Specifies the color scheme. The color scheme must be in ~/.config/vis/colors/ directory. Default is "colors"
|
||||
colors.scheme=thinkpad
|
||||
|
||||
@@ -1,9 +1,17 @@
|
||||
alias sudo='sudo '
|
||||
|
||||
##### Path
|
||||
|
||||
# dotnet
|
||||
export PATH="$PATH:/home/sim/.dotnet/tools"
|
||||
|
||||
##### Device Specific
|
||||
|
||||
### Yoga3
|
||||
|
||||
# Hardware
|
||||
alias bat="upower -i /org/freedesktop/UPower/devices/battery_BAT0"
|
||||
|
||||
# xampp
|
||||
alias xampp="sudo /opt/lampp/manager-linux-x64.run"
|
||||
|
||||
@@ -14,15 +22,18 @@ alias tlpauto="sudo tlp start"
|
||||
|
||||
##### Global
|
||||
|
||||
# File Size
|
||||
alias size="du -sh "
|
||||
alias sizer="du -ch "
|
||||
|
||||
# Scripts
|
||||
alias scradj="zsh ~/Scripts/scradjust2.sh"
|
||||
alias repulse="sh ~/Userdata/Scripts/Launchers/restart_pulseaudio_1s.sh"
|
||||
|
||||
# help
|
||||
alias hquiet="echo '>/dev/null 2>&1' or use QUIET var"
|
||||
alias hpath="echo use PWD variable"
|
||||
|
||||
# window information
|
||||
alias winfo="xprop |awk '/WM_CLASS/{print $4}'"
|
||||
alias hxclip="echo 'cat ... | xclip -se c'"
|
||||
|
||||
# xdotool
|
||||
alias CAPS="xdotool key Caps_Lock"
|
||||
@@ -31,13 +42,14 @@ alias caps="xdotool key Caps_Lock"
|
||||
# arp-scan
|
||||
alias arps="sudo arp-scan -l"
|
||||
|
||||
# caffeinate
|
||||
# Caffeinate
|
||||
alias coffeeinf="caffeinate sleep infinity"
|
||||
alias coffee="caffeinate sleep"
|
||||
|
||||
# polybar
|
||||
alias killpoly="killall polybar"
|
||||
alias polybar="setsid polybar"
|
||||
alias repoly="zsh ~/.config/polybar/launch_polybar.sh"
|
||||
alias repoly="zsh ~/.config/polybar/launch.sh"
|
||||
|
||||
# nano
|
||||
alias nano="nano -c"
|
||||
@@ -54,34 +66,71 @@ alias ap="sudo -b create_ap-gui"
|
||||
alias clock="setsid urxvt -hold -e zsh -e ~/scripts/clock.sh"
|
||||
alias clockx="setsid urxvt -hold -e zsh -e ~/scripts/clock.sh && exit"
|
||||
|
||||
# light-locker
|
||||
alias caffeine="watch -n 1 light-locker-command -p"
|
||||
|
||||
# steam
|
||||
## start steam without access to hidraw so that the nintendo switch pro controller can be used
|
||||
alias steam-ns="screen -d -m firejail --noprofile --blacklist=/sys/class/hidraw/ steam"
|
||||
|
||||
# fun stuff
|
||||
alias pipes="pipes -r 50000"
|
||||
alias worms="pipes -p 10 -r 50 -R"
|
||||
|
||||
# General
|
||||
# alacritty
|
||||
alias newterm="setsid alacritty"
|
||||
|
||||
# general
|
||||
alias cls=clear
|
||||
alias pls=sudo
|
||||
alias ll="ls -lh"
|
||||
alias lla="ls -lah"
|
||||
alias blank="echo"
|
||||
alias x=exit
|
||||
alias sctl="systemctl"
|
||||
alias ssctl="sudo sctl"
|
||||
|
||||
# use like "fhistory 'cd ..' "
|
||||
alias fhistory="history | grep"
|
||||
|
||||
# ssh
|
||||
alias sssh="screen ssh"
|
||||
|
||||
# yadm
|
||||
alias confd="yadm pull; sleep 1; yadm submodule update --recursive"
|
||||
alias confu="yadm commit -am"
|
||||
alias confup="yadm push"
|
||||
|
||||
# yay
|
||||
alias yayi="yay -Q | grep"
|
||||
alias yays="yay -S --sudoloop --noconfirm"
|
||||
alias yayi="yay -Qi"
|
||||
alias yayis="yay -Qs"
|
||||
alias yaye="yay --editmenu -S"
|
||||
alias yays="yay -Sy --sudoloop --noconfirm"
|
||||
alias yayc="yay -Sc --noconfirm"
|
||||
alias yayr="yay -Rs" # Remove package and dependencies
|
||||
alias yayrc="yay -Rsc" # Remove package and dependencies, clean up afterwards
|
||||
alias yayrd="yay -Rdd --noconfirm" # Remove package but not the dependencies
|
||||
alias yayu="yay -Syu --sudoloop"
|
||||
alias yayu="yay -Syu --sudoloop --combinedupgrade --batchinstall --save"
|
||||
alias orphanr="echo 'USE CMD: sudo pacman -Rns S(pacman -Qtdq)'"
|
||||
alias yayinfo="yay -Si "
|
||||
|
||||
# cleanup
|
||||
alias cachec="echo 'Clearing cache...' && sudo chown -R ${USER} ~/.cache && rm -rf ~/.cache"
|
||||
alias trashc="echo 'Clearing trash...' && trash-empty"
|
||||
alias cleanup="cachec && blank && trashc && blank && yayc && blank && orphanr"
|
||||
|
||||
# libvirt
|
||||
alias win1030="sudo virsh start Windows10_1030"
|
||||
alias win1660="sudo virsh start Windows10_1660"
|
||||
|
||||
# init
|
||||
|
||||
alias nvminit="source /usr/share/nvm/init-nvm.sh"
|
||||
|
||||
##### FH
|
||||
# Shortcut for cd-ing to the FH dir
|
||||
alias cdfh="cd '$NOTEBOOK_DIR/SRC'"
|
||||
# Shortcut for starting the SWO3 dev environment
|
||||
alias swo3build="sudo docker run -it --rm -v \"$(pwd)\":/home/swo3 swo3"
|
||||
# Noteconv
|
||||
alias noteconv="cd '$NOTEBOOK_DIR/SRC' && python convert.py"
|
||||
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
.~lock.*#
|
||||
|
||||
# Logs
|
||||
*.log
|
||||
|
||||
# Vim
|
||||
Session.vim
|
||||
|
||||
# Backup
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
.*.sw*
|
||||
|
||||
# Python
|
||||
*.pyc
|
||||
|
||||
# Archives
|
||||
*.7z
|
||||
*.jar
|
||||
*.rar
|
||||
*.zip
|
||||
*.tgz
|
||||
*.gz
|
||||
*.bzip
|
||||
*.xz
|
||||
*.lzma
|
||||
*.iso
|
||||
*.tar
|
||||
*.dmg
|
||||
*.xpi
|
||||
*.gem
|
||||
*.egg
|
||||
*.deb
|
||||
*.rpm
|
||||
|
||||
# LaTeX
|
||||
*.aux
|
||||
*.bbl
|
||||
*.blg
|
||||
*.dvi
|
||||
*.fdb_latexmk
|
||||
*.glg
|
||||
*.glo
|
||||
*.gls
|
||||
*.idx
|
||||
*.ilg
|
||||
*.ind
|
||||
*.ist
|
||||
*.lof
|
||||
*.log
|
||||
*.lot
|
||||
*.nav
|
||||
*.nlo
|
||||
*.out
|
||||
*.pdfsync
|
||||
*.ps
|
||||
*.snm
|
||||
*.spl
|
||||
*.synctex.gz
|
||||
*.toc
|
||||
*.vrb
|
||||
*.maf
|
||||
*.mtc
|
||||
*.mtc0
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
[submodule "Userdata/Scripts"]
|
||||
path = Userdata/Scripts
|
||||
[submodule "/home/sim/Userdata/Scripts"]
|
||||
path = /home/sim/Userdata/Scripts
|
||||
url = git@gitlab.com:h45h74x/h45-scripts.git
|
||||
|
||||
-1
Submodule .oh-my-zsh deleted from 9524db7398
Executable
+10
@@ -0,0 +1,10 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
|
||||
[*.sh]
|
||||
indent_size = 4
|
||||
indent_style = tab
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
# custom files
|
||||
custom/
|
||||
|
||||
# temp files directories
|
||||
cache/
|
||||
log/
|
||||
Executable
+76
@@ -0,0 +1,76 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
||||
level of experience, education, socio-economic status, nationality, personal
|
||||
appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all project spaces, and it also applies when
|
||||
an individual is representing the project or its community in public spaces.
|
||||
Examples of representing a project or community include using an official
|
||||
project e-mail address, posting via an official social media account, or acting
|
||||
as an appointed representative at an online or offline event. Representation of
|
||||
a project may be further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team at ohmyzsh@planetargon.com. All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see
|
||||
https://www.contributor-covenant.org/faq
|
||||
Executable
+125
@@ -0,0 +1,125 @@
|
||||
# CONTRIBUTING GUIDELINES
|
||||
|
||||
Oh-My-Zsh is a community-driven project. Contribution is welcome, encouraged, and appreciated.
|
||||
It is also essential for the development of the project.
|
||||
|
||||
First, please take a moment to review our [code of conduct](CODE_OF_CONDUCT.md).
|
||||
|
||||
These guidelines are an attempt at better addressing the huge amount of pending
|
||||
issues and pull requests. Please read them closely.
|
||||
|
||||
Foremost, be so kind as to [search](#use-the-search-luke). This ensures any contribution
|
||||
you would make is not already covered.
|
||||
|
||||
* [Issues](#reporting-issues)
|
||||
* [You have a problem](#you-have-a-problem)
|
||||
* [You have a suggestion](#you-have-a-suggestion)
|
||||
* [Pull Requests](#submitting-pull-requests)
|
||||
* [Getting started](#getting-started)
|
||||
* [You have a solution](#you-have-a-solution)
|
||||
* [You have an addition](#you-have-an-addition)
|
||||
* [Information sources (_aka_ search)](#use-the-search-luke)
|
||||
|
||||
**BONUS:** [Volunteering](#you-have-spare-time-to-volunteer)
|
||||
|
||||
## Reporting Issues
|
||||
|
||||
### You have a problem
|
||||
|
||||
Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
|
||||
your problem.
|
||||
|
||||
If you find one, comment on it so we can know there are more people experiencing it.
|
||||
|
||||
If not, look at the [Troubleshooting](https://github.com/robbyrussell/oh-my-zsh/wiki/Troubleshooting)
|
||||
page for instructions on how to gather data to better debug your problem.
|
||||
|
||||
Then, you can go ahead and create an issue with as much detail as you can provide.
|
||||
It should include the data gathered as indicated above, along with:
|
||||
|
||||
1. How to reproduce the problem
|
||||
2. What the correct behavior should be
|
||||
3. What the actual behavior is
|
||||
|
||||
Please copy to anyone relevant (_eg_ plugin maintainers) by mentioning their GitHub handle
|
||||
(starting with `@`) in your message.
|
||||
|
||||
We will do our very best to help you.
|
||||
|
||||
### You have a suggestion
|
||||
|
||||
Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
|
||||
your suggestion.
|
||||
|
||||
If you find one, comment on it so we can know there are more people supporting it.
|
||||
|
||||
If not, you can go ahead and create an issue. Please copy to anyone relevant (_eg_ plugin
|
||||
maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
|
||||
|
||||
## Submitting Pull Requests
|
||||
|
||||
### Getting started
|
||||
|
||||
You should be familiar with the basics of
|
||||
[contributing on GitHub](https://help.github.com/articles/using-pull-requests) and have a fork
|
||||
[properly set up](https://github.com/robbyrussell/oh-my-zsh/wiki/Contribution-Technical-Practices).
|
||||
|
||||
You MUST always create PRs with _a dedicated branch_ based on the latest upstream tree.
|
||||
|
||||
If you create your own PR, please make sure you do it right. Also be so kind as to reference
|
||||
any issue that would be solved in the PR description body,
|
||||
[for instance](https://help.github.com/articles/closing-issues-via-commit-messages/)
|
||||
_"Fixes #XXXX"_ for issue number XXXX.
|
||||
|
||||
### You have a solution
|
||||
|
||||
Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
|
||||
your [problem](#you-have-a-problem), and any pending/merged/rejected PR covering your solution.
|
||||
|
||||
If the solution is already reported, try it out and +1 the pull request if the
|
||||
solution works ok. On the other hand, if you think your solution is better, post
|
||||
it with a reference to the other one so we can have both solutions to compare.
|
||||
|
||||
If not, then go ahead and submit a PR. Please copy to anyone relevant (e.g. plugin
|
||||
maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
|
||||
|
||||
### You have an addition
|
||||
|
||||
Please [do not](https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#dont-send-us-your-theme-for-now)
|
||||
send themes for now.
|
||||
|
||||
Please be so kind as to [search](#use-the-search-luke) for any pending, merged or rejected Pull Requests
|
||||
covering or related to what you want to add.
|
||||
|
||||
If you find one, try it out and work with the author on a common solution.
|
||||
|
||||
If not, then go ahead and submit a PR. Please copy to anyone relevant (_eg_ plugin
|
||||
maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
|
||||
|
||||
For any extensive change, _eg_ a new plugin, you will have to find testers to +1 your PR.
|
||||
|
||||
----
|
||||
|
||||
## Use the Search, Luke
|
||||
|
||||
_May the Force (of past experiences) be with you_
|
||||
|
||||
GitHub offers [many search features](https://help.github.com/articles/searching-github/)
|
||||
to help you check whether a similar contribution to yours already exists. Please search
|
||||
before making any contribution, it avoids duplicates and eases maintenance. Trust me,
|
||||
that works 90% of the time.
|
||||
|
||||
You can also take a look at the [FAQ](https://github.com/robbyrussell/oh-my-zsh/wiki/FAQ)
|
||||
to be sure your contribution has not already come up.
|
||||
|
||||
If all fails, your thing has probably not been reported yet, so you can go ahead
|
||||
and [create an issue](#reporting-issues) or [submit a PR](#submitting-pull-requests).
|
||||
|
||||
----
|
||||
|
||||
### You have spare time to volunteer
|
||||
|
||||
Very nice!! :)
|
||||
|
||||
Please have a look at the [Volunteer](https://github.com/robbyrussell/oh-my-zsh/wiki/Volunteers)
|
||||
page for instructions on where to start and more.
|
||||
Executable
+22
@@ -0,0 +1,22 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2009-2019 Robby Russell and contributors
|
||||
See the full list at https://github.com/robbyrussell/oh-my-zsh/contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
Executable
+308
@@ -0,0 +1,308 @@
|
||||
<p align="center">
|
||||
<img src="https://s3.amazonaws.com/ohmyzsh/oh-my-zsh-logo.png" alt="Oh My Zsh">
|
||||
</p>
|
||||
|
||||
Oh My Zsh is an open source, community-driven framework for managing your [zsh](https://www.zsh.org/) configuration.
|
||||
|
||||
Sounds boring. Let's try again.
|
||||
|
||||
__Oh My Zsh will not make you a 10x developer...but you may feel like one.__
|
||||
|
||||
Once installed, your terminal shell will become the talk of the town _or your money back!_ With each keystroke in your command prompt, you'll take advantage of the hundreds of powerful plugins and beautiful themes. Strangers will come up to you in cafés and ask you, _"that is amazing! are you some sort of genius?"_
|
||||
|
||||
Finally, you'll begin to get the sort of attention that you have always felt you deserved. ...or maybe you'll use the time that you're saving to start flossing more often. 😬
|
||||
|
||||
To learn more, visit [ohmyz.sh](https://ohmyz.sh) and follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter.
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Prerequisites
|
||||
|
||||
__Disclaimer:__ _Oh My Zsh works best on macOS and Linux._
|
||||
|
||||
* Unix-like operating system (macOS or Linux)
|
||||
* [Zsh](https://www.zsh.org) should be installed (v4.3.9 or more recent). If not pre-installed (`zsh --version` to confirm), check the following instruction here: [Installing ZSH](https://github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH)
|
||||
* `curl` or `wget` should be installed
|
||||
* `git` should be installed
|
||||
|
||||
### Basic Installation
|
||||
|
||||
Oh My Zsh is installed by running one of the following commands in your terminal. You can install this via the command-line with either `curl` or `wget`.
|
||||
|
||||
#### via curl
|
||||
|
||||
```shell
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
|
||||
```
|
||||
|
||||
#### via wget
|
||||
|
||||
```shell
|
||||
sh -c "$(wget -O- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
|
||||
```
|
||||
|
||||
#### Manual inspection
|
||||
|
||||
It's a good idea to inspect the install script from projects you don't yet know. You can do
|
||||
that by downloading the install script first, looking through it so everything looks normal,
|
||||
then running it:
|
||||
|
||||
```shell
|
||||
curl -Lo install.sh https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh
|
||||
sh install.sh
|
||||
```
|
||||
|
||||
## Using Oh My Zsh
|
||||
|
||||
### Plugins
|
||||
|
||||
Oh My Zsh comes with a shitload of plugins to take advantage of. You can take a look in the [plugins](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins) directory and/or the [wiki](https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins) to see what's currently available.
|
||||
|
||||
#### Enabling Plugins
|
||||
|
||||
Once you spot a plugin (or several) that you'd like to use with Oh My Zsh, you'll need to enable them in the `.zshrc` file. You'll find the zshrc file in your `$HOME` directory. Open it with your favorite text editor and you'll see a spot to list all the plugins you want to load.
|
||||
|
||||
```shell
|
||||
vi ~/.zshrc
|
||||
```
|
||||
|
||||
For example, this might begin to look like this:
|
||||
|
||||
```shell
|
||||
plugins=(
|
||||
git
|
||||
bundler
|
||||
dotenv
|
||||
osx
|
||||
rake
|
||||
rbenv
|
||||
ruby
|
||||
)
|
||||
```
|
||||
|
||||
_Note that the plugins are separated by whitespace. **Do not** use commas between them._
|
||||
|
||||
#### Using Plugins
|
||||
|
||||
Most plugins (should! we're working on this) include a __README__, which documents how to use them.
|
||||
|
||||
### Themes
|
||||
|
||||
We'll admit it. Early in the Oh My Zsh world, we may have gotten a bit too theme happy. We have over one hundred themes now bundled. Most of them have [screenshots](https://github.com/robbyrussell/oh-my-zsh/wiki/Themes) on the wiki. Check them out!
|
||||
|
||||
#### Selecting a Theme
|
||||
|
||||
_Robby's theme is the default one. It's not the fanciest one. It's not the simplest one. It's just the right one (for him)._
|
||||
|
||||
Once you find a theme that you'd like to use, you will need to edit the `~/.zshrc` file. You'll see an environment variable (all caps) in there that looks like:
|
||||
|
||||
```shell
|
||||
ZSH_THEME="robbyrussell"
|
||||
```
|
||||
|
||||
To use a different theme, simply change the value to match the name of your desired theme. For example:
|
||||
|
||||
```shell
|
||||
ZSH_THEME="agnoster" # (this is one of the fancy ones)
|
||||
# see https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#agnoster
|
||||
```
|
||||
|
||||
_Note: many themes require installing the [Powerline Fonts](https://github.com/powerline/fonts) in order to render properly._
|
||||
|
||||
Open up a new terminal window and your prompt should look something like this:
|
||||
|
||||

|
||||
|
||||
In case you did not find a suitable theme for your needs, please have a look at the wiki for [more of them](https://github.com/robbyrussell/oh-my-zsh/wiki/External-themes).
|
||||
|
||||
If you're feeling feisty, you can let the computer select one randomly for you each time you open a new terminal window.
|
||||
|
||||
|
||||
```shell
|
||||
ZSH_THEME="random" # (...please let it be pie... please be some pie..)
|
||||
```
|
||||
|
||||
And if you want to pick random theme from a list of your favorite themes:
|
||||
|
||||
```shell
|
||||
ZSH_THEME_RANDOM_CANDIDATES=(
|
||||
"robbyrussell"
|
||||
"agnoster"
|
||||
)
|
||||
```
|
||||
|
||||
## Advanced Topics
|
||||
|
||||
If you're the type that likes to get their hands dirty, these sections might resonate.
|
||||
|
||||
### Advanced Installation
|
||||
|
||||
Some users may want to manually install Oh My Zsh, or change the default path or other settings that
|
||||
the installer accepts (these settings are also documented at the top of the install script).
|
||||
|
||||
#### Custom Directory
|
||||
|
||||
The default location is `~/.oh-my-zsh` (hidden in your home directory)
|
||||
|
||||
If you'd like to change the install directory with the `ZSH` environment variable, either by running
|
||||
`export ZSH=/your/path` before installing, or by setting it before the end of the install pipeline
|
||||
like this:
|
||||
|
||||
```shell
|
||||
ZSH="$HOME/.dotfiles/oh-my-zsh" sh install.sh
|
||||
```
|
||||
|
||||
#### Unattended install
|
||||
|
||||
If you're running the Oh My Zsh install script as part of an automated install, you can pass the
|
||||
flag `--unattended` to the `install.sh` script. This will have the effect of not trying to change
|
||||
the default shell, and also won't run `zsh` when the installation has finished.
|
||||
|
||||
```shell
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" "" --unattended
|
||||
```
|
||||
|
||||
#### Installing from a forked repository
|
||||
|
||||
The install script also accepts these variables to allow installation of a different repository:
|
||||
|
||||
- `REPO` (default: `robbyrussell/oh-my-zsh`): this takes the form of `owner/repository`. If you set
|
||||
this variable, the installer will look for a repository at `https://github.com/{owner}/{repository}`.
|
||||
|
||||
- `REMOTE` (default: `https://github.com/${REPO}.git`): this is the full URL of the git repository
|
||||
clone. You can use this setting if you want to install from a fork that is not on GitHub (GitLab,
|
||||
Bitbucket...) or if you want to clone with SSH instead of HTTPS (`git@github.com:user/project.git`).
|
||||
|
||||
_NOTE: it's incompatible with setting the `REPO` variable. This setting will take precedence._
|
||||
|
||||
- `BRANCH` (default: `master`): you can use this setting if you want to change the default branch to be
|
||||
checked out when cloning the repository. This might be useful for testing a Pull Request, or if you
|
||||
want to use a branch other than `master`.
|
||||
|
||||
For example:
|
||||
|
||||
```shell
|
||||
REPO=apjanke/oh-my-zsh BRANCH=edge sh install.sh
|
||||
```
|
||||
|
||||
#### Manual Installation
|
||||
|
||||
##### 1. Clone the repository:
|
||||
|
||||
```shell
|
||||
git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
|
||||
```
|
||||
|
||||
##### 2. *Optionally*, backup your existing `~/.zshrc` file:
|
||||
|
||||
```shell
|
||||
cp ~/.zshrc ~/.zshrc.orig
|
||||
```
|
||||
|
||||
##### 3. Create a new zsh configuration file
|
||||
|
||||
You can create a new zsh config file by copying the template that we have included for you.
|
||||
|
||||
```shell
|
||||
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
|
||||
```
|
||||
|
||||
##### 4. Change your default shell
|
||||
|
||||
```shell
|
||||
chsh -s $(which zsh)
|
||||
```
|
||||
|
||||
You must log out from your user session and log back in to see this change.
|
||||
|
||||
##### 5. Initialize your new zsh configuration
|
||||
|
||||
Once you open up a new terminal window, it should load zsh with Oh My Zsh's configuration.
|
||||
|
||||
### Installation Problems
|
||||
|
||||
If you have any hiccups installing, here are a few common fixes.
|
||||
|
||||
* You _might_ need to modify your `PATH` in `~/.zshrc` if you're not able to find some commands after
|
||||
switching to `oh-my-zsh`.
|
||||
* If you installed manually or changed the install location, check the `ZSH` environment variable in
|
||||
`~/.zshrc`.
|
||||
|
||||
### Custom Plugins and Themes
|
||||
|
||||
If you want to override any of the default behaviors, just add a new file (ending in `.zsh`) in the `custom/` directory.
|
||||
|
||||
If you have many functions that go well together, you can put them as a `XYZ.plugin.zsh` file in the `custom/plugins/` directory and then enable this plugin.
|
||||
|
||||
If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the same name in the `custom/plugins/` directory and it will be loaded instead of the one in `plugins/`.
|
||||
|
||||
## Getting Updates
|
||||
|
||||
By default, you will be prompted to check for upgrades every few weeks. If you would like `oh-my-zsh` to automatically upgrade itself without prompting you, set the following in your `~/.zshrc`:
|
||||
|
||||
```shell
|
||||
DISABLE_UPDATE_PROMPT=true
|
||||
```
|
||||
|
||||
To disable automatic upgrades, set the following in your `~/.zshrc`:
|
||||
|
||||
```shell
|
||||
DISABLE_AUTO_UPDATE=true
|
||||
```
|
||||
|
||||
### Manual Updates
|
||||
|
||||
If you'd like to upgrade at any point in time (maybe someone just released a new plugin and you don't want to wait a week?) you just need to run:
|
||||
|
||||
```shell
|
||||
upgrade_oh_my_zsh
|
||||
```
|
||||
|
||||
Magic! 🎉
|
||||
|
||||
## Uninstalling Oh My Zsh
|
||||
|
||||
Oh My Zsh isn't for everyone. We'll miss you, but we want to make this an easy breakup.
|
||||
|
||||
If you want to uninstall `oh-my-zsh`, just run `uninstall_oh_my_zsh` from the command-line. It will remove itself and revert your previous `bash` or `zsh` configuration.
|
||||
|
||||
## How do I contribute to Oh My Zsh?
|
||||
|
||||
Before you participate in our delightful community, please read the [code of conduct](CODE_OF_CONDUCT.md).
|
||||
|
||||
I'm far from being a [Zsh](https://www.zsh.org/) expert and suspect there are many ways to improve – if you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests!
|
||||
|
||||
We also need people to test out pull-requests. So take a look through [the open issues](https://github.com/robbyrussell/oh-my-zsh/issues) and help where you can.
|
||||
|
||||
See [Contributing](CONTRIBUTING.md) for more details.
|
||||
|
||||
### Do NOT send us themes
|
||||
|
||||
We have (more than) enough themes for the time being. Please add your theme to the [external themes](https://github.com/robbyrussell/oh-my-zsh/wiki/External-themes) wiki page.
|
||||
|
||||
## Contributors
|
||||
|
||||
Oh My Zsh has a vibrant community of happy users and delightful contributors. Without all the time and help from our contributors, it wouldn't be so awesome.
|
||||
|
||||
Thank you so much!
|
||||
|
||||
## Follow Us
|
||||
|
||||
We're on the social media.
|
||||
|
||||
* [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter. You should follow it.
|
||||
* [Oh My Zsh](https://www.facebook.com/Oh-My-Zsh-296616263819290/) on Facebook.
|
||||
|
||||
## Merchandise
|
||||
|
||||
We have [stickers, shirts, and coffee mugs available](https://shop.planetargon.com/collections/oh-my-zsh?utm_source=github) for you to show off your love of Oh My Zsh. Again, you will become the talk of the town!
|
||||
|
||||
## License
|
||||
|
||||
Oh My Zsh is released under the [MIT license](LICENSE.txt).
|
||||
|
||||
## About Planet Argon
|
||||
|
||||

|
||||
|
||||
Oh My Zsh was started by the team at [Planet Argon](https://www.planetargon.com/?utm_source=github), a [Ruby on Rails development agency](https://www.planetargon.com/skills/ruby-on-rails-development?utm_source=github). Check out our [other open source projects](https://www.planetargon.com/open-source?utm_source=github).
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
## Bazaar integration
|
||||
## Just works with the GIT integration just add $(bzr_prompt_info) to the PROMPT
|
||||
function bzr_prompt_info() {
|
||||
BZR_CB=`bzr nick 2> /dev/null | grep -v "ERROR" | cut -d ":" -f2 | awk -F / '{print "bzr::"$1}'`
|
||||
if [ -n "$BZR_CB" ]; then
|
||||
BZR_DIRTY=""
|
||||
[[ -n `bzr status` ]] && BZR_DIRTY=" %{$fg[red]%} * %{$fg[green]%}"
|
||||
echo "$ZSH_THEME_SCM_PROMPT_PREFIX$BZR_CB$BZR_DIRTY$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
||||
fi
|
||||
}
|
||||
Executable
+86
@@ -0,0 +1,86 @@
|
||||
# System clipboard integration
|
||||
#
|
||||
# This file has support for doing system clipboard copy and paste operations
|
||||
# from the command line in a generic cross-platform fashion.
|
||||
#
|
||||
# On OS X and Windows, the main system clipboard or "pasteboard" is used. On other
|
||||
# Unix-like OSes, this considers the X Windows CLIPBOARD selection to be the
|
||||
# "system clipboard", and the X Windows `xclip` command must be installed.
|
||||
|
||||
# clipcopy - Copy data to clipboard
|
||||
#
|
||||
# Usage:
|
||||
#
|
||||
# <command> | clipcopy - copies stdin to clipboard
|
||||
#
|
||||
# clipcopy <file> - copies a file's contents to clipboard
|
||||
#
|
||||
function clipcopy() {
|
||||
emulate -L zsh
|
||||
local file=$1
|
||||
if [[ $OSTYPE == darwin* ]]; then
|
||||
if [[ -z $file ]]; then
|
||||
pbcopy
|
||||
else
|
||||
cat $file | pbcopy
|
||||
fi
|
||||
elif [[ $OSTYPE == cygwin* ]]; then
|
||||
if [[ -z $file ]]; then
|
||||
cat > /dev/clipboard
|
||||
else
|
||||
cat $file > /dev/clipboard
|
||||
fi
|
||||
else
|
||||
if (( $+commands[xclip] )); then
|
||||
if [[ -z $file ]]; then
|
||||
xclip -in -selection clipboard
|
||||
else
|
||||
xclip -in -selection clipboard $file
|
||||
fi
|
||||
elif (( $+commands[xsel] )); then
|
||||
if [[ -z $file ]]; then
|
||||
xsel --clipboard --input
|
||||
else
|
||||
cat "$file" | xsel --clipboard --input
|
||||
fi
|
||||
else
|
||||
print "clipcopy: Platform $OSTYPE not supported or xclip/xsel not installed" >&2
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# clippaste - "Paste" data from clipboard to stdout
|
||||
#
|
||||
# Usage:
|
||||
#
|
||||
# clippaste - writes clipboard's contents to stdout
|
||||
#
|
||||
# clippaste | <command> - pastes contents and pipes it to another process
|
||||
#
|
||||
# clippaste > <file> - paste contents to a file
|
||||
#
|
||||
# Examples:
|
||||
#
|
||||
# # Pipe to another process
|
||||
# clippaste | grep foo
|
||||
#
|
||||
# # Paste to a file
|
||||
# clippaste > file.txt
|
||||
function clippaste() {
|
||||
emulate -L zsh
|
||||
if [[ $OSTYPE == darwin* ]]; then
|
||||
pbpaste
|
||||
elif [[ $OSTYPE == cygwin* ]]; then
|
||||
cat /dev/clipboard
|
||||
else
|
||||
if (( $+commands[xclip] )); then
|
||||
xclip -out -selection clipboard
|
||||
elif (( $+commands[xsel] )); then
|
||||
xsel --clipboard --output
|
||||
else
|
||||
print "clipcopy: Platform $OSTYPE not supported or xclip/xsel not installed" >&2
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
Executable
+44
@@ -0,0 +1,44 @@
|
||||
# Handle completions insecurities (i.e., completion-dependent directories with
|
||||
# insecure ownership or permissions) by:
|
||||
#
|
||||
# * Human-readably notifying the user of these insecurities.
|
||||
function handle_completion_insecurities() {
|
||||
# List of the absolute paths of all unique insecure directories, split on
|
||||
# newline from compaudit()'s output resembling:
|
||||
#
|
||||
# There are insecure directories:
|
||||
# /usr/share/zsh/site-functions
|
||||
# /usr/share/zsh/5.0.6/functions
|
||||
# /usr/share/zsh
|
||||
# /usr/share/zsh/5.0.6
|
||||
#
|
||||
# Since the ignorable first line is printed to stderr and thus not captured,
|
||||
# stderr is squelched to prevent this output from leaking to the user.
|
||||
local -aU insecure_dirs
|
||||
insecure_dirs=( ${(f@):-"$(compaudit 2>/dev/null)"} )
|
||||
|
||||
# If no such directories exist, get us out of here.
|
||||
[[ -z "${insecure_dirs}" ]] && return
|
||||
|
||||
# List ownership and permissions of all insecure directories.
|
||||
print "[oh-my-zsh] Insecure completion-dependent directories detected:"
|
||||
ls -ld "${(@)insecure_dirs}"
|
||||
|
||||
cat <<EOD
|
||||
|
||||
[oh-my-zsh] For safety, we will not load completions from these directories until
|
||||
[oh-my-zsh] you fix their permissions and ownership and restart zsh.
|
||||
[oh-my-zsh] See the above list for directories with group or other writability.
|
||||
|
||||
[oh-my-zsh] To fix your permissions you can do so by disabling
|
||||
[oh-my-zsh] the write permission of "group" and "others" and making sure that the
|
||||
[oh-my-zsh] owner of these directories is either root or your current user.
|
||||
[oh-my-zsh] The following command may help:
|
||||
[oh-my-zsh] compaudit | xargs chmod g-w,o-w
|
||||
|
||||
[oh-my-zsh] If the above didn't help or you want to skip the verification of
|
||||
[oh-my-zsh] insecure directories you can set the variable ZSH_DISABLE_COMPFIX to
|
||||
[oh-my-zsh] "true" before oh-my-zsh is sourced in your zshrc file.
|
||||
|
||||
EOD
|
||||
}
|
||||
Executable
+73
@@ -0,0 +1,73 @@
|
||||
# fixme - the load process here seems a bit bizarre
|
||||
zmodload -i zsh/complist
|
||||
|
||||
WORDCHARS=''
|
||||
|
||||
unsetopt menu_complete # do not autoselect the first completion entry
|
||||
unsetopt flowcontrol
|
||||
setopt auto_menu # show completion menu on successive tab press
|
||||
setopt complete_in_word
|
||||
setopt always_to_end
|
||||
|
||||
# should this be in keybindings?
|
||||
bindkey -M menuselect '^o' accept-and-infer-next-history
|
||||
zstyle ':completion:*:*:*:*:*' menu select
|
||||
|
||||
# case insensitive (all), partial-word and substring completion
|
||||
if [[ "$CASE_SENSITIVE" = true ]]; then
|
||||
zstyle ':completion:*' matcher-list 'r:|=*' 'l:|=* r:|=*'
|
||||
else
|
||||
if [[ "$HYPHEN_INSENSITIVE" = true ]]; then
|
||||
zstyle ':completion:*' matcher-list 'm:{a-zA-Z-_}={A-Za-z_-}' 'r:|=*' 'l:|=* r:|=*'
|
||||
else
|
||||
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|=*' 'l:|=* r:|=*'
|
||||
fi
|
||||
fi
|
||||
unset CASE_SENSITIVE HYPHEN_INSENSITIVE
|
||||
|
||||
# Complete . and .. special directories
|
||||
zstyle ':completion:*' special-dirs true
|
||||
|
||||
zstyle ':completion:*' list-colors ''
|
||||
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01'
|
||||
|
||||
if [[ "$OSTYPE" = solaris* ]]; then
|
||||
zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm"
|
||||
else
|
||||
zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm -w -w"
|
||||
fi
|
||||
|
||||
# disable named-directories autocompletion
|
||||
zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories
|
||||
|
||||
# Use caching so that commands like apt and dpkg complete are useable
|
||||
zstyle ':completion::complete:*' use-cache 1
|
||||
zstyle ':completion::complete:*' cache-path $ZSH_CACHE_DIR
|
||||
|
||||
# Don't complete uninteresting users
|
||||
zstyle ':completion:*:*:*:users' ignored-patterns \
|
||||
adm amanda apache at avahi avahi-autoipd beaglidx bin cacti canna \
|
||||
clamav daemon dbus distcache dnsmasq dovecot fax ftp games gdm \
|
||||
gkrellmd gopher hacluster haldaemon halt hsqldb ident junkbust kdm \
|
||||
ldap lp mail mailman mailnull man messagebus mldonkey mysql nagios \
|
||||
named netdump news nfsnobody nobody nscd ntp nut nx obsrun openvpn \
|
||||
operator pcap polkitd postfix postgres privoxy pulse pvm quagga radvd \
|
||||
rpc rpcuser rpm rtkit scard shutdown squid sshd statd svn sync tftp \
|
||||
usbmux uucp vcsa wwwrun xfs '_*'
|
||||
|
||||
# ... unless we really want to.
|
||||
zstyle '*' single-ignored show
|
||||
|
||||
if [[ $COMPLETION_WAITING_DOTS = true ]]; then
|
||||
expand-or-complete-with-dots() {
|
||||
# toggle line-wrapping off and back on again
|
||||
[[ -n "$terminfo[rmam]" && -n "$terminfo[smam]" ]] && echoti rmam
|
||||
print -Pn "%{%F{red}......%f%}"
|
||||
[[ -n "$terminfo[rmam]" && -n "$terminfo[smam]" ]] && echoti smam
|
||||
|
||||
zle expand-or-complete
|
||||
zle redisplay
|
||||
}
|
||||
zle -N expand-or-complete-with-dots
|
||||
bindkey "^I" expand-or-complete-with-dots
|
||||
fi
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
if [[ "$ENABLE_CORRECTION" == "true" ]]; then
|
||||
alias cp='nocorrect cp'
|
||||
alias ebuild='nocorrect ebuild'
|
||||
alias gist='nocorrect gist'
|
||||
alias heroku='nocorrect heroku'
|
||||
alias hpodder='nocorrect hpodder'
|
||||
alias man='nocorrect man'
|
||||
alias mkdir='nocorrect mkdir'
|
||||
alias mv='nocorrect mv'
|
||||
alias mysql='nocorrect mysql'
|
||||
alias sudo='nocorrect sudo'
|
||||
|
||||
setopt correct_all
|
||||
fi
|
||||
Executable
+353
@@ -0,0 +1,353 @@
|
||||
# diagnostics.zsh
|
||||
#
|
||||
# Diagnostic and debugging support for oh-my-zsh
|
||||
|
||||
# omz_diagnostic_dump()
|
||||
#
|
||||
# Author: Andrew Janke <andrew@apjanke.net>
|
||||
#
|
||||
# Usage:
|
||||
#
|
||||
# omz_diagnostic_dump [-v] [-V] [file]
|
||||
#
|
||||
# NOTE: This is a work in progress. Its interface and behavior are going to change,
|
||||
# and probably in non-back-compatible ways.
|
||||
#
|
||||
# Outputs a bunch of information about the state and configuration of
|
||||
# oh-my-zsh, zsh, and the user's system. This is intended to provide a
|
||||
# bunch of context for diagnosing your own or a third party's problems, and to
|
||||
# be suitable for posting to public bug reports.
|
||||
#
|
||||
# The output is human-readable and its format may change over time. It is not
|
||||
# suitable for parsing. All the output is in one single file so it can be posted
|
||||
# as a gist or bug comment on GitHub. GitHub doesn't support attaching tarballs
|
||||
# or other files to bugs; otherwise, this would probably have an option to produce
|
||||
# tarballs that contain copies of the config and customization files instead of
|
||||
# catting them all in to one file.
|
||||
#
|
||||
# This is intended to be widely portable, and run anywhere that oh-my-zsh does.
|
||||
# Feel free to report any portability issues as bugs.
|
||||
#
|
||||
# This is written in a defensive style so it still works (and can detect) cases when
|
||||
# basic functionality like echo and which have been redefined. In particular, almost
|
||||
# everything is invoked with "builtin" or "command", to work in the face of user
|
||||
# redefinitions.
|
||||
#
|
||||
# OPTIONS
|
||||
#
|
||||
# [file] Specifies the output file. If not given, a file in the current directory
|
||||
# is selected automatically.
|
||||
#
|
||||
# -v Increase the verbosity of the dump output. May be specified multiple times.
|
||||
# Verbosity levels:
|
||||
# 0 - Basic info, shell state, omz configuration, git state
|
||||
# 1 - (default) Adds key binding info and configuration file contents
|
||||
# 2 - Adds zcompdump file contents
|
||||
#
|
||||
# -V Reduce the verbosity of the dump output. May be specified multiple times.
|
||||
#
|
||||
# TODO:
|
||||
# * Multi-file capture
|
||||
# * Add automatic gist uploading
|
||||
# * Consider whether to move default output file location to TMPDIR. More robust
|
||||
# but less user friendly.
|
||||
#
|
||||
|
||||
autoload -Uz is-at-least
|
||||
|
||||
function omz_diagnostic_dump() {
|
||||
emulate -L zsh
|
||||
|
||||
builtin echo "Generating diagnostic dump; please be patient..."
|
||||
|
||||
local thisfcn=omz_diagnostic_dump
|
||||
local -A opts
|
||||
local opt_verbose opt_noverbose opt_outfile
|
||||
local timestamp=$(date +%Y%m%d-%H%M%S)
|
||||
local outfile=omz_diagdump_$timestamp.txt
|
||||
builtin zparseopts -A opts -D -- "v+=opt_verbose" "V+=opt_noverbose"
|
||||
local verbose n_verbose=${#opt_verbose} n_noverbose=${#opt_noverbose}
|
||||
(( verbose = 1 + n_verbose - n_noverbose ))
|
||||
|
||||
if [[ ${#*} > 0 ]]; then
|
||||
opt_outfile=$1
|
||||
fi
|
||||
if [[ ${#*} > 1 ]]; then
|
||||
builtin echo "$thisfcn: error: too many arguments" >&2
|
||||
return 1
|
||||
fi
|
||||
if [[ -n "$opt_outfile" ]]; then
|
||||
outfile="$opt_outfile"
|
||||
fi
|
||||
|
||||
# Always write directly to a file so terminal escape sequences are
|
||||
# captured cleanly
|
||||
_omz_diag_dump_one_big_text &> "$outfile"
|
||||
if [[ $? != 0 ]]; then
|
||||
builtin echo "$thisfcn: error while creating diagnostic dump; see $outfile for details"
|
||||
fi
|
||||
|
||||
builtin echo
|
||||
builtin echo Diagnostic dump file created at: "$outfile"
|
||||
builtin echo
|
||||
builtin echo To share this with OMZ developers, post it as a gist on GitHub
|
||||
builtin echo at "https://gist.github.com" and share the link to the gist.
|
||||
builtin echo
|
||||
builtin echo "WARNING: This dump file contains all your zsh and omz configuration files,"
|
||||
builtin echo "so don't share it publicly if there's sensitive information in them."
|
||||
builtin echo
|
||||
|
||||
}
|
||||
|
||||
function _omz_diag_dump_one_big_text() {
|
||||
local program programs progfile md5
|
||||
|
||||
builtin echo oh-my-zsh diagnostic dump
|
||||
builtin echo
|
||||
builtin echo $outfile
|
||||
builtin echo
|
||||
|
||||
# Basic system and zsh information
|
||||
command date
|
||||
command uname -a
|
||||
builtin echo OSTYPE=$OSTYPE
|
||||
builtin echo ZSH_VERSION=$ZSH_VERSION
|
||||
builtin echo User: $USER
|
||||
builtin echo umask: $(umask)
|
||||
builtin echo
|
||||
_omz_diag_dump_os_specific_version
|
||||
builtin echo
|
||||
|
||||
# Installed programs
|
||||
programs=(sh zsh ksh bash sed cat grep ls find git posh)
|
||||
local progfile="" extra_str="" sha_str=""
|
||||
for program in $programs; do
|
||||
extra_str="" sha_str=""
|
||||
progfile=$(builtin which $program)
|
||||
if [[ $? == 0 ]]; then
|
||||
if [[ -e $progfile ]]; then
|
||||
if builtin whence shasum &>/dev/null; then
|
||||
sha_str=($(command shasum $progfile))
|
||||
sha_str=$sha_str[1]
|
||||
extra_str+=" SHA $sha_str"
|
||||
fi
|
||||
if [[ -h "$progfile" ]]; then
|
||||
extra_str+=" ( -> ${progfile:A} )"
|
||||
fi
|
||||
fi
|
||||
builtin printf '%-9s %-20s %s\n' "$program is" "$progfile" "$extra_str"
|
||||
else
|
||||
builtin echo "$program: not found"
|
||||
fi
|
||||
done
|
||||
builtin echo
|
||||
builtin echo Command Versions:
|
||||
builtin echo "zsh: $(zsh --version)"
|
||||
builtin echo "this zsh session: $ZSH_VERSION"
|
||||
builtin echo "bash: $(bash --version | command grep bash)"
|
||||
builtin echo "git: $(git --version)"
|
||||
builtin echo "grep: $(grep --version)"
|
||||
builtin echo
|
||||
|
||||
# Core command definitions
|
||||
_omz_diag_dump_check_core_commands || return 1
|
||||
builtin echo
|
||||
|
||||
# ZSH Process state
|
||||
builtin echo Process state:
|
||||
builtin echo pwd: $PWD
|
||||
if builtin whence pstree &>/dev/null; then
|
||||
builtin echo Process tree for this shell:
|
||||
pstree -p $$
|
||||
else
|
||||
ps -fT
|
||||
fi
|
||||
builtin set | command grep -a '^\(ZSH\|plugins\|TERM\|LC_\|LANG\|precmd\|chpwd\|preexec\|FPATH\|TTY\|DISPLAY\|PATH\)\|OMZ'
|
||||
builtin echo
|
||||
#TODO: Should this include `env` instead of or in addition to `export`?
|
||||
builtin echo Exported:
|
||||
builtin echo $(builtin export | command sed 's/=.*//')
|
||||
builtin echo
|
||||
builtin echo Locale:
|
||||
command locale
|
||||
builtin echo
|
||||
|
||||
# Zsh installation and configuration
|
||||
builtin echo Zsh configuration:
|
||||
builtin echo setopt: $(builtin setopt)
|
||||
builtin echo
|
||||
builtin echo zstyle:
|
||||
builtin zstyle
|
||||
builtin echo
|
||||
builtin echo 'compaudit output:'
|
||||
compaudit
|
||||
builtin echo
|
||||
builtin echo '$fpath directories:'
|
||||
command ls -lad $fpath
|
||||
builtin echo
|
||||
|
||||
# Oh-my-zsh installation
|
||||
builtin echo oh-my-zsh installation:
|
||||
command ls -ld ~/.z*
|
||||
command ls -ld ~/.oh*
|
||||
builtin echo
|
||||
builtin echo oh-my-zsh git state:
|
||||
(cd $ZSH && builtin echo "HEAD: $(git rev-parse HEAD)" && git remote -v && git status | command grep "[^[:space:]]")
|
||||
if [[ $verbose -ge 1 ]]; then
|
||||
(cd $ZSH && git reflog --date=default | command grep pull)
|
||||
fi
|
||||
builtin echo
|
||||
if [[ -e $ZSH_CUSTOM ]]; then
|
||||
local custom_dir=$ZSH_CUSTOM
|
||||
if [[ -h $custom_dir ]]; then
|
||||
custom_dir=$(cd $custom_dir && pwd -P)
|
||||
fi
|
||||
builtin echo "oh-my-zsh custom dir:"
|
||||
builtin echo " $ZSH_CUSTOM ($custom_dir)"
|
||||
(cd ${custom_dir:h} && command find ${custom_dir:t} -name .git -prune -o -print)
|
||||
builtin echo
|
||||
fi
|
||||
|
||||
# Key binding and terminal info
|
||||
if [[ $verbose -ge 1 ]]; then
|
||||
builtin echo "bindkey:"
|
||||
builtin bindkey
|
||||
builtin echo
|
||||
builtin echo "infocmp:"
|
||||
command infocmp -L
|
||||
builtin echo
|
||||
fi
|
||||
|
||||
# Configuration file info
|
||||
local zdotdir=${ZDOTDIR:-$HOME}
|
||||
builtin echo "Zsh configuration files:"
|
||||
local cfgfile cfgfiles
|
||||
# Some files for bash that zsh does not use are intentionally included
|
||||
# to help with diagnosing behavior differences between bash and zsh
|
||||
cfgfiles=( /etc/zshenv /etc/zprofile /etc/zshrc /etc/zlogin /etc/zlogout
|
||||
$zdotdir/.zshenv $zdotdir/.zprofile $zdotdir/.zshrc $zdotdir/.zlogin $zdotdir/.zlogout
|
||||
~/.zsh.pre-oh-my-zsh
|
||||
/etc/bashrc /etc/profile ~/.bashrc ~/.profile ~/.bash_profile ~/.bash_logout )
|
||||
command ls -lad $cfgfiles 2>&1
|
||||
builtin echo
|
||||
if [[ $verbose -ge 1 ]]; then
|
||||
for cfgfile in $cfgfiles; do
|
||||
_omz_diag_dump_echo_file_w_header $cfgfile
|
||||
done
|
||||
fi
|
||||
builtin echo
|
||||
builtin echo "Zsh compdump files:"
|
||||
local dumpfile dumpfiles
|
||||
command ls -lad $zdotdir/.zcompdump*
|
||||
dumpfiles=( $zdotdir/.zcompdump*(N) )
|
||||
if [[ $verbose -ge 2 ]]; then
|
||||
for dumpfile in $dumpfiles; do
|
||||
_omz_diag_dump_echo_file_w_header $dumpfile
|
||||
done
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
function _omz_diag_dump_check_core_commands() {
|
||||
builtin echo "Core command check:"
|
||||
local redefined name builtins externals reserved_words
|
||||
redefined=()
|
||||
# All the zsh non-module builtin commands
|
||||
# These are taken from the zsh reference manual for 5.0.2
|
||||
# Commands from modules should not be included.
|
||||
# (For back-compatibility, if any of these are newish, they should be removed,
|
||||
# or at least made conditional on the version of the current running zsh.)
|
||||
# "history" is also excluded because OMZ is known to redefine that
|
||||
reserved_words=( do done esac then elif else fi for case if while function
|
||||
repeat time until select coproc nocorrect foreach end '!' '[[' '{' '}'
|
||||
)
|
||||
builtins=( alias autoload bg bindkey break builtin bye cd chdir command
|
||||
comparguments compcall compctl compdescribe compfiles compgroups compquote comptags
|
||||
comptry compvalues continue dirs disable disown echo echotc echoti emulate
|
||||
enable eval exec exit false fc fg functions getln getopts hash
|
||||
jobs kill let limit log logout noglob popd print printf
|
||||
pushd pushln pwd r read rehash return sched set setopt shift
|
||||
source suspend test times trap true ttyctl type ulimit umask unalias
|
||||
unfunction unhash unlimit unset unsetopt vared wait whence where which zcompile
|
||||
zle zmodload zparseopts zregexparse zstyle )
|
||||
if is-at-least 5.1; then
|
||||
reserved_word+=( declare export integer float local readonly typeset )
|
||||
else
|
||||
builtins+=( declare export integer float local readonly typeset )
|
||||
fi
|
||||
builtins_fatal=( builtin command local )
|
||||
externals=( zsh )
|
||||
for name in $reserved_words; do
|
||||
if [[ $(builtin whence -w $name) != "$name: reserved" ]]; then
|
||||
builtin echo "reserved word '$name' has been redefined"
|
||||
builtin which $name
|
||||
redefined+=$name
|
||||
fi
|
||||
done
|
||||
for name in $builtins; do
|
||||
if [[ $(builtin whence -w $name) != "$name: builtin" ]]; then
|
||||
builtin echo "builtin '$name' has been redefined"
|
||||
builtin which $name
|
||||
redefined+=$name
|
||||
fi
|
||||
done
|
||||
for name in $externals; do
|
||||
if [[ $(builtin whence -w $name) != "$name: command" ]]; then
|
||||
builtin echo "command '$name' has been redefined"
|
||||
builtin which $name
|
||||
redefined+=$name
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -n "$redefined" ]]; then
|
||||
builtin echo "SOME CORE COMMANDS HAVE BEEN REDEFINED: $redefined"
|
||||
else
|
||||
builtin echo "All core commands are defined normally"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
function _omz_diag_dump_echo_file_w_header() {
|
||||
local file=$1
|
||||
if [[ ( -f $file || -h $file ) ]]; then
|
||||
builtin echo "========== $file =========="
|
||||
if [[ -h $file ]]; then
|
||||
builtin echo "========== ( => ${file:A} ) =========="
|
||||
fi
|
||||
command cat $file
|
||||
builtin echo "========== end $file =========="
|
||||
builtin echo
|
||||
elif [[ -d $file ]]; then
|
||||
builtin echo "File '$file' is a directory"
|
||||
elif [[ ! -e $file ]]; then
|
||||
builtin echo "File '$file' does not exist"
|
||||
else
|
||||
command ls -lad "$file"
|
||||
fi
|
||||
}
|
||||
|
||||
function _omz_diag_dump_os_specific_version() {
|
||||
local osname osver version_file version_files
|
||||
case "$OSTYPE" in
|
||||
darwin*)
|
||||
osname=$(command sw_vers -productName)
|
||||
osver=$(command sw_vers -productVersion)
|
||||
builtin echo "OS Version: $osname $osver build $(sw_vers -buildVersion)"
|
||||
;;
|
||||
cygwin)
|
||||
command systeminfo | command head -4 | command tail -2
|
||||
;;
|
||||
esac
|
||||
|
||||
if builtin which lsb_release >/dev/null; then
|
||||
builtin echo "OS Release: $(command lsb_release -s -d)"
|
||||
fi
|
||||
|
||||
version_files=( /etc/*-release(N) /etc/*-version(N) /etc/*_version(N) )
|
||||
for version_file in $version_files; do
|
||||
builtin echo "$version_file:"
|
||||
command cat "$version_file"
|
||||
builtin echo
|
||||
done
|
||||
}
|
||||
|
||||
Executable
+38
@@ -0,0 +1,38 @@
|
||||
# Changing/making/removing directory
|
||||
setopt auto_pushd
|
||||
setopt pushd_ignore_dups
|
||||
setopt pushdminus
|
||||
|
||||
alias -g ...='../..'
|
||||
alias -g ....='../../..'
|
||||
alias -g .....='../../../..'
|
||||
alias -g ......='../../../../..'
|
||||
|
||||
alias -- -='cd -'
|
||||
alias 1='cd -'
|
||||
alias 2='cd -2'
|
||||
alias 3='cd -3'
|
||||
alias 4='cd -4'
|
||||
alias 5='cd -5'
|
||||
alias 6='cd -6'
|
||||
alias 7='cd -7'
|
||||
alias 8='cd -8'
|
||||
alias 9='cd -9'
|
||||
|
||||
alias md='mkdir -p'
|
||||
alias rd=rmdir
|
||||
|
||||
function d () {
|
||||
if [[ -n $1 ]]; then
|
||||
dirs "$@"
|
||||
else
|
||||
dirs -v | head -10
|
||||
fi
|
||||
}
|
||||
compdef _dirs d
|
||||
|
||||
# List directory contents
|
||||
alias lsa='ls -lah'
|
||||
alias l='ls -lah'
|
||||
alias ll='ls -lh'
|
||||
alias la='ls -lAh'
|
||||
Executable
+229
@@ -0,0 +1,229 @@
|
||||
function zsh_stats() {
|
||||
fc -l 1 | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n20
|
||||
}
|
||||
|
||||
function uninstall_oh_my_zsh() {
|
||||
env ZSH=$ZSH sh $ZSH/tools/uninstall.sh
|
||||
}
|
||||
|
||||
function upgrade_oh_my_zsh() {
|
||||
env ZSH=$ZSH sh $ZSH/tools/upgrade.sh
|
||||
}
|
||||
|
||||
function take() {
|
||||
mkdir -p $@ && cd ${@:$#}
|
||||
}
|
||||
|
||||
function open_command() {
|
||||
local open_cmd
|
||||
|
||||
# define the open command
|
||||
case "$OSTYPE" in
|
||||
darwin*) open_cmd='open' ;;
|
||||
cygwin*) open_cmd='cygstart' ;;
|
||||
linux*) ! [[ $(uname -a) =~ "Microsoft" ]] && open_cmd='xdg-open' || {
|
||||
open_cmd='cmd.exe /c start ""'
|
||||
[[ -e "$1" ]] && { 1="$(wslpath -w "${1:a}")" || return 1 }
|
||||
} ;;
|
||||
msys*) open_cmd='start ""' ;;
|
||||
*) echo "Platform $OSTYPE not supported"
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# don't use nohup on OSX
|
||||
if [[ "$OSTYPE" == darwin* ]]; then
|
||||
${=open_cmd} "$@" &>/dev/null
|
||||
else
|
||||
nohup ${=open_cmd} "$@" &>/dev/null
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Get the value of an alias.
|
||||
#
|
||||
# Arguments:
|
||||
# 1. alias - The alias to get its value from
|
||||
# STDOUT:
|
||||
# The value of alias $1 (if it has one).
|
||||
# Return value:
|
||||
# 0 if the alias was found,
|
||||
# 1 if it does not exist
|
||||
#
|
||||
function alias_value() {
|
||||
(( $+aliases[$1] )) && echo $aliases[$1]
|
||||
}
|
||||
|
||||
#
|
||||
# Try to get the value of an alias,
|
||||
# otherwise return the input.
|
||||
#
|
||||
# Arguments:
|
||||
# 1. alias - The alias to get its value from
|
||||
# STDOUT:
|
||||
# The value of alias $1, or $1 if there is no alias $1.
|
||||
# Return value:
|
||||
# Always 0
|
||||
#
|
||||
function try_alias_value() {
|
||||
alias_value "$1" || echo "$1"
|
||||
}
|
||||
|
||||
#
|
||||
# Set variable "$1" to default value "$2" if "$1" is not yet defined.
|
||||
#
|
||||
# Arguments:
|
||||
# 1. name - The variable to set
|
||||
# 2. val - The default value
|
||||
# Return value:
|
||||
# 0 if the variable exists, 3 if it was set
|
||||
#
|
||||
function default() {
|
||||
(( $+parameters[$1] )) && return 0
|
||||
typeset -g "$1"="$2" && return 3
|
||||
}
|
||||
|
||||
#
|
||||
# Set environment variable "$1" to default value "$2" if "$1" is not yet defined.
|
||||
#
|
||||
# Arguments:
|
||||
# 1. name - The env variable to set
|
||||
# 2. val - The default value
|
||||
# Return value:
|
||||
# 0 if the env variable exists, 3 if it was set
|
||||
#
|
||||
function env_default() {
|
||||
(( ${${(@f):-$(typeset +xg)}[(I)$1]} )) && return 0
|
||||
export "$1=$2" && return 3
|
||||
}
|
||||
|
||||
|
||||
# Required for $langinfo
|
||||
zmodload zsh/langinfo
|
||||
|
||||
# URL-encode a string
|
||||
#
|
||||
# Encodes a string using RFC 2396 URL-encoding (%-escaped).
|
||||
# See: https://www.ietf.org/rfc/rfc2396.txt
|
||||
#
|
||||
# By default, reserved characters and unreserved "mark" characters are
|
||||
# not escaped by this function. This allows the common usage of passing
|
||||
# an entire URL in, and encoding just special characters in it, with
|
||||
# the expectation that reserved and mark characters are used appropriately.
|
||||
# The -r and -m options turn on escaping of the reserved and mark characters,
|
||||
# respectively, which allows arbitrary strings to be fully escaped for
|
||||
# embedding inside URLs, where reserved characters might be misinterpreted.
|
||||
#
|
||||
# Prints the encoded string on stdout.
|
||||
# Returns nonzero if encoding failed.
|
||||
#
|
||||
# Usage:
|
||||
# omz_urlencode [-r] [-m] [-P] <string>
|
||||
#
|
||||
# -r causes reserved characters (;/?:@&=+$,) to be escaped
|
||||
#
|
||||
# -m causes "mark" characters (_.!~*''()-) to be escaped
|
||||
#
|
||||
# -P causes spaces to be encoded as '%20' instead of '+'
|
||||
function omz_urlencode() {
|
||||
emulate -L zsh
|
||||
zparseopts -D -E -a opts r m P
|
||||
|
||||
local in_str=$1
|
||||
local url_str=""
|
||||
local spaces_as_plus
|
||||
if [[ -z $opts[(r)-P] ]]; then spaces_as_plus=1; fi
|
||||
local str="$in_str"
|
||||
|
||||
# URLs must use UTF-8 encoding; convert str to UTF-8 if required
|
||||
local encoding=$langinfo[CODESET]
|
||||
local safe_encodings
|
||||
safe_encodings=(UTF-8 utf8 US-ASCII)
|
||||
if [[ -z ${safe_encodings[(r)$encoding]} ]]; then
|
||||
str=$(echo -E "$str" | iconv -f $encoding -t UTF-8)
|
||||
if [[ $? != 0 ]]; then
|
||||
echo "Error converting string from $encoding to UTF-8" >&2
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Use LC_CTYPE=C to process text byte-by-byte
|
||||
local i byte ord LC_ALL=C
|
||||
export LC_ALL
|
||||
local reserved=';/?:@&=+$,'
|
||||
local mark='_.!~*''()-'
|
||||
local dont_escape="[A-Za-z0-9"
|
||||
if [[ -z $opts[(r)-r] ]]; then
|
||||
dont_escape+=$reserved
|
||||
fi
|
||||
# $mark must be last because of the "-"
|
||||
if [[ -z $opts[(r)-m] ]]; then
|
||||
dont_escape+=$mark
|
||||
fi
|
||||
dont_escape+="]"
|
||||
|
||||
# Implemented to use a single printf call and avoid subshells in the loop,
|
||||
# for performance (primarily on Windows).
|
||||
local url_str=""
|
||||
for (( i = 1; i <= ${#str}; ++i )); do
|
||||
byte="$str[i]"
|
||||
if [[ "$byte" =~ "$dont_escape" ]]; then
|
||||
url_str+="$byte"
|
||||
else
|
||||
if [[ "$byte" == " " && -n $spaces_as_plus ]]; then
|
||||
url_str+="+"
|
||||
else
|
||||
ord=$(( [##16] #byte ))
|
||||
url_str+="%$ord"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
echo -E "$url_str"
|
||||
}
|
||||
|
||||
# URL-decode a string
|
||||
#
|
||||
# Decodes a RFC 2396 URL-encoded (%-escaped) string.
|
||||
# This decodes the '+' and '%' escapes in the input string, and leaves
|
||||
# other characters unchanged. Does not enforce that the input is a
|
||||
# valid URL-encoded string. This is a convenience to allow callers to
|
||||
# pass in a full URL or similar strings and decode them for human
|
||||
# presentation.
|
||||
#
|
||||
# Outputs the encoded string on stdout.
|
||||
# Returns nonzero if encoding failed.
|
||||
#
|
||||
# Usage:
|
||||
# omz_urldecode <urlstring> - prints decoded string followed by a newline
|
||||
function omz_urldecode {
|
||||
emulate -L zsh
|
||||
local encoded_url=$1
|
||||
|
||||
# Work bytewise, since URLs escape UTF-8 octets
|
||||
local caller_encoding=$langinfo[CODESET]
|
||||
local LC_ALL=C
|
||||
export LC_ALL
|
||||
|
||||
# Change + back to ' '
|
||||
local tmp=${encoded_url:gs/+/ /}
|
||||
# Protect other escapes to pass through the printf unchanged
|
||||
tmp=${tmp:gs/\\/\\\\/}
|
||||
# Handle %-escapes by turning them into `\xXX` printf escapes
|
||||
tmp=${tmp:gs/%/\\x/}
|
||||
local decoded
|
||||
eval "decoded=\$'$tmp'"
|
||||
|
||||
# Now we have a UTF-8 encoded string in the variable. We need to re-encode
|
||||
# it if caller is in a non-UTF-8 locale.
|
||||
local safe_encodings
|
||||
safe_encodings=(UTF-8 utf8 US-ASCII)
|
||||
if [[ -z ${safe_encodings[(r)$caller_encoding]} ]]; then
|
||||
decoded=$(echo -E "$decoded" | iconv -f UTF-8 -t $caller_encoding)
|
||||
if [[ $? != 0 ]]; then
|
||||
echo "Error converting string from UTF-8 to $caller_encoding" >&2
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -E "$decoded"
|
||||
}
|
||||
Executable
+191
@@ -0,0 +1,191 @@
|
||||
# Outputs current branch info in prompt format
|
||||
function git_prompt_info() {
|
||||
local ref
|
||||
if [[ "$(command git config --get oh-my-zsh.hide-status 2>/dev/null)" != "1" ]]; then
|
||||
ref=$(command git symbolic-ref HEAD 2> /dev/null) || \
|
||||
ref=$(command git rev-parse --short HEAD 2> /dev/null) || return 0
|
||||
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
||||
fi
|
||||
}
|
||||
|
||||
# Checks if working tree is dirty
|
||||
function parse_git_dirty() {
|
||||
local STATUS
|
||||
local -a FLAGS
|
||||
FLAGS=('--porcelain' '--ignore-submodules=dirty')
|
||||
if [[ "$(command git config --get oh-my-zsh.hide-dirty)" != "1" ]]; then
|
||||
if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then
|
||||
FLAGS+='--untracked-files=no'
|
||||
fi
|
||||
STATUS=$(command git status ${FLAGS} 2> /dev/null | tail -n1)
|
||||
fi
|
||||
if [[ -n $STATUS ]]; then
|
||||
echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
|
||||
else
|
||||
echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
|
||||
fi
|
||||
}
|
||||
|
||||
# Gets the difference between the local and remote branches
|
||||
function git_remote_status() {
|
||||
local remote ahead behind git_remote_status git_remote_status_detailed
|
||||
remote=${$(command git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/}
|
||||
if [[ -n ${remote} ]]; then
|
||||
ahead=$(command git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l)
|
||||
behind=$(command git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l)
|
||||
|
||||
if [[ $ahead -eq 0 ]] && [[ $behind -eq 0 ]]; then
|
||||
git_remote_status="$ZSH_THEME_GIT_PROMPT_EQUAL_REMOTE"
|
||||
elif [[ $ahead -gt 0 ]] && [[ $behind -eq 0 ]]; then
|
||||
git_remote_status="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE"
|
||||
git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}"
|
||||
elif [[ $behind -gt 0 ]] && [[ $ahead -eq 0 ]]; then
|
||||
git_remote_status="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE"
|
||||
git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}"
|
||||
elif [[ $ahead -gt 0 ]] && [[ $behind -gt 0 ]]; then
|
||||
git_remote_status="$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE"
|
||||
git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}"
|
||||
fi
|
||||
|
||||
if [[ -n $ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_DETAILED ]]; then
|
||||
git_remote_status="$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_PREFIX$remote$git_remote_status_detailed$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_SUFFIX"
|
||||
fi
|
||||
|
||||
echo $git_remote_status
|
||||
fi
|
||||
}
|
||||
|
||||
# Outputs the name of the current branch
|
||||
# Usage example: git pull origin $(git_current_branch)
|
||||
# Using '--quiet' with 'symbolic-ref' will not cause a fatal error (128) if
|
||||
# it's not a symbolic ref, but in a Git repo.
|
||||
function git_current_branch() {
|
||||
local ref
|
||||
ref=$(command git symbolic-ref --quiet HEAD 2> /dev/null)
|
||||
local ret=$?
|
||||
if [[ $ret != 0 ]]; then
|
||||
[[ $ret == 128 ]] && return # no git repo.
|
||||
ref=$(command git rev-parse --short HEAD 2> /dev/null) || return
|
||||
fi
|
||||
echo ${ref#refs/heads/}
|
||||
}
|
||||
|
||||
|
||||
# Gets the number of commits ahead from remote
|
||||
function git_commits_ahead() {
|
||||
if command git rev-parse --git-dir &>/dev/null; then
|
||||
local commits="$(git rev-list --count @{upstream}..HEAD 2>/dev/null)"
|
||||
if [[ -n "$commits" && "$commits" != 0 ]]; then
|
||||
echo "$ZSH_THEME_GIT_COMMITS_AHEAD_PREFIX$commits$ZSH_THEME_GIT_COMMITS_AHEAD_SUFFIX"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Gets the number of commits behind remote
|
||||
function git_commits_behind() {
|
||||
if command git rev-parse --git-dir &>/dev/null; then
|
||||
local commits="$(git rev-list --count HEAD..@{upstream} 2>/dev/null)"
|
||||
if [[ -n "$commits" && "$commits" != 0 ]]; then
|
||||
echo "$ZSH_THEME_GIT_COMMITS_BEHIND_PREFIX$commits$ZSH_THEME_GIT_COMMITS_BEHIND_SUFFIX"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Outputs if current branch is ahead of remote
|
||||
function git_prompt_ahead() {
|
||||
if [[ -n "$(command git rev-list origin/$(git_current_branch)..HEAD 2> /dev/null)" ]]; then
|
||||
echo "$ZSH_THEME_GIT_PROMPT_AHEAD"
|
||||
fi
|
||||
}
|
||||
|
||||
# Outputs if current branch is behind remote
|
||||
function git_prompt_behind() {
|
||||
if [[ -n "$(command git rev-list HEAD..origin/$(git_current_branch) 2> /dev/null)" ]]; then
|
||||
echo "$ZSH_THEME_GIT_PROMPT_BEHIND"
|
||||
fi
|
||||
}
|
||||
|
||||
# Outputs if current branch exists on remote or not
|
||||
function git_prompt_remote() {
|
||||
if [[ -n "$(command git show-ref origin/$(git_current_branch) 2> /dev/null)" ]]; then
|
||||
echo "$ZSH_THEME_GIT_PROMPT_REMOTE_EXISTS"
|
||||
else
|
||||
echo "$ZSH_THEME_GIT_PROMPT_REMOTE_MISSING"
|
||||
fi
|
||||
}
|
||||
|
||||
# Formats prompt string for current git commit short SHA
|
||||
function git_prompt_short_sha() {
|
||||
local SHA
|
||||
SHA=$(command git rev-parse --short HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
|
||||
}
|
||||
|
||||
# Formats prompt string for current git commit long SHA
|
||||
function git_prompt_long_sha() {
|
||||
local SHA
|
||||
SHA=$(command git rev-parse HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
|
||||
}
|
||||
|
||||
# Get the status of the working tree
|
||||
function git_prompt_status() {
|
||||
local INDEX STATUS
|
||||
INDEX=$(command git status --porcelain -b 2> /dev/null)
|
||||
STATUS=""
|
||||
if $(echo "$INDEX" | command grep -E '^\?\? ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^A ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
|
||||
elif $(echo "$INDEX" | grep '^M ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
|
||||
elif $(echo "$INDEX" | grep '^MM ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^ M ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
|
||||
elif $(echo "$INDEX" | grep '^AM ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
|
||||
elif $(echo "$INDEX" | grep '^MM ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
|
||||
elif $(echo "$INDEX" | grep '^ T ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^R ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_RENAMED$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
||||
elif $(echo "$INDEX" | grep '^D ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
||||
elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
||||
fi
|
||||
if $(command git rev-parse --verify refs/stash >/dev/null 2>&1); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_STASHED$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^## [^ ]\+ .*ahead' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_AHEAD$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^## [^ ]\+ .*behind' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_BEHIND$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^## [^ ]\+ .*diverged' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_DIVERGED$STATUS"
|
||||
fi
|
||||
echo $STATUS
|
||||
}
|
||||
|
||||
# Outputs the name of the current user
|
||||
# Usage example: $(git_current_user_name)
|
||||
function git_current_user_name() {
|
||||
command git config user.name 2>/dev/null
|
||||
}
|
||||
|
||||
# Outputs the email of the current user
|
||||
# Usage example: $(git_current_user_email)
|
||||
function git_current_user_email() {
|
||||
command git config user.email 2>/dev/null
|
||||
}
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
# is x grep argument available?
|
||||
grep-flag-available() {
|
||||
echo | grep $1 "" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
GREP_OPTIONS=""
|
||||
|
||||
# color grep results
|
||||
if grep-flag-available --color=auto; then
|
||||
GREP_OPTIONS+=" --color=auto"
|
||||
fi
|
||||
|
||||
# ignore VCS folders (if the necessary grep flags are available)
|
||||
VCS_FOLDERS="{.bzr,CVS,.git,.hg,.svn}"
|
||||
|
||||
if grep-flag-available --exclude-dir=.cvs; then
|
||||
GREP_OPTIONS+=" --exclude-dir=$VCS_FOLDERS"
|
||||
elif grep-flag-available --exclude=.cvs; then
|
||||
GREP_OPTIONS+=" --exclude=$VCS_FOLDERS"
|
||||
fi
|
||||
|
||||
# export grep settings
|
||||
alias grep="grep $GREP_OPTIONS"
|
||||
|
||||
# clean up
|
||||
unset GREP_OPTIONS
|
||||
unset VCS_FOLDERS
|
||||
unfunction grep-flag-available
|
||||
Executable
+40
@@ -0,0 +1,40 @@
|
||||
## History wrapper
|
||||
function omz_history {
|
||||
local clear list
|
||||
zparseopts -E c=clear l=list
|
||||
|
||||
if [[ -n "$clear" ]]; then
|
||||
# if -c provided, clobber the history file
|
||||
echo -n >| "$HISTFILE"
|
||||
echo >&2 History file deleted. Reload the session to see its effects.
|
||||
elif [[ -n "$list" ]]; then
|
||||
# if -l provided, run as if calling `fc' directly
|
||||
builtin fc "$@"
|
||||
else
|
||||
# unless a number is provided, show all history events (starting from 1)
|
||||
[[ ${@[-1]-} = *[0-9]* ]] && builtin fc -l "$@" || builtin fc -l "$@" 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Timestamp format
|
||||
case ${HIST_STAMPS-} in
|
||||
"mm/dd/yyyy") alias history='omz_history -f' ;;
|
||||
"dd.mm.yyyy") alias history='omz_history -E' ;;
|
||||
"yyyy-mm-dd") alias history='omz_history -i' ;;
|
||||
"") alias history='omz_history' ;;
|
||||
*) alias history="omz_history -t '$HIST_STAMPS'" ;;
|
||||
esac
|
||||
|
||||
## History file configuration
|
||||
[ -z "$HISTFILE" ] && HISTFILE="$HOME/.zsh_history"
|
||||
HISTSIZE=50000
|
||||
SAVEHIST=10000
|
||||
|
||||
## History command configuration
|
||||
setopt extended_history # record timestamp of command in HISTFILE
|
||||
setopt hist_expire_dups_first # delete duplicates first when HISTFILE size exceeds HISTSIZE
|
||||
setopt hist_ignore_dups # ignore duplicated commands history list
|
||||
setopt hist_ignore_space # ignore commands that start with space
|
||||
setopt hist_verify # show command with history expansion to user before running it
|
||||
setopt inc_append_history # add commands to HISTFILE in order of execution
|
||||
setopt share_history # share command history data
|
||||
Executable
+93
@@ -0,0 +1,93 @@
|
||||
# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html
|
||||
# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Zle-Builtins
|
||||
# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Standard-Widgets
|
||||
|
||||
# Make sure that the terminal is in application mode when zle is active, since
|
||||
# only then values from $terminfo are valid
|
||||
if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then
|
||||
function zle-line-init() {
|
||||
echoti smkx
|
||||
}
|
||||
function zle-line-finish() {
|
||||
echoti rmkx
|
||||
}
|
||||
zle -N zle-line-init
|
||||
zle -N zle-line-finish
|
||||
fi
|
||||
|
||||
bindkey -e # Use emacs key bindings
|
||||
|
||||
bindkey '\ew' kill-region # [Esc-w] - Kill from the cursor to the mark
|
||||
bindkey -s '\el' 'ls\n' # [Esc-l] - run command: ls
|
||||
bindkey '^r' history-incremental-search-backward # [Ctrl-r] - Search backward incrementally for a specified string. The string may begin with ^ to anchor the search to the beginning of the line.
|
||||
if [[ "${terminfo[kpp]}" != "" ]]; then
|
||||
bindkey "${terminfo[kpp]}" up-line-or-history # [PageUp] - Up a line of history
|
||||
fi
|
||||
if [[ "${terminfo[knp]}" != "" ]]; then
|
||||
bindkey "${terminfo[knp]}" down-line-or-history # [PageDown] - Down a line of history
|
||||
fi
|
||||
|
||||
# start typing + [Up-Arrow] - fuzzy find history forward
|
||||
if [[ "${terminfo[kcuu1]}" != "" ]]; then
|
||||
autoload -U up-line-or-beginning-search
|
||||
zle -N up-line-or-beginning-search
|
||||
bindkey "${terminfo[kcuu1]}" up-line-or-beginning-search
|
||||
fi
|
||||
# start typing + [Down-Arrow] - fuzzy find history backward
|
||||
if [[ "${terminfo[kcud1]}" != "" ]]; then
|
||||
autoload -U down-line-or-beginning-search
|
||||
zle -N down-line-or-beginning-search
|
||||
bindkey "${terminfo[kcud1]}" down-line-or-beginning-search
|
||||
fi
|
||||
|
||||
if [[ "${terminfo[khome]}" != "" ]]; then
|
||||
bindkey "${terminfo[khome]}" beginning-of-line # [Home] - Go to beginning of line
|
||||
fi
|
||||
if [[ "${terminfo[kend]}" != "" ]]; then
|
||||
bindkey "${terminfo[kend]}" end-of-line # [End] - Go to end of line
|
||||
fi
|
||||
|
||||
bindkey ' ' magic-space # [Space] - do history expansion
|
||||
|
||||
bindkey '^[[1;5C' forward-word # [Ctrl-RightArrow] - move forward one word
|
||||
bindkey '^[[1;5D' backward-word # [Ctrl-LeftArrow] - move backward one word
|
||||
|
||||
if [[ "${terminfo[kcbt]}" != "" ]]; then
|
||||
bindkey "${terminfo[kcbt]}" reverse-menu-complete # [Shift-Tab] - move through the completion menu backwards
|
||||
fi
|
||||
|
||||
bindkey '^?' backward-delete-char # [Backspace] - delete backward
|
||||
if [[ "${terminfo[kdch1]}" != "" ]]; then
|
||||
bindkey "${terminfo[kdch1]}" delete-char # [Delete] - delete forward
|
||||
else
|
||||
bindkey "^[[3~" delete-char
|
||||
bindkey "^[3;5~" delete-char
|
||||
bindkey "\e[3~" delete-char
|
||||
fi
|
||||
|
||||
# Edit the current command line in $EDITOR
|
||||
autoload -U edit-command-line
|
||||
zle -N edit-command-line
|
||||
bindkey '\C-x\C-e' edit-command-line
|
||||
|
||||
# file rename magick
|
||||
bindkey "^[m" copy-prev-shell-word
|
||||
|
||||
# consider emacs keybindings:
|
||||
|
||||
#bindkey -e ## emacs key bindings
|
||||
#
|
||||
#bindkey '^[[A' up-line-or-search
|
||||
#bindkey '^[[B' down-line-or-search
|
||||
#bindkey '^[^[[C' emacs-forward-word
|
||||
#bindkey '^[^[[D' emacs-backward-word
|
||||
#
|
||||
#bindkey -s '^X^Z' '%-^M'
|
||||
#bindkey '^[e' expand-cmd-path
|
||||
#bindkey '^[^I' reverse-menu-complete
|
||||
#bindkey '^X^N' accept-and-infer-next-history
|
||||
#bindkey '^W' kill-region
|
||||
#bindkey '^I' complete-word
|
||||
## Fix weird sequence that rxvt produces
|
||||
#bindkey -s '^[[Z' '\t'
|
||||
#
|
||||
Executable
+35
@@ -0,0 +1,35 @@
|
||||
autoload -Uz is-at-least
|
||||
|
||||
# *-magic is known buggy in some versions; disable if so
|
||||
if [[ $DISABLE_MAGIC_FUNCTIONS != true ]]; then
|
||||
for d in $fpath; do
|
||||
if [[ -e "$d/url-quote-magic" ]]; then
|
||||
if is-at-least 5.1; then
|
||||
autoload -Uz bracketed-paste-magic
|
||||
zle -N bracketed-paste bracketed-paste-magic
|
||||
fi
|
||||
autoload -Uz url-quote-magic
|
||||
zle -N self-insert url-quote-magic
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
## jobs
|
||||
setopt long_list_jobs
|
||||
|
||||
env_default 'PAGER' 'less'
|
||||
env_default 'LESS' '-R'
|
||||
|
||||
## super user alias
|
||||
alias _='sudo'
|
||||
|
||||
## more intelligent acking for ubuntu users
|
||||
if which ack-grep &> /dev/null; then
|
||||
alias afind='ack-grep -il'
|
||||
else
|
||||
alias afind='ack -il'
|
||||
fi
|
||||
|
||||
# recognize comments
|
||||
setopt interactivecomments
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
# get the node.js version
|
||||
function nvm_prompt_info() {
|
||||
[[ -f "$NVM_DIR/nvm.sh" ]] || return
|
||||
local nvm_prompt
|
||||
nvm_prompt=$(node -v 2>/dev/null)
|
||||
[[ "${nvm_prompt}x" == "x" ]] && return
|
||||
nvm_prompt=${nvm_prompt:1}
|
||||
echo "${ZSH_THEME_NVM_PROMPT_PREFIX}${nvm_prompt}${ZSH_THEME_NVM_PROMPT_SUFFIX}"
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user