1
0
mirror of https://gitlab.com/linuxstuff/dotfiles.git synced 2026-06-19 04:06:00 +02:00

210 Commits

Author SHA1 Message Date
sim 7bb0d0378f enabled floating popups / menus 2022-11-21 16:48:07 +01:00
sim 21a73448a7 hide nvpn module 2022-11-18 17:30:20 +01:00
sim fc19c144e2 Stretched WM-bar 2022-11-18 17:23:27 +01:00
sim 251bc41607 added clipster 2022-10-06 10:40:48 +02:00
sim d8f193fd6d added clock to wm bar 2022-09-14 18:55:13 +02:00
sim ddb0ee1736 added yayinfo alias 2022-07-17 11:11:38 +02:00
sim 63de7dd7b5 more yay flags 2022-07-02 10:33:14 +02:00
sim 12376b954c moved nvm init to alias 2022-04-08 19:28:06 +02:00
Simon e890af4c08 Add README.md 2022-03-09 07:26:13 +00:00
Simon 7766d291b0 Add LICENSE 2022-03-09 07:25:45 +00:00
sim 0ae2fa07b9 config -> config.ini 2022-02-26 15:39:54 +01:00
sim 462fd80e64 added batsignal to autostart 2022-02-26 15:35:16 +01:00
sim 3cba733313 added battery alias 2022-02-25 22:00:18 +01:00
sim e357b781d9 Merge branch 'master' of gitlab.com:linuxstuff/dotfiles 2022-02-25 21:40:39 +01:00
Simon 9162d5b287 escpaped backslashes 2022-02-25 19:26:56 +01:00
Simon f2af25be34 added screenlayouts menu 2022-02-25 19:22:46 +01:00
Simon aff46a564f added postswitch script 2022-02-25 19:09:47 +01:00
Simon 070d7cfc55 added screenlayouts menu 2022-02-25 19:01:50 +01:00
Simon 4a83a2460a renamed polybar config to config.ini 2022-02-25 18:20:05 +01:00
Simon 5a16c1185b removed vscodium aliases 2022-02-25 18:17:42 +01:00
Simon 036745ee8f added autorandr configs for pc-bu-01 2022-02-25 18:13:03 +01:00
sim 1101e409aa Merge branch 'master' of gitlab.com:linuxstuff/dotfiles 2022-02-23 14:22:18 +01:00
Simon e098cd99b4 updated alacritty opacity 2022-02-18 10:36:17 +01:00
sim 37f0b2d1b3 Merge branch 'master' of gitlab.com:linuxstuff/dotfiles 2022-02-01 21:48:37 +01:00
sim b544fc602d i3 config changes 2022-02-01 21:46:31 +01:00
Simon a543e4b642 added nvm init 2022-01-31 21:25:18 +01:00
Simon bdf4d75719 added support for secondary monitor 2021-12-02 20:48:00 +01:00
Simon 499ac07284 moved service file 2021-11-28 11:18:59 +01:00
Simon ed57b8b7fc added greenclip service 2021-11-28 10:59:49 +01:00
Simon 4ea3b6335b added device-specific picom config 2021-11-25 16:57:44 +01:00
sim d18294cacb lockscreen 2021-11-07 11:49:16 +01:00
sim de6e9583f3 disable bell for all x applications 2021-11-07 10:57:53 +01:00
sim 8576130770 reenabled picom 2021-11-06 20:35:30 +01:00
sim 00cfd64a2e changed yoga3 theme 2021-11-06 20:32:55 +01:00
Simon 8477589b4e changes 2021-11-06 13:06:19 +01:00
Simon 6f76db390c added notebook conversion alias 2021-10-10 10:25:14 +02:00
Simon 2acb65e6f8 disabled picom autostart on yoga3 2021-07-30 19:46:45 +02:00
Simon 7230884f3d search for installed yay pkgs 2021-04-01 16:27:35 +02:00
Simon 1cd80c42cc added music workspace 2021-03-23 19:24:59 +01:00
Simon 43507d4808 added script 2021-03-13 15:44:48 +01:00
Simon e6fef2f6d4 added analog clock 2021-03-13 15:35:16 +01:00
Simon 68cd1920a2 Added default sink menu 2021-03-07 13:46:01 +01:00
Simon 81671e1ed3 advanced yay info 2021-03-06 18:10:34 +01:00
Simon 7e56ab915c added pavu button separator 2021-02-20 12:09:55 +01:00
Simon 77ecc59805 removed compiled config file 2021-02-20 12:07:33 +01:00
Simon 7ff5367a94 Merge branch 'master' of gitlab.com:linuxstuff/dotfiles
merge
2021-02-20 12:03:58 +01:00
Simon 5252de796c adapting to pc 2021-02-20 12:03:23 +01:00
Simon 9409cf977e added more icons 2021-02-19 23:03:06 +01:00
Simon cd92e989a3 rearranged modules for yoga3 2021-02-19 23:00:17 +01:00
Simon 3dc070124a adapted to yoga3 2021-02-19 09:59:38 +01:00
Simon 31d94b3c7f adapted to yoga3 2021-02-19 09:57:13 +01:00
Simon 879b3f4f7e changed wlan to wlan_short 2021-02-19 09:52:21 +01:00
Simon bbd6de2200 changed popup width 2021-02-19 09:49:12 +01:00
Simon 373b7987d5 added default fontconfig 2021-02-19 09:46:50 +01:00
Simon bcc3952d6d changed dpi for yoga3 2021-02-19 09:45:44 +01:00
Simon d82ef3129e changed popup width for pc 2021-02-19 09:41:54 +01:00
Simon 07809667b9 adapted to yoga3 2021-02-19 09:41:19 +01:00
Simon 1fcf3ceb94 changed tray offset 2021-02-19 09:23:04 +01:00
Simon 3d822d9369 changed materialdesignicons font name 2021-02-19 09:19:59 +01:00
Simon c3ae4d8dff merge 2021-02-19 09:04:01 +01:00
Simon b24012a199 changed monitor name 2021-02-19 09:02:58 +01:00
Simon 40aa93366a Delete config.bak 2021-02-19 08:00:44 +00:00
Simon 9faf2a3b83 improved polybar config merging + autostart 2021-02-19 08:59:58 +01:00
Simon 3bab00d310 ignore bak files 2021-02-19 08:59:11 +01:00
Simon fdb7933c28 skip yadm files 2021-02-19 08:58:23 +01:00
Simon 136f3082aa removed variants 2021-02-19 08:52:27 +01:00
Simon a0e764d202 removed variants 2021-02-19 08:48:37 +01:00
Simon d8709979c5 removed variants 2021-02-19 08:42:51 +01:00
Simon f6c0f4fa77 Renamed xresources variants 2021-02-19 08:40:15 +01:00
Simon 816983c165 Renamed xresources variants 2021-02-19 08:39:26 +01:00
Simon 54ba6b47ac removed variants 2021-02-19 08:29:15 +01:00
Simon 34cbd34be9 removed xresources variants 2021-02-19 08:25:33 +01:00
Simon b38ce7d5f3 Improved ux 2021-02-16 11:15:58 +01:00
Simon 07e555dcbe yay editmenu alias 2021-02-03 18:41:29 +01:00
Simon 2444537fb6 moved magic number for offsetY to var 2021-01-29 15:23:46 +01:00
Simon d81229fa7f improved hover detection on systray 2021-01-29 15:19:25 +01:00
Simon 3b89d14b9c added pa-eq shortcuts 2021-01-27 22:05:01 +01:00
Simon 9f68c71d38 added euro 2021-01-26 18:33:17 +01:00
Simon 79acaea770 changed script path to be relative 2021-01-22 19:19:35 +01:00
Simon 25a7944751 removed unused config 2021-01-21 12:35:23 +01:00
Simon d9c4705071 Update .gitignore 2021-01-21 11:33:41 +00:00
Simon 84555006aa Merge branch 'master' of gitlab.com:linuxstuff/dotfiles 2021-01-21 12:33:04 +01:00
Simon bada910065 added gitignore 2021-01-21 12:32:08 +01:00
Simon 3d73f19608 Update .gitignore 2021-01-21 11:25:07 +00:00
Simon 61d634adb6 renamed polybar launch script 2021-01-21 12:21:18 +01:00
Simon 89116e3d52 reformat 2021-01-21 12:17:23 +01:00
Simon 1984146a28 switched to autostart script 2021-01-21 12:16:44 +01:00
Simon d6cc395b59 cleanup 2021-01-21 11:38:55 +01:00
Simon 67ddef5067 fixes + added bar bases 2021-01-21 11:29:25 +01:00
Simon bf457bb148 added polybar config merge 2021-01-21 11:14:11 +01:00
Simon 27c18afbc5 added config for my polybar fork 2021-01-19 18:56:11 +01:00
Simon 0e252fc53f Moved top bar to background, not interfering with i3-gaps 2021-01-17 18:12:28 +01:00
Simon 38738ce4eb changed borders 2021-01-16 20:00:05 +01:00
Simon a5e1b4eee8 added dunst config 2021-01-16 18:36:52 +01:00
Simon 167e855b94 merge 2021-01-16 15:10:01 +01:00
Simon 7e2f21b27d Finalized cava module integration 2021-01-16 15:07:23 +01:00
Simon 7b8a0174e2 fixes 2021-01-14 15:34:06 +01:00
Simon c5cd41b3fd cava module 2021-01-14 14:39:40 +01:00
Simon dbd7925ca3 polybar aliases 2021-01-13 16:25:14 +01:00
Simon f6e879cfa8 ws names 2021-01-02 12:22:52 +01:00
Simon cb726915cf changed i3wm module indicator 2021-01-02 12:19:50 +01:00
Simon 3c7e4b2f9d disabled xsnow bc christmas time is over :( 2021-01-01 17:09:10 +01:00
Simon c13b9178f9 cleanup 2020-12-30 18:54:45 +01:00
Simon 09f816c294 based all colors on xresources 2020-12-30 18:32:35 +01:00
Simon 9b6b350fd8 added xrdb fetcher 2020-12-30 16:53:47 +01:00
Simon c05d789689 polypopup cleanup 2020-12-29 19:55:56 +01:00
Simon d6fa6e467e Added polybar floating config 2020-12-29 18:29:43 +01:00
Simon 7d21d6737d Added polybar floating config 2020-12-29 18:28:25 +01:00
Simon f144b718f8 Added polybar floating config 2020-12-29 18:27:48 +01:00
Simon dc144ce896 added scripts 2020-12-27 20:43:51 +01:00
Simon c334612df6 picom settings 2020-12-22 17:36:01 +01:00
Simon 4ec1de9e0e added snow 2020-12-21 23:27:58 +01:00
Simon 68e6b6c893 yayi 2020-12-21 22:24:41 +01:00
Simon 9c01834b9a remapped shortcuts 2020-12-21 12:57:22 +01:00
Simon 8351d2680e nord theming 2020-12-17 18:19:06 +01:00
Simon 1b6b139dce disabled pulseaudio restart 2020-12-11 20:08:01 +01:00
Simon 68f42573af exclude tmpfs in df 2020-12-11 09:22:40 +01:00
Simon c4e7e9c6cc replaced string 2020-12-11 09:12:17 +01:00
Simon 219818c036 disk shortcuts 2020-12-11 09:11:24 +01:00
Simon 6781d8f91a picom 2020-12-06 11:53:32 +01:00
Simon 8e64273aac backup terminal and compositor flags 2020-12-06 10:40:50 +01:00
Simon 595c5f7c2e modified focused color 2020-11-29 22:29:19 +01:00
Simon 94ea753b53 Changed to nord theme 2020-11-29 21:43:35 +01:00
Simon 28b05c5b1c added quotes 2020-11-28 20:43:01 +01:00
Simon e43a86735f Merge 2020-11-17 21:25:17 +01:00
Simon 47fa2dd230 Nord rofi config 2020-11-15 12:04:17 +01:00
Simon 2f9084860c added playercontrol keys; switched to volumectl; reformat 2020-11-15 11:12:56 +01:00
Simon af768d5a70 hostname changes 2020-11-11 01:59:52 +00:00
Simon 254aeecf09 Needless changes 2020-11-11 01:53:34 +00:00
h45h74x 98776714a9 Changed bindings 2020-11-07 15:48:16 +01:00
h45h74x e324144733 Changed bindings 2020-11-07 15:41:50 +01:00
h45h74x c548575421 Improvements 2020-11-06 19:26:45 +01:00
h45h74x 72bc6c46fa Added type clipboard function 2020-11-06 19:23:43 +01:00
h45h74x 3048230ee6 Changed ws icon and border styles 2020-10-14 21:51:00 +02:00
Simon 3f87ab50e4 Merge 2020-09-28 10:50:52 +02:00
h45h74x 5962a0f9dd Changed file manager to thunar 2020-09-28 10:48:56 +02:00
h45h74x ff94deff38 Added systemctl alias 'sctl' 2020-09-28 10:30:16 +02:00
Simon 2a918aae48 Added new USB eth modem 2020-08-12 23:16:35 +02:00
Simon 11fc2673a4 Replaced nautilus with thunar 2020-08-01 17:46:33 +02:00
Simon d3238cc969 Added size aliases and xclip help 2020-07-16 21:10:05 +02:00
Simon 7c476070b7 Added awesome config 2020-07-13 20:22:19 +02:00
Simon 20b15692e6 Adjusted spacing in bspwm module 2020-07-12 22:38:45 +02:00
Simon c9c28bc39f Added yoga3 xmodmap 2020-07-12 22:14:24 +02:00
Simon 3724f614e5 Made it better 2020-07-12 22:07:37 +02:00
Simon 26447f9a55 Autostart 2020-07-10 00:33:46 +02:00
Simon b8af442d32 added ncspot shortcut 2020-07-10 00:26:12 +02:00
Simon b00eeb9abf Initial bspwm config 2020-07-10 00:12:55 +02:00
h45h74x f722e56a74 Added configs 2020-07-09 00:11:01 +02:00
Simon ef70f0cdc5 Start nextcloud in background 2020-07-07 07:36:21 +02:00
h45h74x 77b1d30f85 changed dpi 2020-07-06 22:30:01 +02:00
h45h74x 910814a05e changed dpi 2020-07-06 22:25:46 +02:00
Simon bcc84be252 added xmodmap execution on start 2020-07-05 14:27:34 +02:00
h45h74x 00eb5d5528 Added update checker for manjaro 2020-07-03 20:40:30 +02:00
h45h74x d8e49fdf7d Module changes for vnc bar 2020-07-03 16:59:02 +02:00
Simon 973ac69ed7 Added vnc polybar for pc 2020-07-03 16:56:47 +02:00
h45h74x 27e4cf1b12 added vnc config 2020-07-03 16:37:33 +02:00
h45h74x 7b4beb89d0 Merge branch 'master' of gitlab.com:h45h74x/yadm-dotfiles 2020-07-03 16:36:52 +02:00
h45h74x 62ccfaf995 added vnc config 2020-07-03 16:36:22 +02:00
Simon fbf5a7894a Updated volume module 2020-07-03 00:44:51 +02:00
Simon a6bbf1c6a1 sensors_cpu 2020-07-02 22:22:36 +02:00
Simon bf04949541 Updates Module 2020-07-02 21:58:20 +02:00
Simon b27b47b68e Checkupdates Module 2020-07-02 21:54:18 +02:00
Simon b6f5551984 Module changes 2020-07-02 21:52:13 +02:00
Simon b309e9c907 Renamed File 2020-07-02 21:41:33 +02:00
Simon 3d5c02b2f8 Unified config files, changed startup scripts 2020-07-02 21:39:58 +02:00
h45h74x 9798a34fe8 Added libvirt aliases 2020-06-23 21:17:53 +02:00
h45h74x d796223cc9 xmodmap exec_always 2020-06-13 12:46:24 +02:00
h45h74x f961f3766f added Mod+L lock shortcut 2020-06-11 20:25:22 +02:00
h45h74x d10a7eb1cc changed screen number 2020-06-10 23:18:03 +02:00
h45h74x df3bd85acc xmodmap 2020-06-07 20:56:27 +02:00
Simon 0b079f043d added screen ssh 'sshs' alias 2020-06-04 22:13:30 +02:00
Simon adc6d4d03f changed to higher dpi 2020-06-02 19:06:23 +02:00
Simon ce27bb13a3 removed wrong arguments 2020-06-01 20:00:32 +02:00
Simon 269f203073 added second mon 2020-06-01 16:12:10 +02:00
Simon ecb5319a29 changed ws pinni 2020-06-01 16:07:34 +02:00
h45h74x a9be83eedc added repo update 2020-06-01 10:49:29 +02:00
h45h74x d35069480f added logiops conf 2020-06-01 10:48:16 +02:00
Simon 1a61da086f added yoga3 xmodmap 2020-05-30 21:13:51 +02:00
Simon 4a6a2c202d Merge branch 'master' of gitlab.com:h45h74x/yadm-dotfiles 2020-05-28 14:20:31 +02:00
Simon 24a7ff6d77 . 2020-05-28 14:20:21 +02:00
h45h74x 71fcfc9404 edited checkupd module config 2020-05-25 17:15:13 +02:00
h45h74x 58ac4f54d9 added modified alacritty nord theme for my picom look 2020-05-24 17:07:19 +02:00
h45h74x 28e5abf32b added ncdu when clicking disk_short 2020-05-20 00:06:43 +02:00
h45h74x fdfdb2db4a changed color schemes 2020-05-19 23:57:57 +02:00
h45h74x 30dcbab90d added checkupd module, uses checkupdates to fetch update list 2020-05-19 23:43:44 +02:00
h45h74x ffea56940c added better cpu and nvidia-dkms (nvidia-smi) stats 2020-05-19 23:23:53 +02:00
h45h74x 2fe7befc1e Changes 2020-05-15 13:30:48 +02:00
h45h74x f47d11508e Changed font config 2020-05-15 10:48:47 +02:00
h45h74x 0676852bff Added fontconfig for PC 2020-05-15 10:27:52 +02:00
h45h74x c8e9684e0e adapted script location 2020-05-13 21:51:55 +02:00
h45h74x f7fc6cd3b7 shorter pulseaudio start + apply xmodmap 2020-05-13 21:50:23 +02:00
h45h74x 52c9645ab1 glances autostart + pavu shortcut 2020-05-13 21:48:51 +02:00
h45h74x e5a1c558f4 Merge branch 'master' of gitlab.com:h45h74x/yadm-dotfiles 2020-05-13 21:46:38 +02:00
h45h74x 36865c82cd added glances conf 2020-05-13 21:29:59 +02:00
Simon d4d5fc8312 Changed filename 2020-05-10 22:38:33 +02:00
Simon ad8203529c Adapted i3 config to new Scripts location 2020-05-07 03:36:17 +02:00
h45h74x 58d535f013 Adapted i3 conf to new Scripts location 2020-05-07 03:35:26 +02:00
Simon 9b41ee15c0 Added yoga3 i3 config 2020-05-07 02:11:53 +02:00
h45h74x f1b3826374 Added confd alias 2020-05-06 22:25:41 +02:00
Simon 494f9f5776 Merge branch 'h45h74x-master-patch-56048' into 'master'
Changed default config

See merge request h45h74x/yadm-dotfiles!1
2020-05-06 20:14:42 +00:00
Simon e2592c0c53 Changed default config 2020-05-06 20:14:23 +00:00
h45h74x 8b49bffca6 Added aliases 2020-05-06 22:07:12 +02:00
h45h74x 80a58d4669 Added class and os alternates 2020-05-06 22:06:16 +02:00
h45h74x 5a5286b38c Loaded submodules 2020-05-06 21:21:21 +02:00
h45h74x eba6aa5a76 Linked to PC 2020-05-06 21:18:09 +02:00
Simon adcbca2d37 Added new aliases 2020-05-05 11:57:20 +02:00
Simon dc1a30eab4 Adapted i3 config to new script locations 2020-05-05 11:50:56 +02:00
Simon 3d40be8e61 neofetch 2020-05-05 11:43:19 +02:00
Simon 6780bf167c rofi 2020-05-05 11:37:02 +02:00
Simon bc93e7217e notify-osd 2020-05-05 11:32:07 +02:00
846 changed files with 67758 additions and 2363 deletions
Regular → Executable
+1
View File
@@ -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
View File
-95
View File
@@ -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
+119
View File
@@ -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
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+119
View File
@@ -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
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+489
View File
@@ -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
+91
View File
@@ -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
-70
View File
@@ -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'
+1
View File
@@ -0,0 +1 @@
alacritty.yml##h.yoga3
+91
View File
@@ -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
+91
View File
@@ -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
-572
View File
@@ -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 }
-67
View File
@@ -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'
+38
View File
@@ -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"
+23
View 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
+2
View File
@@ -0,0 +1,2 @@
DP-4 00ffffffffffff0009d13f7f4554000026180104a5351e783e57e0a5544f9d26125054a56b80d1c0317c4568457c8168617c953c3168023a801871382d40582c4500132a2100001e000000ff005739453036333339534c300a20000000fd0038901ea021000a202020202020000000fc0042656e5120584c32343330540a01c3020318f14b010203040590111213141f2309070783010000023a801871382d40582c4500132a2100001e866f80a07038404030203500132a2100001a011d007251d01e206e285500132a2100001efe5b80a07038354030203500132a2100001afb7e80887038124018203500132a2100001e000000000000000000000000002b
HDMI-0 00ffffffffffff0038a3bc66010101011d140103802b2078eaee95a3544c99260f5054bfef80315945596159714f81598199a9408180483f403062b0324040c01300b0441100001e000000fd0032551f5c11000a202020202020000000fc004c4344323139305558700a2020000000ff00303730303334333055420a202000bf
+10
View File
@@ -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"
+19
View File
@@ -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
+2
View File
@@ -0,0 +1,2 @@
DP-4 00ffffffffffff0009d13f7f4554000026180104a5351e783e57e0a5544f9d26125054a56b80d1c0317c4568457c8168617c953c3168023a801871382d40582c4500132a2100001e000000ff005739453036333339534c300a20000000fd0038901ea021000a202020202020000000fc0042656e5120584c32343330540a01c3020318f14b010203040590111213141f2309070783010000023a801871382d40582c4500132a2100001e866f80a07038404030203500132a2100001a011d007251d01e206e285500132a2100001efe5b80a07038354030203500132a2100001afb7e80887038124018203500132a2100001e000000000000000000000000002b
HDMI-0 00ffffffffffff0038a3bc66010101011d140103802b2078eaee95a3544c99260f5054bfef80315945596159714f81598199a9408180483f403062b0324040c01300b0441100001e000000fd0032551f5c11000a202020202020000000fc004c4344323139305558700a2020000000ff00303730303334333055420a202000bf
+62
View File
@@ -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
+97
View File
@@ -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
+36
View File
@@ -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"
+434
View 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
+434
View 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 = "%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
+41
View File
@@ -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>
+125
View File
@@ -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>
+604
View File
@@ -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
+39
View File
@@ -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
View File
@@ -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
-319
View File
@@ -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"
}
View File
+849
View File
@@ -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"
+1
View File
@@ -0,0 +1 @@
picom.conf##h.yoga3
+533
View File
@@ -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; }
};
+533
View File
@@ -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; }
};
+2
View File
@@ -0,0 +1,2 @@
*.bak
config
-503
View File
@@ -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}
+1
View File
@@ -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
+1
View File
@@ -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
+1
View File
@@ -0,0 +1 @@
launch.sh##h.yoga3
+53
View File
@@ -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!"
+52
View File
@@ -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!"
-13
View File
@@ -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..."
-339
View File
@@ -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
+738
View File
@@ -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 "$@"
+314
View File
@@ -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()
+29
View File
@@ -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()))
+95
View File
@@ -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}'
+93
View File
@@ -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
-122
View File
@@ -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)
+38
View File
@@ -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"
+153
View 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"
+82
View File
@@ -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")
+6
View File
@@ -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
+70
View File
@@ -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")
+44
View File
@@ -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;
}
+44
View File
@@ -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;
}
+44
View File
@@ -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;
}
+44
View File
@@ -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]
+39
View File
@@ -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
View File
@@ -1 +0,0 @@
#cc2929
-73
View File
@@ -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
+58 -9
View File
@@ -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
View File
@@ -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
View File
@@ -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
Submodule .oh-my-zsh deleted from 9524db7398
+10
View File
@@ -0,0 +1,10 @@
root = true
[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
[*.sh]
indent_size = 4
indent_style = tab
+6
View File
@@ -0,0 +1,6 @@
# custom files
custom/
# temp files directories
cache/
log/
+76
View File
@@ -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
+125
View File
@@ -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.
+22
View File
@@ -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.
+308
View File
@@ -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:
![Agnoster theme](https://cloud.githubusercontent.com/assets/2618447/6316862/70f58fb6-ba03-11e4-82c9-c083bf9a6574.png)
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
![Planet Argon](https://pa-github-assets.s3.amazonaws.com/PARGON_logo_digital_COL-small.jpg)
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).
+10
View File
@@ -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
}
+86
View File
@@ -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
}
+44
View File
@@ -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
}
+73
View File
@@ -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
+14
View File
@@ -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
+353
View File
@@ -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
}
+38
View File
@@ -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'
+229
View File
@@ -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"
}
+191
View File
@@ -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
}
+28
View File
@@ -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
+40
View File
@@ -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
+93
View File
@@ -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'
#
+35
View File
@@ -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
+9
View File
@@ -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