1
0
mirror of https://github.com/frebib/dotfiles.git synced 2024-06-14 12:57:23 +00:00

180 Commits

Author SHA1 Message Date
ff0d449fa5 git: add 'git leaders' alias
Lists git committers in order of commit count, for a repo
2020-03-21 23:02:28 +00:00
936e8828c8 git: use absolute dates in git-log 2020-03-21 23:01:50 +00:00
fb480c73c5 git: prune deleted branches on fetch/pull 2020-03-21 23:01:01 +00:00
bc89989bbb polybar: use nct6775 cputemp hwmon module 2020-03-21 22:56:09 +00:00
2770fefefd polybar: add gputemp applet
rename temperature to cputemp for consistency
2020-03-21 22:56:09 +00:00
0256369cd6 scripts/screenshot: update screenshot scp path 2020-03-21 22:56:09 +00:00
1fdb93e356 scripts/gtav: add gtav/netsplit scripts 2020-03-21 22:56:09 +00:00
f379b758c9 systemd: add & enable nm-applet service 2020-03-21 22:51:42 +00:00
93a2899c7b i3: allow popups to interrupt fullscreen windows 2020-03-21 22:33:10 +00:00
df03d9062e systemd: enable xautolock service 2020-03-21 22:31:59 +00:00
ddf5a1d387 xautolock: add xorg dependency. timeout after 5min 2020-03-21 22:30:58 +00:00
ba8dc84993 xprofile: load xmodmap on Xorg startup 2020-03-21 22:17:37 +00:00
757bd4c26d systemd: launch i3 and user programs with systemd 2020-03-21 21:29:21 +00:00
d96ffc16ff aliases: add gdni/gbl. use --keep with gundo 2020-03-21 21:29:11 +00:00
2598df0f17 aliases: make git-log/git-show aliases consistent
Show patches and stats in appropriate places
2020-03-21 21:29:11 +00:00
d251f3e23a dunst: use full html-like markup
Strip all trailing whitespace from the configuration file
2020-03-21 21:29:11 +00:00
0d5e1a92c9 i3: remove unused alt-tab script 2020-03-21 21:29:09 +00:00
ed0e66dede zsh: move less/man interactive config to zshrc 2020-03-21 12:49:59 +00:00
f695136338 gitignore: exclude application-managed files 2020-03-21 12:43:28 +00:00
4fd3c35d52 alacritty: rebase config against upstream changes 2020-03-21 12:40:41 +00:00
4335eb18c7 alacritty: removed deprecated option tabspaces
Upstream change: 8c64224582
2020-03-21 12:21:46 +00:00
27991a9460 alacritty: removed deprecated option scrolling:auto_scroll
Upstream change: 2f1a390aaa (diff-1ee5c0b1c8641b1e5be6a7e6a9c3ce1a)
2020-03-21 12:20:15 +00:00
d54737ee28 polybar: add v4/v6 gateway ping check 2020-02-23 23:14:44 +00:00
30fd0b3024 picom: use dual_kawase blur 2020-01-26 21:39:31 +00:00
7a2e8b3f1e chromium: ensure native notifications always work on startup 2020-01-26 21:38:14 +00:00
37d044aab0 polybar: override monitor if one is provided or default to HDMI-0 2019-12-15 11:52:12 +00:00
6d0df3bc65 zsh: remove history-substring-search
This functionality is provided by fzf anyway so this does nothing now
2019-12-15 11:52:12 +00:00
dc6fab9f8a zsh: cap autosuggest maximum line length 2019-12-15 11:43:49 +00:00
a7f104e942 chromium: force-enable overlay scrollbars, because fuck Google
The feature was "removed" but the code is still present, fortunately
https://www.reddit.com/r/chrome/comments/dq48n6/where_the_fuck_did_overlayscrollbars_go/
2019-12-15 11:36:14 +00:00
5759872bbd zsh: source z if available 2019-12-14 22:22:53 +00:00
10ffcecb31 scripts/rofi-*: restart viewer after updating 2019-12-14 22:21:38 +00:00
4c634c402a scripts/fontawesome: load icons from local file 2019-12-14 22:17:49 +00:00
00a83da619 aliases: add grb* and gtg git aliases 2019-12-14 22:16:49 +00:00
1eae7f9969 terminal: tweak opacity/blur visuals 2019-12-14 22:15:56 +00:00
4646ddae36 picom: enable debug logging to file 2019-12-14 22:13:49 +00:00
ae5521f516 alacritty: removed deprecated option scrolling:faux_multiplier
Removed in 49380bffd2
2019-12-14 22:12:51 +00:00
e2816d2837 picom: migrate compton to picom 2019-10-30 15:48:49 +00:00
ae35df326d polybar: Use FontAwesome 5.10 Light 2019-10-12 00:08:42 +01:00
90a5d29178 Increase i3 gaps/window padding 2019-10-12 00:07:35 +01:00
616edc0cc7 compton: update to v7.x config 2019-10-11 23:42:15 +01:00
3bb6de1dd9 aliases: set date when amending a commit 2019-10-10 14:05:30 +01:00
7b418c2abc zsh: export secrets in interactive shells 2019-09-15 11:36:03 +01:00
0fc023db91 zsh: add Ctrl+F file search 2019-09-15 11:35:50 +01:00
e17ebf0201 alacritty: update config 2019-09-15 11:32:08 +01:00
8f969737ed aliases: show full message/stat in gd/gsh/glg 2019-09-15 11:30:00 +01:00
8287acf3a7 aliases: add daddrs function 2019-09-10 10:19:18 +01:00
2050b1a5b7 aliases: add polybarc to edit & reload polybar 2019-04-24 10:49:01 +01:00
d6289c47ba scripts/screenshot: fix putting capture in clipboard 2019-04-24 10:42:05 +01:00
6c19740e21 aliases: add grbom and gpoH 2019-04-08 14:14:18 +01:00
8b838aa771 aliases: remove -E from sudo alias
-E isn't compatible with -i and it doesn't seem to do a lot anyway
2019-04-08 14:14:00 +01:00
af65ab019e i3: add $mod+i for type-paste from xclip 2019-04-08 14:11:55 +01:00
a11dac4d00 aliases: add dnets alias 2019-03-08 22:30:37 +00:00
90750c0ede i3: always set wallpaper from $DOTFILES 2019-03-08 14:20:47 +00:00
18208e2362 aliases: improve dps/dpsa
Revert dmc to function instead of alias so it actually works
2019-03-03 13:33:15 +00:00
ad713cd680 scripts/screenshot: Use shorter hash name 2019-02-18 13:11:33 +00:00
b4e3cdeff3 aliases: add ipa & addrs 2019-01-19 13:14:05 +00:00
c6bd6a83c6 polybar: add weather winter icons (fa 3.6) 2018-12-29 22:06:36 +00:00
f247802bda profile: clean-up ~/.npm* files 2018-12-28 13:58:50 +00:00
abb66a954b i3: rofi-pass use multiple password stores 2018-12-28 13:54:40 +00:00
ed9d50d68e aliases: re-columnate zl output to remove big space 2018-12-14 15:58:45 +00:00
89b9222b7c i3: remove superfluous compton config path 2018-12-01 22:22:02 -08:00
ee6b7333fb polybar: use better workspace urgent colour 2018-12-01 22:22:02 -08:00
2ac1111b72 i3: fix xf86 media keys for all apps 2018-12-01 22:22:02 -08:00
83f8566faf i3: widen powermenu to account for padding 2018-12-01 22:21:53 -08:00
59ac129a85 i3: improve automatic/timeout/suspend locking 2018-12-01 22:21:43 -08:00
809f27b576 profile: general cleanup/organisation 2018-11-20 15:40:49 +00:00
c6f653f88c dunst: restyle notification for consistency 2018-11-20 15:40:31 +00:00
48b116e2a6 urxvt: increase terminal padding to match 2018-11-20 15:40:14 +00:00
8bd77f63cd scripts/dpi: ensure config directory exists 2018-11-20 15:39:26 +00:00
e8a3b91052 aliases: make bash compatible
Not POSIX sh compatible due to dsh() using bash arrays
2018-11-20 15:35:05 +00:00
ef4e16fe5b aliases: add gau/gaN git-add shortcuts 2018-11-20 15:07:07 +00:00
43a656ee96 scripts/dpi: add DPI live change script 2018-11-20 15:06:09 +00:00
51c91b4803 polybar: replace i3 bar with polybar 2018-11-18 22:22:59 +00:00
1a6c9dedc0 alacritty: update config for 0.2.3 2018-11-18 22:22:10 +00:00
820c355722 Remove --geometry flag from termite 2018-11-14 11:18:57 +00:00
868454c26a Remove GTK3 rounded corners 2018-11-14 11:17:06 +00:00
5185349b8c Remove borders & increase padding/gaps 2018-11-14 11:17:06 +00:00
bedead5cda git: fix global gitignore 2018-11-08 22:26:44 +00:00
e140647ba7 profile: remove XAUTHORITY override
For some reason it prevents X from starting in some cases.
Perhaps more research in the future to fix it
2018-11-07 15:00:55 +00:00
acf3e57c74 aliases: replace pacaur with yay 2018-11-06 18:44:14 +00:00
8f089165ab i3: start pulseaudio as a user service 2018-11-06 17:50:19 +00:00
add6050146 i3: replace i3lock with lightdm 2018-11-06 17:50:19 +00:00
4cb02a72da compton: use tryone144/compton dual_kawase blur 2018-11-06 17:50:16 +00:00
861ee18775 i3: format & minor cleanup 2018-11-05 20:19:44 +00:00
30cab7d90b xprofile: split xinitrc into xprofile
Finally adding "proper" display-manager support instead
of just using the xlogin shim service that isn't a proper
login session
2018-11-04 00:23:34 +00:00
56229dea13 vim: auto-resize splits on window resize 2018-11-03 23:05:44 +00:00
3471454e8e alacritty: add config to match termite/urxvt 2018-11-03 22:55:09 +00:00
fc8bfb220b xdg: add mimeapps.list for default applications 2018-11-03 22:44:39 +00:00
abe83d85c4 zsh: use feature/redrawhook for z-sy-hl 2018-11-03 22:44:09 +00:00
cfe95eb879 aliases: inline one-line function aliases 2018-10-31 21:51:52 +00:00
c03170a4ef aliases: use default viewer for PDFs 2018-10-31 21:50:09 +00:00
60b52ffc29 zsh: recolour/restyle git-rprompt 2018-10-31 21:48:57 +00:00
944d64a5e6 zsh: simplify RPROMPT return code 2018-10-31 21:44:57 +00:00
01abda43c3 aliases: fix env alias for interactive use 2018-10-31 17:26:36 +00:00
1894a6f965 aliases: disable calc globbing *yay* 2018-10-31 17:24:37 +00:00
990b9ffb30 aliases: mcd accepts paths with spaces
Even though heathens put spaces in file/directory names
2018-10-31 17:22:17 +00:00
927fdb5660 zsh: define empty highlight array 2018-10-31 16:47:19 +00:00
2c3d0edc28 aliases: add zl='zfs list' alias w/ completion 2018-10-30 20:23:48 +00:00
6e7f2f1074 aliases: add gcn override 2018-10-30 20:23:11 +00:00
e0db65a9d8 profile: add weechat XDG dir override 2018-10-30 13:17:11 +00:00
216737535e dunst: update icon path for Adwaita fallback 2018-10-22 21:50:42 +01:00
c5cd1cf36e vim: add Puppet/Vala syntax highlighting 2018-10-22 21:26:31 +01:00
863de0d0ef screenshot: replace imgur-screenshot with self-hosted alt 2018-10-22 21:25:04 +01:00
ebe00b192a zsh: split git RPROMPT into separate plugin 2018-10-20 13:42:18 +01:00
0e4b0aee25 zsh: add pkgfile command-not-found for Arch 2018-10-20 13:40:28 +01:00
8b1f6aaa01 i3: fix move/change window bindings
THIS EXPLAINS SO MUCH
I THOUGHT I WAS GOING MAD
2018-10-20 13:37:04 +01:00
12a46db7dd profile: add debian PATH support -_- 2018-10-19 15:07:09 +01:00
e4bc126708 git: add diff-highlight script for portability 2018-10-19 15:03:52 +01:00
a619593815 zsh: re-style highlighting somewhat 2018-10-19 14:49:55 +01:00
51edd3ddf7 zsh: use async for zsh-autosuggestions 2018-10-19 14:46:19 +01:00
f17a34c65a zsh: rebind vi-mode for dvorak 2018-10-19 14:45:52 +01:00
3dbc78c03b vim: fix dhtn navigation in :Explore 2018-10-19 14:44:31 +01:00
f37cf0f49b vim: always remove ~/.vim from rtp 2018-10-19 11:57:19 +01:00
abed398b07 vim: fix netrwhist file location 2018-10-19 11:51:24 +01:00
d0fee7b959 gtk3: increase terminal padding 2018-10-19 11:50:50 +01:00
f1371b67db mailnag: initial configuration 2018-10-19 11:15:35 +01:00
eb88ac1c04 aliases: override wget hsts-file path 2018-10-01 16:27:26 +01:00
38f0f8ccec aliases: move ls alias to group 2018-10-01 16:26:55 +01:00
289e31b65a profile: add PYTHONHISTFILE override 2018-10-01 16:26:27 +01:00
700dfdda6f git: Use diff-highlight for diff/patches 2018-10-01 16:25:15 +01:00
a3c0e5d7de zsh: improve highlighting & keybinds 2018-10-01 16:22:03 +01:00
580b9e33b5 aliases: fix dsh exec arguments 2018-08-21 17:31:21 +01:00
bbf329eb70 profile: add DISPLAY & XAUTHORITY to dbus 2018-08-21 13:35:50 +01:00
09be200c9c xdg: ~ is now desktop 2018-08-21 13:35:16 +01:00
650ff6e0c1 aliases: fix dsh/drsh usage/error bugs 2018-08-21 13:34:43 +01:00
89e325c503 rofi-{emoji;fontawesome}: use -normal-window for pickers 2018-07-30 09:38:59 +01:00
7b1bd4f808 i3/powermenu: left-align all entries 2018-07-30 09:38:25 +01:00
3b85967614 i3: start thunderbird on boot 2018-07-30 09:37:55 +01:00
eeb90bd2e3 latexmk: add config for xelatex 2018-07-30 09:37:34 +01:00
972ee067ab wallpaper: invoke feh to change wallpaper 2018-07-30 09:32:14 +01:00
5d3eb76075 aliases: split alpine-sdk and add more aliases 2018-07-30 09:31:18 +01:00
7f8c8eccb3 zsh: improve <ESC><ESC> sudo action with vim 2018-07-30 09:30:03 +01:00
815da41076 vim: improve VimTex experience 2018-07-30 09:29:22 +01:00
66e0bf911b zsh: replace perl pwd with POSIX sed variant 2018-07-30 09:29:00 +01:00
2562a50f89 zsh: use vim mode 2018-07-30 09:28:27 +01:00
5c705fde91 zsh: clean up directory handling 2018-07-30 09:26:31 +01:00
f0e6807814 rofi: adjust colour and window size 2018-07-30 09:23:07 +01:00
dbbb533850 i3: add fontawesome picker keybind 2018-07-30 09:16:15 +01:00
a057c840cd fontconfig: use sans/monospace defaults 2018-07-30 09:15:50 +01:00
c89a3829dc i3/blocks: update icons and configuration 2018-07-30 09:15:11 +01:00
f0508fe73e gopass: auto-confirm new transactions 2018-07-30 09:12:36 +01:00
59a138c605 dunst: add Xenlism-Wildfire icon path 2018-07-30 09:11:44 +01:00
e4e62ae40d fontconfig: Update fontawesome, remove nerdfonts 2018-07-30 09:11:24 +01:00
28dda3e9b0 git: Remove diff-so-fancy 2018-07-30 09:09:15 +01:00
c260a480aa Reinstate zsh-history-substring-search alongside fzf
This reverts commit e854d2b1d5.
2018-07-12 10:58:15 +01:00
94c3cb5741 aliases: add UID to dalpine 2018-06-23 23:49:11 +01:00
3bcb38f9f2 rofi: update to use rasi theming 2018-06-15 10:13:56 +01:00
d7f1a2193d gopass: update to 1.8.0 2018-06-11 13:31:50 +01:00
1418a51626 qt: fix GTK styling for QT5 2018-06-11 13:31:48 +01:00
7597a300f4 profile: Improve busybox/ash compatibility 2018-06-11 04:11:58 +01:00
f1a353aed5 rofi: fix hi-dpi scaling
See also: https://github.com/DaveDavenport/rofi/issues/815
2018-06-05 23:15:27 +01:00
2b2e963c2a aliases: dalpine uses spritsail/alpine now 2018-05-29 01:22:23 +01:00
b7ef22f4f6 i3: Alias Alt Mod1 as $mod 2018-05-29 01:21:53 +01:00
9b89946ea4 Add Breeze Obsidian as X11 cursor 2018-05-29 01:18:44 +01:00
e854d2b1d5 Remove zsh-history-substring-search for fzf 2018-05-20 16:40:58 +01:00
b59607c147 dunst: re-enable notification icons 2018-05-11 18:06:11 +01:00
24cf4ac494 vim: migrate from Vundle to vim-plug 2018-04-23 01:10:05 +01:00
fc4560b31f compton: improve blur on fading/exiting windows 2018-04-21 02:14:12 +01:00
c164577bd7 zsh: add nullglob option 2018-04-21 01:43:32 +01:00
2b631fb2cd Remove .fehbg script 2018-04-21 01:33:52 +01:00
40c3f61819 Remove broken ANSI codes from 'env' 2018-04-21 01:14:16 +01:00
c0420a7022 Add a more relevant README
Addresses #1
2018-04-21 01:10:10 +01:00
1c297d3a77 Reorganise many directories into XDG dirs 2018-04-21 01:03:48 +01:00
ae1acb194c vim: create missing directories on startup 2018-04-21 00:20:51 +01:00
73ecd1f584 Suppress tty output for busybox compatibility 2018-04-21 00:15:17 +01:00
ff4bdb5ec2 Only start Vim with --servername if supported 2018-04-21 00:10:30 +01:00
4579473479 Add $GOPATH/bin to PATH 2018-04-20 23:58:53 +01:00
fff7fa1452 Fix typo 'emoij' in rofi-emoji 2018-04-17 11:34:21 +01:00
1d590fe8c6 Add rofi-fontawesome picker variation 2018-04-17 11:33:34 +01:00
223034a3ea rofi-emoji: add various updates 2018-04-12 03:20:08 +01:00
5bb7c53519 vim: bind fzf and NERDTree 2018-04-12 03:00:02 +01:00
8edf74dc4f vim: make syntastic actually usable 2018-04-12 02:59:23 +01:00
366873ea47 vim: use chktex for latex/syntastic 2018-04-12 02:52:07 +01:00
e09e7105dd vim: correctly use XDG dirs 2018-04-12 02:51:32 +01:00
b512bace44 procps: add top config 2018-04-12 02:42:53 +01:00
69d884ec5f fontconfig: tweak fonts after Noto fiasco 2018-04-12 02:39:58 +01:00
3f16439695 X11: remove redundant xsession file 2018-04-12 02:29:27 +01:00
8edd378b66 X11/xdg: migrate to XDG_CONFIG_DIR 2018-04-11 17:42:42 +01:00
1bc7dd7845 zsh: move zsh into .config 2018-04-11 16:42:01 +01:00
ebc435ad33 vim: unmap Q from ex mode 2018-04-05 11:25:42 +01:00
121 changed files with 3054 additions and 2125 deletions

View File

@ -1,96 +0,0 @@
!!=============================================================================
!! RXVT-unicode setting
!!=============================================================================
urxvt.depth: 32
urxvt.internalBorder: 4
urxvt.blurRadius: 25
urxvt.scrollBar: false
urxvt.saveLines: 10000
urxvt.preeditType: Root
urxvt.jumpScroll: false
urxvt.altSendsEscape: true
xterm.metaSendsEscape: true
!Set TERM
urxvt.termName: xterm-256color
Xft.dpi: 96
Xft.antialias: true
Xft.rgba: rgb
Xft.autohint: false
Xft.hinting: true
Xft.hintstyle: hintfull
urxvt*font: xft:Sauce Code Pro:style=Regular:size=9
urxvt*imFont: xft:Sauce Code Pro:style=Regular:size=9
urxvt*boldFont: xft:Sauce Code Pro:style=Bold:size=9
urxvt*italicFont: xft:Sauce Code Pro:style=Italic:size=9
urxvt*boldItalicFont: xft:Sauce Code Pro:style=Bold,Italic:size=9
! clickable Url and copy paste keys
urxvt.iso14755: false
urxvt.iso14755_52: false
urxvt.perl-ext-common: default,clipboard,vtwheel,font-size
urxvt.keysym.Shift-Control-C: perl:clipboard:copy
urxvt.keysym.Shift-Control-V: perl:clipboard:paste
urxvt.url-launcher: /usr/bin/chromium
urxvt.matcher.button: 1
urxvt.keysym.C-Up: font-size:increase
urxvt.keysym.C-Down: font-size:decrease
urxvt.keysym.C-S-Up: font-size:incglobal
urxvt.keysym.C-S-Down: font-size:decglobal
Xft.lcdfilter: lcddefault
! special
*.foreground: #ECEFF1
*.background: #002B36
!*.cursorColor: #ECEFF1
*.cursorColor: #5294E2
*.highlightColor: #5294E2
urxvt.background: [95]#383C4A
urxvt.scrollColor: #767B87
urxvt*dynamicColors: on
urxvt*highlightSelection: true
urxvt*colorMode: on
! black
*.color0: #333638
!white
*.color15: #eceff1
! gray
*.color7: #8b9396
*.color8: #475760
! red
*.color1: #ff3f00
*.color9: #ef5345
! green
*.color2: #8bc34a
*.color10: #9ccc65
! yellow
*.color3: #ffc107
*.color11: #ffa000
! blue
*.color4: #0266f4
*.color12: #3f86da
! magenta
*.color5: #cc17cc
*.color13: #a56ecC
! cyan
*.color6: #10aeba
*.color14: #5ddae2

View File

@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# Run all system xinitrc shell scripts
xinitdir="/etc/X11/xinit/xinitrc.d"
@ -11,8 +11,12 @@ if [ -d "$xinitdir" ]; then
done
fi
source ~/.profile
source ~/.xsession
xrdb -merge ~/.Xresources
# Source generic xprofile stuff
source "$(dirname "${BASH_SOURCE[0]}")/xprofile"
# Start the gnome-keyring if it's installed
if exists gnome-keyring-daemon; then
export $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gnupg)
fi
exec i3

18
.config/X11/xprofile Normal file
View File

@ -0,0 +1,18 @@
#!/bin/sh
# Graphical-specific environment variables
export TERMINAL="termite"
export BROWSER="chromium"
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel"
export QT_QPA_PLATFORMTHEME=gtk2
export QT_STYLE_OVERRIDE=gtk2
export XDG_CURRENT_DESKTOP="GNOME" # Fixes xdg-open
# Load Xorg resources and set the DPI
xrdb -merge $XDG_CONFIG_HOME/X11/xresources
xrandr --dpi $(xrdb -query | grep -i xft.dpi | cut -d: -f2)
setxkbmap -option caps:none
xset r rate 200 18
xmodmap "$XDG_CONFIG_HOME"/X11/xmodmap

89
.config/X11/xresources Normal file
View File

@ -0,0 +1,89 @@
! Colour order:
! black
! red
! green
! yellow
! blue
! magenta
! cyan
! white/gray
! Normal colours
*.color0: #333638
*.color1: #f41f1c
*.color2: #8bc34a
*.color3: #ffc107
*.color4: #0266f4
*.color5: #cc17cc
*.color6: #10aeba
*.color7: #8b9396
! Bright colours
*.color8: #475760
*.color9: #e53727
*.color10: #9ccc65
*.color11: #ffa000
*.color12: #81b3f9
*.color13: #a56ecc
*.color14: #5ddae2
*.color15: #eceff1
Xft.dpi: 96
Xft.antialias: true
Xft.rgba: rgb
Xft.hinting: true
Xft.hintstyle: hintfull
Xft.lcdfilter: lcddefault
Xcursor.theme: Breeze_Obsidian
!!======================!!
!! RXVT-unicode setting !!
!!======================!!
urxvt.depth: 32
urxvt.internalBorder: 16
urxvt.blurRadius: 25
urxvt.saveLines: 10000
urxvt.preeditType: Root
urxvt.scrollBar: false
urxvt.jumpScroll: false
urxvt.scrollTtyOutput: false
urxvt.scrollWithBuffer: true
urxvt.scrollTtyKeypress: true
urxvt.altSendsEscape: true
xterm.metaSendsEscape: true
urxvt.termName: xterm-256color
urxvt.font: xft:Source Code Pro:style=regular:size=9
urxvt.imFont: xft:Source Code Pro:style=regular:size=9
urxvt.boldFont: xft:Source Code Pro:style=bold:size=9
urxvt.italicFont: xft:Source Code Pro:style=italic:size=9
urxvt.boldItalicFont: xft:Source Code Pro:style=bold,italic:size=9
urxvt.iso14755: false
urxvt.iso14755_52: false
urxvt.perl-ext-common: default,vtwheel,font-size
urxvt.url-launcher: /usr/bin/chromium
urxvt.matcher.button: 1
urxvt.keysym.C-Up: font-size:increase
urxvt.keysym.C-Down: font-size:decrease
urxvt.keysym.C-equal: font-size:reset
urxvt.keysym.C-slash: font-size:show
! special
*.foreground: #ECEFF1
*.background: #002B36
*.cursorColor: #5294E2
*.highlightColor: #5294E2
urxvt.background: [95]#383C4A
urxvt.scrollColor: #767B87
urxvt.dynamicColors: on
urxvt.highlightSelection: true
urxvt.colorMode: on

View File

@ -0,0 +1,647 @@
# 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: 22
y: 22
# 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
# 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: 9.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: true
# Colors (Tomorrow Night Bright)
colors:
# Default colors
primary:
foreground: '#eceff1'
background: '#383c4a'
# 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: '#9a9a9a'
#bright_foreground: '#ffffff'
# 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: '#eceff1'
cursor: '#5294e2'
# Vi mode cursor colors
#
# Colors for the cursor when the vi mode is active. If these are unset, the
# cursor color will be the inverse of the cell color.
#vi_mode_cursor:
# text: '#000000'
# cursor: '#ffffff'
# 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: '#eaeaea'
background: '#5294e2'
# Normal colors
normal:
black: '#333638'
red: '#f41f1c'
green: '#8bc34a'
yellow: '#ffc107'
blue: '#0266f4'
magenta: '#cc17cc'
cyan: '#10aeba'
white: '#8b9396'
# Bright colors
bright:
black: '#475760'
red: '#e53727'
green: '#9ccc65'
yellow: '#ffa000'
blue: '#81b3f9'
magenta: '#a56ecc'
cyan: '#5ddae2'
white: '#eceff1'
# Dim colors
#
# If the dim colors are not set, they will be calculated automatically based
# on the `normal` colors.
#dim:
# black: '#000000'
# red: '#8c3336'
# green: '#7a8530'
# yellow: '#97822e'
# blue: '#506d8f'
# magenta: '#80638e'
# cyan: '#497e7a'
# white: '#9a9a9a'
# 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: '#ff00ff' }`
#
#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: '#ffffff'
# 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: 0.85
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
# Vi mode cursor style
#
# If the vi mode cursor style is `None` or not specified, it will fall back to
# the style of the active value of the normal cursor.
#
# See `cursor.style` for available options.
#vi_mode_style: None
# 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
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
#
# - ToggleViMode
# - Copy
# - Paste
# - PasteSelection
# - IncreaseFontSize
# - DecreaseFontSize
# - ResetFontSize
# - ScrollPageUp
# - ScrollPageDown
# - ScrollLineUp
# - ScrollLineDown
# - ScrollToTop
# - ScrollToBottom
# - ClearHistory
# - Hide
# - Minimize
# - Quit
# - ToggleFullscreen
# - SpawnNewInstance
# - ClearLogNotice
# - ClearSelection
# - ReceiveChar
# - None
#
# (`mode: Vi` only):
# - Open
# - Up
# - Down
# - Left
# - Right
# - First
# - Last
# - FirstOccupied
# - High
# - Middle
# - Low
# - SemanticLeft
# - SemanticRight
# - SemanticLeftEnd
# - SemanticRightEnd
# - WordRight
# - WordLeft
# - WordRightEnd
# - WordLeftEnd
# - Bracket
# - ToggleNormalSelection
# - ToggleLineSelection
# - ToggleBlockSelection
# - ToggleSemanticSelection
#
# (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:
- { key: Paste, action: Paste }
- { key: Copy, action: Copy }
#- { key: L, mods: Control, action: ClearLogNotice }
#- { key: L, mods: Control, mode: ~Vi, chars: "\x0c" }
#- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp, }
#- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
#- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop, }
#- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
# Vi Mode
#- { key: Space, mods: Shift|Control, mode: Vi, action: ScrollToBottom }
#- { key: Space, mods: Shift|Control, action: ToggleViMode }
#- { key: Escape, mode: Vi, action: ClearSelection }
#- { key: I, mode: Vi, action: ScrollToBottom }
#- { key: I, mode: Vi, action: ToggleViMode }
#- { key: Y, mods: Control, mode: Vi, action: ScrollLineUp }
#- { key: E, mods: Control, mode: Vi, action: ScrollLineDown }
#- { key: G, mode: Vi, action: ScrollToTop }
#- { key: G, mods: Shift, mode: Vi, action: ScrollToBottom }
#- { key: B, mods: Control, mode: Vi, action: ScrollPageUp }
#- { key: F, mods: Control, mode: Vi, action: ScrollPageDown }
#- { key: U, mods: Control, mode: Vi, action: ScrollHalfPageUp }
#- { key: D, mods: Control, mode: Vi, action: ScrollHalfPageDown }
#- { key: Y, mode: Vi, action: Copy }
#- { key: V, mode: Vi, action: ToggleNormalSelection }
#- { key: V, mods: Shift, mode: Vi, action: ToggleLineSelection }
#- { key: V, mods: Control, mode: Vi, action: ToggleBlockSelection }
#- { key: V, mods: Alt, mode: Vi, action: ToggleSemanticSelection }
#- { key: Return, mode: Vi, action: Open }
#- { key: K, mode: Vi, action: Up }
#- { key: J, mode: Vi, action: Down }
#- { key: H, mode: Vi, action: Left }
#- { key: L, mode: Vi, action: Right }
#- { key: Up, mode: Vi, action: Up }
#- { key: Down, mode: Vi, action: Down }
#- { key: Left, mode: Vi, action: Left }
#- { key: Right, mode: Vi, action: Right }
#- { key: Key0, mode: Vi, action: First }
#- { key: Key4, mods: Shift, mode: Vi, action: Last }
#- { key: Key6, mods: Shift, mode: Vi, action: FirstOccupied }
#- { key: H, mods: Shift, mode: Vi, action: High }
#- { key: M, mods: Shift, mode: Vi, action: Middle }
#- { key: L, mods: Shift, mode: Vi, action: Low }
#- { key: B, mode: Vi, action: SemanticLeft }
#- { key: W, mode: Vi, action: SemanticRight }
#- { key: E, mode: Vi, action: SemanticRightEnd }
#- { key: B, mods: Shift, mode: Vi, action: WordLeft }
#- { key: W, mods: Shift, mode: Vi, action: WordRight }
#- { key: E, mods: Shift, mode: Vi, action: WordRightEnd }
#- { key: Key5, mods: Shift, mode: Vi, action: Bracket }
# (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: ResetFontSize }
- { 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: K, mods: Command, mode: ~Vi, chars: "\x0c" }
#- { 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: 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: N, mods: Command, action: SpawnNewInstance }
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
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: Info
# Print all received window events.
#print_events: false

View File

@ -0,0 +1 @@
--enable-features=NativeNotifications,OverlayScrollbar

View File

@ -1,93 +0,0 @@
# Shadow
shadow = true; # Enabled client-side shadows on windows.
no-dock-shadow = true; # Avoid drawing shadows on dock/panel windows.
no-dnd-shadow = false; # Don't draw shadows on DND windows.
clear-shadow = true; # Zero the part of the shadow's mask behind the
# window. Fix some weirdness with ARGB windows.
shadow-radius = 12; # The blur radius for shadows. (default 12)
shadow-offset-x = -16; # The left offset for shadows. (default -15)
shadow-offset-y = -16; # The top offset for shadows. (default -15)
shadow-opacity = 0.65; # The translucency for shadows. (default .75)
# shadow-red = 0.0; # Red color value of shadow. (0.0 - 1.0, defaults to 0)
# shadow-green = 0.0; # Green color value of shadow. (0.0 - 1.0, defaults to 0)
# shadow-blue = 0.0; # Blue color value of shadow. (0.0 - 1.0, defaults to 0)
shadow-exclude = [ "class_g = 'slop'" ]; # Exclude conditions for shadows.
shadow-ignore-shaped = false; # Avoid drawing shadow on all shaped windows
# (see also: --detect-rounded-corners)
# Opacity
menu-opacity = 0.9; # The opacity for menus. (default 1.0)
inactive-opacity = 0.8; # Default opacity of inactive windows. (0.0 - 1.0)
active-opacity = 1.0; # Default opacity for active windows. (0.0 - 1.0)
frame-opacity = 1.0; # Opacity of window titlebars and borders. (0.1 - 1.0)
inactive-opacity-override = true; # Let inactive opacity set by 'inactive-opacity' overrides
# value of _NET_WM_OPACITY. Bad choice.
opacity-rule = [
"0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
];
alpha-step = 0.06; # XRender backend: Step size for alpha pictures. Increasing
# it may result in less X resource usage,
# Yet f ading may look bad.
# inactive-dim = 0.2; # Dim inactive windows. (0.0 - 1.0)
#inactive-dim-fixed = true; # Do not let dimness adjust based on window opacity.
inactive-opacity-exclude = [ "window_type = 'dock'", "window_type = 'desktop'" ];
blur-background = true; # Blur background of transparent windows.
blur-background-exclude = [ "class_g = 'Peek'", "class_g = 'Onboard'", "class_g = 'slop'" ];
blur-background-frame = false; # Blur background of opaque windows with transparent
# frames as well.
blur-background-fixed = true; # Do not let blur radius adjust based on window opacity.
# Exclude conditions for background blur.
blur-kern = "5,5,0.894839,0.932912,0.945959,0.932912,0.894839,0.932912,0.972604,0.986207,0.972604,0.932912,0.945959,0.986207,0.986207,0.945959,0.932912,0.972604,0.986207,0.972604,0.932912,0.894839,0.932912,0.945959,0.932912,0.894839"
# python compton-convgen.py --dump-compton gaussian 9 -f=sigma=10
# Fading
fading = true; # Fade windows during opacity changes.
# fade-delta = 16; # The time between steps in a fade in milliseconds. (default 10).
fade-in-step = 0.025; # Opacity change between steps while fading in. (default 0.028).
fade-out-step = 0.02; # Opacity change between steps while fading out. (default 0.03).
# no-fading-openclose = true; # Avoid fade windows in/out when opening/closing.
# fade-exclude = [ ]; # Exclude conditions for fading.
# Other
backend = "glx" # Backend to use: "xrender" or "glx". GLX backend is typically
# much faster but depends on a sane driver.
mark-wmwin-focused = true; # Try to detect WM windows and mark them as active.
mark-ovredir-focused = true; # Mark all non-WM but override-redirect windows active (e.g. menus).
use-ewmh-active-win = true; # Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused
# instead of using FocusIn/Out events. Usually more reliable but
# depends on a EWMH-compliant WM.
detect-rounded-corners = true; # Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on.
detect-client-opacity = true; # Detect _NET_WM_OPACITY on client windows, useful for window
# managers not passing _NET_WM_OPACITY of client windows to frame windows.
refresh-rate = 0; # For --sw-opti: Specify refresh rate of the screen. 0 for auto.
vsync = "none"; # "none", "drm", "opengl", "opengl-oml", "opengl-swc", "opengl-mswc"
# See man page for more details.
dbe = false; # Enable DBE painting mode. Rarely needed.
paint-on-overlay = true; # Painting on X Composite overlay window. Recommended.
sw-opti = false; # Limit compton to repaint at most once every 1 / refresh_rate.
# Incompatible with certain VSync methods.
unredir-if-possible = false; # Unredirect all windows if a full-screen opaque window is
# detected, to maximize performance for full-screen windows.
focus-exclude = [ "i:ai:chromium" ]; # A list of conditions of windows that should always be considered focused.
detect-transient = true; # Use WM_TRANSIENT_FOR to group windows, and consider windows in
# the same group focused at the same time.
detect-client-leader = true; # Use WM_CLIENT_LEADER to group windows.
invert-color-include = [ ]; # Conditions for windows to be painted with inverted color.
# GLX backend # GLX backend fine-tune options. See man page for more info.
glx-no-stencil = true; # Recommended.
glx-copy-from-front = false; # Useful with --glx-swap-method,
# glx-use-copysubbuffermesa = true; # Recommended if it works. Breaks VSync.
# glx-no-rebind-pixmap = true; # Recommended if it works.
glx-swap-method = "undefined"; # See man page.
# Window type settings
wintypes:
{
tooltip = { fade = true; shadow = false; opacity = 1; focus = true; };
# fade: Fade the particular type of windows.
# shadow: Give those windows shadow
# opacity: Default opacity for the type of windows.
# focus: Whether to always consider windows of this type focused.
};

View File

@ -1,5 +1,5 @@
[global]
font = Noto Sans 10
font = sans 9.5
# Allow a small subset of html markup:
# <b>bold</b>
@ -11,7 +11,7 @@
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
# If markup is not allowed, those tags will be stripped out of the
# message.
markup = yes
markup = full
# The format of the message. Possible variables are:
# %a appname
@ -21,7 +21,7 @@
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# Markup is allowed
format = "<b>%s</b>\n%b"
format = "<b>%s %p</b>\n%b"
# Sort messages by urgency.
sort = yes
@ -51,7 +51,6 @@
# Ignore newlines '\n' in notifications.
ignore_newline = no
# The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window.
@ -66,16 +65,16 @@
# screen width minus the width defined in within the geometry option.
# 53 = 30 + 23 (bar-height)
geometry = "300x5-30+52"
geometry = "360x5-30+30"
# Shrink window if it's smaller than the width. Will be ignored if
# width is 0.
shrink = no
shrink = yes
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing windowmanager is
# present (e.g. xcompmgr, compiz, etc.).
# transparency = 10
transparency = 15
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
@ -103,7 +102,7 @@
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
history_length = 100
# Display indicators for URLs (U) and actions (A).
show_indicators = no
@ -119,10 +118,10 @@
separator_height = 2
# Padding between text and separator.
padding = 12
padding = 15
# Horizontal padding.
horizontal_padding = 20
horizontal_padding = 16
# Define a color for the separator.
# possible values are:
@ -144,12 +143,14 @@
browser = /usr/bin/chromium
# Align icons left/right/off
icon_position = off
icon_position = left
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 44
# Paths to default icons.
icon_folders = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
frame_width = 3
icon_path = /usr/share/icons/Xenlism-Wildfire/Status/:/usr/share/icons/Xenlism-Wildfire/Devices/:/usr/share/icons/Adwaita/32x32/status:/usr/share/icons/Adwaita/32x32/devices
frame_width = 0
frame_color = "#404552"
[shortcuts]

View File

@ -2,43 +2,38 @@
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match>
<test name="family">
<string>sans-serif</string>
</test>
<edit name="family" mode="prepend" binding="weak">
<test qual="any" name="family"><string>sans-serif</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Sans</string>
<string>Noto Color Emoji</string>
<string>FontAwesome 5 Pro Light</string>
</edit>
</match>
<match>
<test name="family">
<string>serif</string>
</test>
<edit name="family" mode="prepend" binding="weak">
<test qual="any" name="family"><string>serif</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Serif</string>
<string>Noto Color Emoji</string>
<string>FontAwesome 5 Pro Light</string>
</edit>
</match>
<match>
<test name="family">
<string>monospace</string>
</test>
<edit name="family" mode="prepend" binding="weak">
<string>Sauce Code Pro</string>
<test qual="any" name="family"><string>monospace</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>Source Code Pro</string>
<string>Noto Color Emoji</string>
<string>FontAwesome 5 Pro Light</string>
</edit>
</match>
<match>
<test name="family">
<string>Apple Color Emoji</string>
</test>
<edit name="family" mode="prepend" binding="weak">
<string>Noto Color Emoji</string>
</edit>
<match target="font">
<test qual="all" name="family" compare="eq"><string>Noto Sans</string></test>
<edit name="hintstyle" mode="assign"><const>hintnone</const></edit>
</match>
<match target="font">
<edit name="hintstyle" mode="assign">
<const>hintfull</const>
</edit>
<test qual="all" name="family" compare="eq"><string>Source Code Pro</string></test>
<edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
<edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
<edit name="rgba" mode="assign"><const>rgb</const></edit>
</match>
</fontconfig>

View File

@ -4,18 +4,21 @@
signingkey = CFBB6A86
[core]
autocrlf = input
excludesfile = $HOME/.config/git/gitignore
pager = diff-so-fancy | less
excludesfile = /home/frebib/.config/git/gitignore
pager = diff-highlight | $PAGER
[interactive]
diffFilter = diff-highlight
[commit]
gpgsign = true
[fetch]
prune = true
[push]
default = upstream
[pull]
rebase = true
prune = true
[rebase]
autoStash = true
[log]
date = relative
[format]
pretty = format:%h %Cblue%ad%Creset %ae %Cgreen%s%Creset
[alias]
@ -23,6 +26,7 @@
pushall = !git remote | xargs -L1 git push
count = !echo $(pwd) && git rev-list HEAD --count
unpushed = !git log --oneline @{u}..HEAD
leaders = !git shortlog -s -n --all --no-merges
[advice]
statusHints = false
pushUpdateRejected = false
@ -35,8 +39,6 @@
suppresscc = self
[diff]
algorithm = patience
[interactive]
diffFilter = diff-so-fancy --patch-mode
[color]
ui = true
[color "diff"]
@ -51,7 +53,5 @@
oldHighlight = red 88
newNormal = green
newHighlight = green 22
[diff-so-fancy]
changeHunkIndicators = false
# vim: noet

35
.config/gopass/config.yml Normal file
View File

@ -0,0 +1,35 @@
root:
askformore: false
autoclip: false
autoimport: true
autosync: true
check_recipient_hash: false
cliptimeout: 45
concurrency: 1
editrecipients: false
nocolor: false
noconfirm: true
nopager: false
notifications: false
path: gpgcli-gitcli-fs+file:///home/frebib/.local/share/pass
recipient_hash: {}
safecontent: false
usesymbols: false
mounts:
spritsail:
askformore: false
autoclip: false
autoimport: true
autosync: true
check_recipient_hash: false
cliptimeout: 45
concurrency: 1
editrecipients: false
nocolor: false
noconfirm: true
nopager: false
notifications: false
path: gpgcli-gitcli-fs+file:///home/frebib/.local/share/pass-spritsail
recipient_hash: {}
safecontent: false
usesymbols: false

View File

@ -1,5 +1,15 @@
VteTerminal,
TerminalScreen,
vte-terminal {
padding: 6px;
padding: 1.8em;
}
.window-frame, .window-frame:backdrop {
margin: 0;
border-style: none;
border-radius: 0;
}
.titlebar {
border-radius: 0;
}

View File

@ -1,19 +0,0 @@
#!/bin/bash
# ================================================================================== #
# Focus the next window on the current workspace in i3, e.g. for binding to Alt+Tab #
# Depends: jq, awk, i3wm (obviously) #
# Author: Nervengift <dev@nerven.gift> #
# License: Don't think this deserves a license, Public Domain #
# Known bugs: doesn't work with non-window container focused #
# ================================================================================== #
ws=$(i3-msg -t get_workspaces|jq "map(select(.focused))[]|.name")
echo $ws
windows=$(i3-msg -t get_tree|jq ".nodes|map(.nodes[])|map(.nodes[])|map(select(.type==\"workspace\" and .name==$ws))[0].nodes|map(recurse(.nodes[]))|map(.window)|.[]|values")
echo $windows
current=$(i3-msg -t get_tree|jq "recurse(.nodes[])|select(.focused)|.window")
echo $current
if [ "x$current" != "xnull" ]; then
next=$(echo $windows | awk "BEGIN {RS=\" \";FS=\" \"};NR == 1 {w=\$1};{if (f == 1){w=\$1;f=0}else if (\$1 == \"$current\") f=1};END {print w}")
i3-msg [id=$next] focus > /dev/null
fi

View File

@ -1,90 +0,0 @@
#!/bin/bash
# Copyright (C) 2012 Stefan Breunig <stefan+measure-net-speed@mathphys.fsk.uni-heidelberg.de>
# Copyright (C) 2014 kaueraal
# Copyright (C) 2015 Thiago Perrotta <perrotta dot thiago at poli dot ufrj dot br>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Use the provided interface, otherwise the device used for the default route.
if [[ -n $BLOCK_INSTANCE ]]; then
INTERFACE=$BLOCK_INSTANCE
else
INTERFACE=$(ip route | awk '/^default/ { print $5 ; exit }')
fi
# Issue #36 compliant.
if ! [ -e "/sys/class/net/${INTERFACE}/operstate" ] || ! [ "`cat /sys/class/net/${INTERFACE}/operstate`" = "up" ]
then
echo "$INTERFACE down"
echo "$INTERFACE down"
echo "#FF0000"
exit 0
fi
# path to store the old results in
path="/dev/shm/$(basename $0)-${INTERFACE}"
# grabbing data for each adapter.
read rx < "/sys/class/net/${INTERFACE}/statistics/rx_bytes"
read tx < "/sys/class/net/${INTERFACE}/statistics/tx_bytes"
# get time
time=$(date +%s)
# write current data if file does not exist. Do not exit, this will cause
# problems if this file is sourced instead of executed as another process.
if ! [[ -f "${path}" ]]; then
echo "${time} ${rx} ${tx}" > "${path}"
chmod 0666 "${path}"
fi
# read previous state and update data storage
read old < "${path}"
echo "${time} ${rx} ${tx}" > "${path}"
# parse old data and calc time passed
old=(${old//;/ })
time_diff=$(( $time - ${old[0]} ))
# sanity check: has a positive amount of time passed
[[ "${time_diff}" -gt 0 ]] || exit
# calc bytes transferred, and their rate in byte/s
rx_diff=$(( $rx - ${old[1]} ))
tx_diff=$(( $tx - ${old[2]} ))
rx_rate=$(( $rx_diff / $time_diff ))
tx_rate=$(( $tx_diff / $time_diff ))
# shift by 10 bytes to get KiB/s. If the value is larger than
# 1024^2 = 1048576, then display MiB/s instead
# incoming
echo -n " "
rx_kib=$(( $rx_rate >> 10 ))
if [[ "$rx_rate" -gt 1048576 ]]; then
printf '%sk' "`echo "scale=1; $rx_kib / 1024" | bc`"
else
echo -n "${rx_kib}k"
fi
echo -n " "
# outgoing
echo -n " "
tx_kib=$(( $tx_rate >> 10 ))
if [[ "$tx_rate" -gt 1048576 ]]; then
printf '%sm' "`echo "scale=1; $tx_kib / 1024" | bc`"
else
echo -n "${tx_kib}k"
fi

View File

@ -1,97 +0,0 @@
#!/usr/bin/perl
#
# Copyright 2014 Pierre Mavro <deimos@deimos.fr>
# Copyright 2014 Vivien Didelot <vivien@didelot.org>
#
# Licensed under the terms of the GNU GPL v3, or any later version.
#
# This script is meant to use with i3blocks. It parses the output of the "acpi"
# command (often provided by a package of the same name) to read the status of
# the battery, and eventually its remaining time (to full charge or discharge).
#
# The color will gradually change for a percentage below 85%, and the urgency
# (exit code 33) is set if there is less that 5% remaining.
use strict;
use warnings;
use Switch;
my $acpi;
my $status;
my $percent;
my $hours = -1;
my $mins;
my $full_text;
my $short_text;
my $bat_number = $ENV{BLOCK_INSTANCE} || 0;
# read the first line of the "acpi" command output
open (ACPI, "acpi -b | grep 'Battery $bat_number' |") or die;
$acpi = <ACPI>;
close(ACPI);
# fail on unexpected output
if ($acpi !~ /: (\w+), (\d+)%/) {
die "$acpi\n";
}
$status = $1;
$percent = $2;
if ($acpi =~ /, (\d+):(\d+)/) {
$hours = $1;
$mins = $2;
}
if ($status eq 'Discharging') {
if ($percent <= 10) {
$full_text = "";
} elsif ($percent <= 40) {
$full_text = "";
} elsif ($percent <= 75) {
$full_text = "";
} else {
$full_text = "";
}
} elsif ($status eq 'Charging') {
$full_text = '';
} else {
$full_text = '';
}
$full_text .= " $percent%";
$short_text = $full_text;
switch($ENV{BLOCK_BUTTON} || 0) {
case "1" {
if ($hours lt 0) {
$full_text .= " Charged";
} else {
$full_text .= " ($hours:$mins";
if ($status eq 'Discharging') {
$full_text .= ")";
} else {
$full_text .= " until full)";
}
}
}
case "4" { system("light -U -l 1") }
case "5" { system("light -A -l 1") }
}
# print text
print "$full_text\n";
print "$short_text\n";
# consider color and urgent flag only on discharge
if ($status eq 'Discharging') {
if ($percent < 20) {
print "#FF0000\n";
} elsif ($percent < 40) {
print "#FFCB00\n";
}
}
exit(0);

View File

@ -1,5 +0,0 @@
case $BLOCK_BUTTON in
1) printf " "$(date '+%d/%m/%y') ; exit ;;
2|3) i3-sensible-terminal -r i3blocks-clock-term --geometry 68x35 -e "$SHELL -c \"cal -y $(date +'%Y');$SHELL\"" &>/dev/null & ;;
*) printf " "$(date '+%H:%M')
esac

View File

@ -1,100 +0,0 @@
# i3blocks config file
#
# Please see man i3blocks for a complete reference!
# The man page is also hosted at http://vivien.github.io/i3blocks
#
# List of valid properties:
#
# align
# color
# command
# full_text
# instance
# interval
# label
# min_width
# name
# separator
# separator_block_width
# short_text
# signal
# urgent
# Global properties
#
# The top properties below are applied to every block, but can be overridden.
# Each block command defaults to the script name to avoid boilerplate.
command=~/.config/i3/blocks/$BLOCK_NAME
markup=none
#full_text=
align=center
color=#F3F4F5
separator=false
separator_block_width=12
#[window title]
#command=xtitle -s #| sed 's/^$/ /g'"
#color=#A6D1FA
#align=center
#min_width=700
#interval=persist
[volume]
interval=persist
signal=10
[separator]
[iface]
label=
interval=60
signal=15
[separator]
[updates]
label=
interval=600
signal=5
[separator]
[cpu_usage]
label=
interval=persist
[separator]
[memory]
label=
interval=10
[separator]
[temperature]
label=
interval=5
[separator]
[rotation]
interval=once
[separator]
[keyboard]
label=
interval=30
[separator]
[battery]
interval=30
signal=11
[separator]
[clock]
interval=5
min_width=" 00:00"

View File

@ -1,31 +0,0 @@
#!/bin/bash
# by Paul Colby (http://colby.id.au), no rights reserved ;)
# https://github.com/Leo-G/DevopsWiki/wiki/How-Linux-CPU-Usage-Time-and-Percentage-is-calculated
PREV_TOTAL=0
PREV_IDLE=0
while true; do
# Get the total CPU statistics, discarding the 'cpu ' prefix.
CPU=(`sed -n 's/^cpu\s//p' /proc/stat`)
IDLE=${CPU[3]} # Just the idle CPU time.
# Calculate the total CPU time.
TOTAL=0
for VALUE in "${CPU[@]}"; do
let "TOTAL=$TOTAL+$VALUE"
done
# Calculate the CPU usage since we last checked.
let "DIFF_IDLE=$IDLE-$PREV_IDLE"
let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL"
let "DIFF_USAGE=(1000*($DIFF_TOTAL-$DIFF_IDLE)/$DIFF_TOTAL+5)/10"
echo -e "$DIFF_USAGE%\n$DIFF_USAGE%"
# Remember the total and idle CPU times for the next check.
PREV_TOTAL="$TOTAL"
PREV_IDLE="$IDLE"
# Wait before checking again.
sleep 1
done

View File

@ -1,41 +0,0 @@
#!/bin/sh
# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
DIR="${BLOCK_INSTANCE:-$HOME}"
ALERT_LOW="${1:-10}" # color will turn red under this value (default: 10%)
df -h -P -l "$DIR" | awk -v alert_low=$ALERT_LOW '
/\/.*/ {
# full text
print $4
# short text
print $4
use=$5
# no need to continue parsing
exit 0
}
END {
gsub(/%$/,"",use)
if (100 - use < alert_low) {
# color
print "#FF0000"
}
}
'

View File

@ -1,62 +0,0 @@
#!/bin/bash
# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
# Copyright (C) 2014 Alexander Keller <github@nycroth.com>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#------------------------------------------------------------------------
# Use the provided interface, otherwise the device used for the default route.
if [[ -n $BLOCK_INSTANCE ]]; then
IF=$BLOCK_INSTANCE
else
IF=$(ip route | awk '/^default/ { print $5 ; exit }')
fi
#------------------------------------------------------------------------
# As per #36 -- It is transparent: e.g. if the machine has no battery or wireless
# connection (think desktop), the corresponding block should not be displayed.
[[ ! -d /sys/class/net/${IF} ]] && exit
#------------------------------------------------------------------------
if [[ -z $IF ]] || [[ "$(cat /sys/class/net/$IF/operstate)" = 'down' ]]; then
echo down # full text
echo down # short text
echo \#FF0000 # color
exit
fi
case $1 in
-4) AF=inet ;;
-6) AF=inet6 ;;
*) AF=inet6? ;;
esac
# if no interface is found, use the first device with a global scope
LOCIP=$(ip addr show $IF | perl -n -e "/$AF ([^\/]+).* scope global/ && print \$1 and exit")
#------------------------------------------------------------------------
case $BLOCK_BUTTON in
1) curl -s https://api.ipify.org;
break;;
2) curl -s https://api.ipify.org | tee >(xclip -i);
break;;
0|3) echo "$LOCIP" | tee >(xclip -i);
break;;
*) echo "$LOCIP"
break;;
esac

View File

@ -1,10 +0,0 @@
#!/bin/sh
[[ $BLOCK_BUTTON -eq 1 ]] && `$DOTFILES/scripts/togglekeyboard`
layout=$(setxkbmap -query | grep 'layout:' | awk '{print $2}')
variant=$(setxkbmap -query | grep 'variant:' | awk '{print $2}')
short=`([ "$variant" ] && echo $variant || echo $layout) | cut -c1-2`
echo -e "$short\n$short" | awk '{print toupper($0)}'

View File

@ -1,70 +0,0 @@
#!/usr/bin/perl
#
# Copyright 2014 Marcelo Cerri <mhcerri at gmail dot com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
use strict;
use warnings;
use utf8;
use Getopt::Long;
use File::Basename;
# Default values
my $indicator = $ENV{BLOCK_INSTANCE} || "CAPS";
my $color_on = "#00FF00";
my $color_off = "#222222";
sub help {
my $program = basename($0);
printf "Usage: %s [-c <color on>] [-C <color off>]\n", $program;
printf " -c <color on>: hex color to use when indicator is on\n";
printf " -C <color off>: hex color to use when indicator is off\n";
printf "\n";
printf "Note: environment variable \$BLOCK_INSTANCE should be one of:\n";
printf " CAPS, NUM (default is CAPS).\n";
exit 0;
}
Getopt::Long::config qw(no_ignore_case);
GetOptions("help|h" => \&help,
"c=s" => \$color_on,
"C=s" => \$color_off) or exit 1;
# Key mapping
my %indicators = (
CAPS => 0x00000001,
NUM => 0x00000002,
);
# Retrieve key flags
my $mask = 0;
open(XSET, "xset -q |") or die;
while (<XSET>) {
if (/LED mask:\s*([0-9]+)/) {
$mask = $1;
last;
}
}
close(XSET);
# Output
printf "%s\n", $indicator;
printf "%s\n", $indicator;
if (($indicators{$indicator} || 0) & $mask) {
printf "%s\n", $color_on;
} else {
printf "%s\n", $color_off;
}
exit 0

View File

@ -1,34 +0,0 @@
#!/bin/sh
# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
load="$(cut -d ' ' -f1 /proc/loadavg)"
cpus="$(nproc)"
# full text
echo "$load"
# short text
echo "$load"
# color if load is too high
awk -v cpus=$cpus -v cpuload=$load '
BEGIN {
if (cpus <= cpuload) {
print "#FF0000";
exit 33;
}
}
'

View File

@ -1,76 +0,0 @@
#!/usr/bin/perl
# Copyright (C) 2014 Tony Crisci <tony@dubstepdish.com>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Requires playerctl binary to be in your path (except cmus)
# See: https://github.com/acrisci/playerctl
# Set instance=NAME in the i3blocks configuration to specify a music player
# (playerctl will attempt to connect to org.mpris.MediaPlayer2.[NAME] on your
# DBus session).
use Env qw(BLOCK_INSTANCE);
my @metadata = ();
my $player_arg = "";
if ($BLOCK_INSTANCE) {
$player_arg = "--player='$BLOCK_INSTANCE'";
}
if ($ENV{'BLOCK_BUTTON'} == 1) {
system("playerctl $player_arg previous");
} elsif ($ENV{'BLOCK_BUTTON'} == 2) {
system("playerctl $player_arg play-pause");
} elsif ($ENV{'BLOCK_BUTTON'} == 3) {
system("playerctl $player_arg next");
}
if ($player_arg eq '' or $player_arg =~ /cmus$/) {
# try cmus first
my @cmus = split /^/, qx(cmus-remote -Q);
if ($? == 0) {
foreach my $line (@cmus) {
my @data = split /\s/, $line;
if (shift @data eq 'tag') {
my $key = shift @data;
my $value = join ' ', @data;
@metadata[0] = $value if $key eq 'artist';
@metadata[1] = $value if $key eq 'title';
}
}
if (@metadata) {
# metadata found so we are done
print(join ' - ', @metadata);
exit 0;
}
}
# if cmus was given, we are done
exit 0 unless $player_arg eq '';
}
my $artist = qx(playerctl $player_arg metadata artist);
# exit status will be nonzero when playerctl cannot find your player
exit(0) if $?;
push(@metadata, $artist) if $artist;
my $title = qx(playerctl $player_arg metadata title);
exit(0) if $?;
push(@metadata, $title) if $title;
print(join(" - ", @metadata)) if @metadata;

View File

@ -1,65 +0,0 @@
#!/bin/sh
# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
TYPE="${BLOCK_INSTANCE:-mem}"
if [ $BLOCK_BUTTON -gt 0 ]; then
i3-sensible-terminal -r floating-term --geometry 100x54 -e 'top -d 0.1'
fi
awk -v type=$TYPE '
BEGIN {
swap_total=1
mem_total=1
}
/^MemTotal:/ {
mem_total=$2
}
/^MemFree:/ {
mem_free=$2
}
/^Buffers:/ {
mem_free+=$2
}
/^Cached:/ {
mem_free+=$2
}
/^SwapTotal:/ {
swap_total=$2
}
/^SwapFree:/ {
swap_free=$2
}
END {
if (type == "swap") {
swap_perc = (swap_total - swap_free) / swap_total * 100
printf("%.0f%\n", swap_perc)
printf("%.0f%\n", swap_perc)
perc = swap_perc
}
else{
mem_perc = (mem_total - mem_free) / mem_total * 100
printf("%.0f%\n", mem_perc)
printf("%.0f%\n", mem_perc)
perc = mem_perc
}
if (perc > 80)
print "#FFCB00"
else if (perc > 60)
print "#FFCB00"
}
' /proc/meminfo

View File

@ -1,149 +0,0 @@
#!/usr/bin/perl
# Made by Pierre Mavro/Deimosfr <deimos@deimos.fr>
# Licensed under the terms of the GNU GPL v3, or any later version.
# Version: 0.2
# Usage:
# 1. The configuration name of OpenVPN should be familiar for you (home,work...)
# 2. The device name in your configuration file should be fully named (tun0,tap1...not only tun or tap)
# 3. When you launch one or multiple OpenVPN connexion, be sure the PID file is written in the correct folder (ex: --writepid /run/openvpn/home.pid)
use strict;
use warnings;
use utf8;
use Getopt::Long;
my $openvpn_enabled='/dev/shm/openvpn_i3blocks_enabled';
my $openvpn_disabled='/dev/shm/openvpn_i3blocks_disabled';
# Print output
sub print_output {
my $ref_pid_files = shift;
my @pid_files = @$ref_pid_files;
my $change=0;
# Total pid files
my $total_pid = @pid_files;
if ($total_pid == 0) {
print "VPN: down\n"x2;
# Delete OpenVPN i3blocks temp files
if (-f $openvpn_enabled) {
unlink $openvpn_enabled or die "Can't delete $openvpn_enabled\n";
# Colorize if VPN has just went down
print '#FF0000\n';
}
unless (-f $openvpn_disabled) {
open(my $shm, '>', $openvpn_disabled) or die "Can't write $openvpn_disabled\n";
}
exit(0);
}
# Check if interface device is present
my $vpn_found=0;
my $pid;
my $cmd_line;
my @config_name;
my @config_path;
my $interface;
my $current_config_path;
my $current_config_name;
foreach (@pid_files) {
# Get current PID
$pid=0;
open(PID, '<', $_);
while(<PID>) {
chomp $_;
$pid = $_;
}
close(PID);
# Check if PID has been found
if ($pid ==0) {
print "Can't get PID $_: $!\n";
}
# Check if PID is still alive
$cmd_line='/proc/'.$pid.'/cmdline';
if (-f $cmd_line) {
# Get config name
open(CMD_LINE, '<', $cmd_line);
while(<CMD_LINE>) {
chomp $_;
if ($_ =~ /--config\s*(.*\.conf)/) {
# Get interface from config file
$current_config_path = $1;
# Remove unwanted escape chars
$current_config_path =~ s/\x{00}//g;
$interface = 'null';
# Get configuration name
if ($current_config_path =~ /(\w+).conf/) {
$current_config_name=$1;
} else {
$current_config_name='unknow';
}
# Get OpenVPN interface device name
open(CONFIG, '<', $current_config_path) or die "Can't read config file '$current_config_path': $!\n";
while(<CONFIG>) {
chomp $_;
if ($_ =~ /dev\s+(\w+)/) {
$interface=$1;
last;
}
}
close(CONFIG);
# check if interface exist
unless ($interface eq 'null') {
if (-d "/sys/class/net/$interface") {
push @config_name, $current_config_name;
$vpn_found=1;
# Write enabled file
unless (-f $openvpn_enabled) {
open(my $shm, '>', $openvpn_enabled) or die "Can't write $openvpn_enabled\n";
$change=1;
}
}
}
}
}
close(CMD_LINE);
}
}
# Check if PID found
my $names;
my $short_status;
if ($vpn_found == 1) {
$names = join('/', @config_name);
$short_status='up';
} else {
$short_status='down';
$names = $short_status;
}
print "VPN: $names\n";
print "VPN: $short_status\n";
# Print color if there were changes
print "#00FF00\n" if ($change == 1);
exit(0);
}
sub check_opts {
# Vars
my @pid_file=glob '/run/openvpn/*.pid';
# Set options
GetOptions( "help|h" => \&help,
"p=s" => \@pid_file);
print_output(\@pid_file);
}
sub help {
print "Usage: openvpn [-d pid folder files]\n";
print "-d : pid folder files (default /run/openvpn/*.pid)\n";
print "Note: devices in configuration file should be named with their number (ex: tun0, tap1)\n";
exit(1);
}
&check_opts;

View File

@ -1,20 +0,0 @@
#!/bin/sh
lock="/tmp/rotlock"
[[ -e $lock ]] || echo "unlocked" > "$lock"
status=$(<$lock)
if [ $BLOCK_BUTTON -gt 0 ]; then
case $status in
"unlocked") status="locked" ;;
"locked") status="unlocked";;
esac
echo $status > "$lock"
fi
case $status in
"locked") echo "";;
"unlocked") echo "";;
esac

View File

@ -1,69 +0,0 @@
#!/usr/bin/perl
# Copyright 2014 Pierre Mavro <deimos@deimos.fr>
# Copyright 2014 Vivien Didelot <vivien@didelot.org>
# Copyright 2014 Andreas Guldstrand <andreas.guldstrand@gmail.com>
# Copyright 2014 Benjamin Chretien <chretien at lirmm dot fr>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
use strict;
use warnings;
use utf8;
use Getopt::Long;
binmode(STDOUT, ":utf8");
# default values
my $t_warn = 70;
my $t_crit = 90;
my $chip = "coretemp-isa-0000";
my $temperature = -9999;
sub help {
print "Usage: temperature [-w <warning>] [-c <critical>] [--chip <chip>]\n";
print "-w <percent>: warning threshold to become yellow\n";
print "-c <percent>: critical threshold to become red\n";
print "--chip <chip>: sensor chip\n";
exit 0;
}
GetOptions("help|h" => \&help,
"w=i" => \$t_warn,
"c=i" => \$t_crit,
"chip=s" => \$chip);
# Get chip temperature
open (SENSORS, "sensors -u $chip |") or die;
while (<SENSORS>) {
if (/^\s+temp1_input:\s+[\+]*([\-]*\d+\.\d)/) {
$temperature = $1;
last;
}
}
close(SENSORS);
$temperature eq -9999 and die 'Cannot find temperature';
# Print short_text, full_text
print int($temperature)."°c\n" x2;
# Print color, if needed
if ($temperature >= $t_crit) {
print "#FF0000\n";
exit 33;
} elsif ($temperature >= $t_warn) {
print "#FFFC00\n";
}
exit 0;

View File

@ -1,27 +0,0 @@
#!/bin/bash
CARDS=$(pacmd list-cards | grep -e index: -e alsa.card_name | xargs -n5 | awk '{print $2}')
if [[ ${#CARDS} != 3 ]]; # there is a space
then
echo "This script works only with 2 outputs, and you have ..."
pacmd list-cards | grep -e index: -e alsa.card_name | xargs -n5
exit
fi
i=1
for card_index in $CARDS ;
do
eval CARD$i=$card_index
let i+=1
done
LAST_SINK_LINE=$(pacmd list-sink-inputs | grep -e index: -e sink: | xargs -n5 | tail -n1)
last_sink_app_index=$( echo $LAST_SINK_LINE | awk '{print $2}' )
last_sink_out_index=$( echo $LAST_SINK_LINE | awk '{print $4}' )
[[ ${last_sink_out_index} == ${CARD1} ]] && new_sink_out=$CARD2 || new_sink_out=$CARD1
#echo "$last_sink_app_index > $last_sink_out_index > ${new_sink_out}"
pacmd move-sink-input ${last_sink_app_index} ${new_sink_out}

View File

@ -1,31 +0,0 @@
#!/bin/bash
set -e
for p in trizen pacaur yaourt pacman; do
if $p --version &>/dev/null; then
PAC="$p"
break;
fi
done
if [ -z "$PAC" ]; then
>&2 echo "Error: No Arch package manager found?"
fi
if [ "$BLOCK_BUTTON" == 1 ]; then
nohup i3-sensible-terminal -r i3blocks-update-term -e "sh -c '$PAC -Syu || exec zsh; pkill -RTMIN+5 i3blocks'" &>/dev/null &
disown
fi
if [ $p = "pacman" ]; then
exec 3< <(checkupdates)
else
exec 3< <({ checkupdates & cower -u & })
fi
count="$(wc -l <&3)"
if [ -n "$count" -a "$count" -gt 0 ]; then
echo $count
echo $count
fi

View File

@ -1,182 +0,0 @@
#!/bin/bash
# Displays the default device, volume, and mute status for i3blocks
AUDIO_HIGH_SYMBOL=' '
AUDIO_MED_THRESH=59
AUDIO_MED_SYMBOL=' '
AUDIO_LOW_THRESH=0
AUDIO_LOW_SYMBOL=' '
AUDIO_MUTED_SYMBOL='X'
AUDIO_INTERVAL=5
DEFAULT_COLOR="#ffffff"
MUTED_COLOR="#a0a0a0"
LONG_FORMAT=0
SHORT_FORMAT=3
USE_PERCENT=0
USE_ALSA_NAME=0
USE_DESCRIPTION=0
SUBSCRIBE=1
while getopts F:Sf:padH:M:L:X:T:t:C:c:i:m:s:h opt; do
case "$opt" in
S) SUBSCRIBE=1 ;;
F) LONG_FORMAT="$OPTARG" ;;
f) SHORT_FORMAT="$OPTARG" ;;
p) USE_PERCENT=0 ;;
a) USE_ALSA_NAME=1 ;;
d) USE_DESCRIPTION=1 ;;
H) AUDIO_HIGH_SYMBOL="$OPTARG" ;;
M) AUDIO_MED_SYMBOL="$OPTARG" ;;
L) AUDIO_LOW_SYMBOL="$OPTARG" ;;
X) AUDIO_MUTED_SYMBOL="$OPTARG" ;;
T) AUDIO_MED_THRESH="$OPTARG" ;;
t) AUDIO_LOW_THRESH="$OPTARG" ;;
C) DEFAULT_COLOR="$OPTARG" ;;
c) MUTED_COLOR="$OPTARG" ;;
i) AUDIO_INTERVAL="$OPTARG" ;;
m) MIXER="$OPTARG" ;;
s) SCONTROL="$OPTARG" ;;
h) printf \
"Usage: volume-pulseaudio [-S] [-F format] [-f format] [-p] [-a|-d] [-H symb] [-M symb]
[-L symb] [-X symb] [-T thresh] [-t thresh] [-C color] [-c color] [-i inter]
[-m mixer] [-s scontrol] [-h]
Options:
-F, -f\tOutput format (-F long format, -f short format) to use, amongst:
\t0\t symb vol [index:name]\t (default long)
\t1\t symb vol [name]
\t2\t symb vol [index]\t (default short)
\t3\t symb vol
-S\tSubscribe to volume events (requires persistent block, always uses long format)
-p\tOmit the percent sign (%%) in volume
-a\tUse ALSA name if possible
-d\tUse device description instead of name if possible
-H\tSymbol to use when audio level is high. Default: '$AUDIO_HIGH_SYMBOL'
-M\tSymbol to use when audio level is medium. Default: '$AUDIO_MED_SYMBOL'
-L\tSymbol to use when audio level is low. Default: '$AUDIO_LOW_SYMBOL'
-X\tSymbol to use when audio is muted. Default: '$AUDIO_MUTED_SYMBOL'
-T\tThreshold for medium audio level. Default: $AUDIO_MED_THRESH
-t\tThreshold for low audio level. Default: $AUDIO_LOW_THRESH
-C\tColor for non-muted audio. Default: $DEFAULT_COLOR
-c\tColor for muted audio. Default: $MUTED_COLOR
-i\tInterval size of volume increase/decrease. Default: $AUDIO_INTERVAL
-m\tUse the given mixer.
-s\tUse the given scontrol.
-h\tShow this help text
" && exit 0;;
esac
done
if [[ -z "$MIXER" ]] ; then
MIXER="default"
if amixer -D pulse info >/dev/null 2>&1 ; then
MIXER="pulse"
fi
fi
if [[ -z "$SCONTROL" ]] ; then
SCONTROL=$(amixer -D "$MIXER" scontrols | sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | head -n1)
fi
CAPABILITY=$(amixer -D $MIXER get $SCONTROL | sed -n "s/ Capabilities:.*cvolume.*/Capture/p")
function move_sinks_to_new_default {
DEFAULT_SINK=$1
pacmd list-sink-inputs | grep index: | grep -o '[0-9]\+' | while read SINK
do
pacmd move-sink-input $SINK $DEFAULT_SINK
done
}
function set_default_playback_device_next {
inc=${1:-1}
num_devices=$(pacmd list-sinks | grep -c index:)
sink_arr=($(pacmd list-sinks | grep index: | grep -o '[0-9]\+'))
default_sink_index=$(( $(pacmd list-sinks | grep index: | grep -no '*' | grep -o '^[0-9]\+') - 1 ))
default_sink_index=$(( ($default_sink_index + $num_devices + $inc) % $num_devices ))
default_sink=${sink_arr[$default_sink_index]}
pacmd set-default-sink $default_sink
move_sinks_to_new_default $default_sink
}
case "$BLOCK_BUTTON" in
1) set_default_playback_device_next ;;
2) amixer -q -D $MIXER sset $SCONTROL $CAPABILITY toggle ;;
3) set_default_playback_device_next -1 ;;
4) amixer -q -D $MIXER sset $SCONTROL $CAPABILITY $AUDIO_INTERVAL%+ ;;
5) amixer -q -D $MIXER sset $SCONTROL $CAPABILITY $AUDIO_INTERVAL%- ;;
esac
function print_format {
PERCENT="%"
[[ $USE_PERCENT == 0 ]] && PERCENT=""
case "$1" in
1) echo "$SYMBOL$VOL$PERCENT [$NAME]" ;;
2) echo "$SYMBOL$VOL$PERCENT [$INDEX]";;
3) echo "$SYMBOL$VOL$PERCENT" ;;
*) echo "$SYMBOL$VOL$PERCENT [$INDEX:$NAME]" ;;
esac
}
function print_block {
for name in INDEX NAME VOL MUTED; do
read $name
done < <(pacmd list-sinks | grep "index:\|name:\|volume: front\|muted:" | grep -A3 '*')
INDEX=$(echo "$INDEX" | grep -o '[0-9]\+')
VOL=$(echo "$VOL" | grep -o "[0-9]*%" | head -1 )
VOL="${VOL%?}"
NAME=$(echo "$NAME" | sed \
's/.*<.*\.\(.*\)>.*/\1/; t;'\
's/.*<\(.*\)>.*/\1/; t;'\
's/.*/unknown/')
if [[ $USE_ALSA_NAME == 1 ]] ; then
ALSA_NAME=$(pacmd list-sinks |\
awk '/^\s*\*/{f=1}/^\s*index:/{f=0}f' |\
grep "alsa.name\|alsa.mixer_name" |\
head -n1 |\
sed 's/.*= "\(.*\)".*/\1/')
NAME=${ALSA_NAME:-$NAME}
elif [[ $USE_DESCRIPTION == 1 ]] ; then
DESCRIPTION=$(pacmd list-sinks |\
awk '/^\s*\*/{f=1}/^\s*index:/{f=0}f' |\
grep "device.description" |\
head -n1 |\
sed 's/.*= "\(.*\)".*/\1/')
NAME=${DESCRIPTION:-$NAME}
fi
if [[ $MUTED =~ "no" ]] ; then
SYMBOL=$AUDIO_HIGH_SYMBOL
[[ $VOL -le $AUDIO_MED_THRESH ]] && SYMBOL=$AUDIO_MED_SYMBOL
[[ $VOL -le $AUDIO_LOW_THRESH ]] && SYMBOL=$AUDIO_LOW_SYMBOL
COLOR=$DEFAULT_COLOR
else
SYMBOL=$AUDIO_MUTED_SYMBOL
COLOR=$MUTED_COLOR
VOL=""
fi
# if [[ $SUBSCRIBE == 1 ]] ; then
# print_format "$LONG_FORMAT"
# else
# print_format "$LONG_FORMAT"
print_format "$SHORT_FORMAT"
# echo "$COLOR"
# fi
}
print_block
if [[ $SUBSCRIBE == 1 ]] ; then
while read -r EVENT; do
print_block
done < <(pactl subscribe | stdbuf -oL grep change)
fi

View File

@ -1,46 +0,0 @@
#!/bin/bash
# Copyright (C) 2014 Alexander Keller <github@nycroth.com>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#------------------------------------------------------------------------
INTERFACE="${BLOCK_INSTANCE:-wlan0}"
#------------------------------------------------------------------------
# As per #36 -- It is transparent: e.g. if the machine has no battery or wireless
# connection (think desktop), the corresponding block should not be displayed.
[[ ! -d /sys/class/net/${INTERFACE}/wireless ]] ||
[[ "$(cat /sys/class/net/$INTERFACE/operstate)" = 'down' ]] && exit
#------------------------------------------------------------------------
QUALITY=$(grep $INTERFACE /proc/net/wireless | awk '{ print int($3 * 100 / 70) }')
#------------------------------------------------------------------------
echo $QUALITY% # full text
echo $QUALITY% # short text
# color
if [[ $QUALITY -ge 80 ]]; then
echo "#00FF00"
elif [[ $QUALITY -lt 80 ]]; then
echo "#FFF600"
elif [[ $QUALITY -lt 60 ]]; then
echo "#FFAE00"
elif [[ $QUALITY -lt 40 ]]; then
echo "#FF0000"
fi

View File

@ -3,25 +3,26 @@
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
set $alt Mod1
floating_modifier $mod
font pango:Noto Sans 9
font pango:sans 9
# kill focused window
bindsym $mod+apostrophe kill
bindsym Mod1+F4 kill
bindsym $alt+F4 kill
# change window focus
bindsym $mod+d focus left
bindsym $mod+n focus right
bindsym $mod+t focus up
bindsym $mod+h focus down
bindsym $mod+t focus up
bindsym $mod+n focus right
# move focused window
bindsym $mod+Shift+d move left
bindsym $mod+Shift+n move down
bindsym $mod+Shift+h move down
bindsym $mod+Shift+t move up
bindsym $mod+Shift+h move right
bindsym $mod+Shift+n move right
# split in horizontal orientation
bindsym $mod+m split h
@ -44,12 +45,21 @@ bindsym $mod+e sticky toggle
bindsym $mod+a focus parent
bindsym $mod+o focus child
set $surf eDP1
set $hdmi HDMI1
# Screen configs #
set $bl "DP-5"
set $tl "DP-1"
set $br "HDMI-0"
set $tr "DP-3"
# Workspace -> Screen
workspace 1 output $hdmi
workspace 5 output $surf
workspace 1 output $bl
workspace 2 output $br
workspace 3 output $tl
workspace 4 output $tr
workspace 5 output $bl
workspace 6 output $br
workspace 7 output $tl
workspace 8 output $tr
# switch to workspace
bindsym $mod+1 workspace 1
@ -64,10 +74,10 @@ bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10
# move workspaces across screens
bindsym $mod+Mod1+d move workspace to output left
bindsym $mod+Mod1+n move workspace to output right
bindsym $mod+Mod1+t move workspace to output up
bindsym $mod+Mod1+h move workspace to output down
bindsym $mod+$alt+d move workspace to output left
bindsym $mod+$alt+n move workspace to output right
bindsym $mod+$alt+t move workspace to output up
bindsym $mod+$alt+h move workspace to output down
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace 1
@ -97,25 +107,7 @@ client.unfocused $inactive-bg-color $inactive-bg-color $inactive-text-co
client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color $bg-color
client.urgent $urgent-bg-color $urgent-bg-color $text-color $bg-color
bar {
status_command i3blocks -c ~/.config/i3/blocks/config
workspace_buttons yes
strip_workspace_numbers yes
tray_output $hdmi
tray_padding 2
position top
height 20
colors {
separator #757575
background #2f343f
# border background text
focused_workspace $bg-color $bg-color $text-color
inactive_workspace $inactive-bg-color $inactive-bg-color $inactive-text-color
urgent_workspace $urgent-bg-color $urgent-bg-color $text-color
}
}
exec_always --no-startup-id feh --no-fehbg --no-xinerama --bg-fill $DOTFILES/lakesidesunrise.jpg
# Window rules
for_window [class="Pinentry"] floating enable
@ -127,67 +119,48 @@ for_window [window_role="i3blocks-update-term"] floating enable
for_window [window_role="i3blocks-clock-term"] floating enable
for_window [title="^rofi$"] floating enable
new_window pixel 5
new_window none
new_float none
gaps inner 7
gaps outer 2
#smart_gaps on
gaps inner 20
gaps outer 4
focus_follows_mouse yes
popup_during_fullscreen smart
# keybindings
bindsym $mod+Shift+j reload
#bindsym $mod+Shift+p restart
bindsym $mod+c exec chromium
bindsym $mod+v exec "i3-sensible-terminal -e \\"$SHELL -c vim;$SHELL\\"
bindsym $mod+Ctrl+v exec "i3-sensible-terminal -r floating-term -e \\"$SHELL -c vim;$SHELL\\"
bindsym Mod1+Tab exec ~/.config/i3/alt-tab.sh
bindsym $mod+Return exec i3-sensible-terminal
bindsym $mod+Ctrl+Return exec i3-sensible-terminal -r floating-term --geometry 96x30
bindsym $mod+Shift+Return exec i3-sensible-terminal -d "`xcwd`"
bindsym $mod+Ctrl+Shift+Return exec i3-sensible-terminal -r floating-term --geometry 96x30 -d "`xcwd`"
bindsym $mod+l exec ~/.config/i3/lock.sh
# -fg "#CCD3DAE3" -bg "#CC383C4A" -hlbg "#CC5294E2"
bindsym $mod+space exec "pkill rofi; rofi -show run -sidebar-mode -terminal i3-sensible-terminal -normal-window"
bindsym $mod+Shift+p exec rofi-pass
bindsym $mod+Shift+e exec rofi-emoji
bindsym --release Print exec imgur-screenshot
bindsym --release $mod+Print exec imgur-screenshot -f
bindsym $mod+Mod1+space exec --no-startup-id ~/.config/i3/cycleaudio.py && pkill -RTMIN+10 i3blocks
bindsym $mod+numbersign exec "termite -e 'sh -c xclip\ -o\ |\ gpg\ --decrypt\ 2>&1\ \;\ $SHELL'"
bindsym $mod+r exec "bash -c 'pwgen -nc 32 1 | tee >(xargs notify-send Generated\ password\:) | xclip -i'"
bindsym $mod+g exec "LINK=$(gist -PRpc); notify-send -c transfer \\"<a href=\\\\"$LINK\\\\">$LINK</a>\\""
bindsym $mod+Shift+j reload
bindsym $mod+c exec systemd-run --user --scope --slice=chromium.slice --no-block -- chromium
bindsym $mod+b exec systemd-run --user --scope --slice=firefox.slice --no-block -- firefox
bindsym $mod+v exec "i3-sensible-terminal -e \\"$SHELL -c vim;$SHELL\\"
bindsym $mod+Ctrl+v exec "i3-sensible-terminal -r floating-term -e \\"$SHELL -c vim;$SHELL\\"
bindsym $mod+Return exec i3-sensible-terminal
bindsym $mod+Ctrl+Return exec i3-sensible-terminal -r floating-term
bindsym $mod+Shift+Return exec i3-sensible-terminal -d "`xcwd`"
bindsym $mod+Ctrl+Shift+Return exec i3-sensible-terminal -r floating-term -d "`xcwd`"
bindsym $mod+l exec dm-tool switch-to-greeter
bindsym $mod+space exec "pkill rofi; rofi -show run -sidebar-mode -terminal i3-sensible-terminal -normal-window"
bindsym $mod+Shift+p exec rofi-pass --root $(grep path ~/.config/gopass/config.yml | sed -E 's|^.*fs\+file://||g' | tr '\n' ':') | sed 's/:$//g'
bindsym $mod+Shift+e exec rofi-emoji
bindsym $mod+Shift+i exec rofi-fontawesome
bindsym --release Print exec screenshot
bindsym --release $mod+Print exec imgur-screenshot
bindsym $mod+$alt+space exec --no-startup-id ~/.config/i3/cycleaudio.py && pkill -RTMIN+10 i3blocks
bindsym $mod+numbersign exec "i3-sensible-terminal -e 'sh -c xclip\ -o\ |\ gpg\ --decrypt\ 2>&1\ \;\ $SHELL'"
bindsym $mod+r exec "bash -c 'pwgen -nc 32 1 | tee >(xargs notify-send Generated\ password\:) | xclip -i'"
bindsym $mod+g exec "LINK=$(gist -PRpc); notify-send -c transfer \\"$LINK\\""
bindsym --release $mod+i exec sh -c 'sleep 0.5 && xdotool type --delay 400 "$(xclip -o -selection clipboard)"'
# Media player controls
bindsym XF86AudioPlay exec --no-startup-id mpc toggle
bindsym XF86AudioPause exec --no-startup-id mpc pause
bindsym XF86AudioStop exec --no-startup-id mpc stop
bindsym XF86AudioNext exec --no-startup-id mpc next
bindsym XF86AudioPrev exec --no-startup-id mpc previous
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +1000
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -1000
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86MonBrightnessUp exec xbacklight -inc 5 && pkill -RTMIN+12 i3blocks
bindsym XF86MonBrightnessDown exec xbacklight -dec 5 && pkill -RTMIN+12 i3blocks
exec --no-startup-id "ip monitor | while read; do pkill -RTMIN+15 i3blocks; done"
# app launch shortcuts
exec --no-startup-id ~/.fehbg
exec --no-startup-id ~/.config/i3/disable-standby-fs.py
exec --no-startup-id xautolock -time 5 -locker ~/.config/i3/lock.sh -nocloseout -nocloseerr
# startup programs
exec --no-startup-id pulseaudio
exec --no-startup-id nextcloud
exec --no-startup-id blueman-applet
exec --no-startup-id redshift
exec --no-startup-id xbindkeys
exec --no-startup-id onboard
exec --no-startup-id compton -b --config ~/.config/compton.conf
exec --no-startup-id chromium --no-startup-window
exec i3-msg 'workspace 1; exec sleep 2 && chromium'
exec i3-msg 'workspace 2; exec i3-sensible-terminal'
bindsym XF86AudioPlay exec --no-startup-id playerctl -a play-pause
bindsym XF86AudioPause exec --no-startup-id playerctl -a pause
bindsym XF86AudioStop exec --no-startup-id playerctl -a stop
bindsym XF86AudioNext exec --no-startup-id playerctl -a next
bindsym XF86AudioPrev exec --no-startup-id playerctl -a previous
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +1000
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -1000
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86MonBrightnessUp exec xbacklight -inc 5 && pkill -RTMIN+12 i3blocks
bindsym XF86MonBrightnessDown exec xbacklight -dec 5 && pkill -RTMIN+12 i3blocks
# vim:ft=i3

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -1,40 +0,0 @@
#!/usr/bin/env bash
icon="$HOME/.config/i3/lock.png"
tmpbg='/tmp/screen.png'
(( $# )) && { icon=$1; }
PX=0
PY=0
# lockscreen image info
R=$(file $icon | grep -o '[0-9]* x [0-9]*')
RX=$(echo $R | cut -d' ' -f 1)
RY=$(echo $R | cut -d' ' -f 3)
RES=$(xrandr --query | grep ' connected primary' | cut -f4 -d' ')
# monitor position/offset
SRX=$(echo $RES | cut -d'x' -f 1) # x pos
SRY=$(echo $RES | cut -d'x' -f 2 | cut -d'+' -f 1) # y pos
SROX=$(echo $RES | cut -d'x' -f 2 | cut -d'+' -f 2) # x offset
SROY=$(echo $RES | cut -d'x' -f 2 | cut -d'+' -f 3) # y offset
PX=$(($SROX + $SRX/2 - $RX/2))
PY=$(($SROY + $SRY/2 - $RY/2))
# screenshot, pixelise and overlay
maim | convert - -scale 5% -scale 2000% $icon -geometry +$PX+$PY -composite -matte $tmpbg
if command mpc 2>&1 1>/dev/null; then
playing=$(mpc status | grep playing | wc -l)
[[ $playing == 1 ]] && mpc pause
fi
i3lock -i "$tmpbg" -n -e
if command mpc 2>&1 1>/dev/null; then
[[ $playing == 1 ]] && mpc play
fi
rm "$tmpbg"

View File

@ -1,9 +1,9 @@
#!/bin/bash
#!/bin/sh
option=$(echo " lock| logout| sleep| hibernate| power off| reboot| windows" | rofi -sep "|" -dmenu -i -p "" -auto-select -hide-scrollbar -monitor 0 -width 8 -lines 6 -location 3 -tokenize false -matching normal | xargs)
option=$(echo "lock|logout|sleep|hibernate|power off|reboot|windows" | rofi -sep "|" -dmenu -i -p "" -auto-select -hide-scrollbar -monitor 0 -width 10 -lines 7 -location 3 -tokenize false -matching normal | xargs)
case $option in
lock) ./lock.sh;;
lock) dm-tool switch-to-greeter;;
logout) i3-msg exit;;
sleep) systemctl suspend;;
hibernate) systemctl hibernate;;

16
.config/latexmk/latexmkrc Normal file
View File

@ -0,0 +1,16 @@
$clean_ext = "bbl run.xml eps-converted-to.pdf";
$pdf_mode = 1;
$pdf_previewer = 'evince';
$latex = 'xetex -shell-escape';
$pdflatex = 'xelatex -shell-escape';
add_cus_dep('glo', 'gls', 0, 'run_makeglossaries');
add_cus_dep('acn', 'acr', 0, 'run_makeglossaries');
sub run_makeglossaries {
if ( $silent ) {
system "makeglossaries -q '$_[0]'";
}
else {
system "makeglossaries '$_[0]'";
};
}

View File

@ -0,0 +1,29 @@
[spamfilterplugin]
filter_text = viagra
[core]
imap_idle_timeout = 10
enabled_plugins = dbusplugin, libnotifyplugin, soundplugin
poll_interval = 10
credentialstore = auto
connectivity_test = auto
autostart = 1
[soundplugin]
soundfile = mailnag.ogg
[libnotifyplugin]
notification_mode = 2
max_visible_mails = 10
[account1]
enabled = 1
name = frebib.net
user = me@frebib.net
password =
server = imappro.zoho.com
port = 993
ssl = 1
imap = 1
idle = 0
folder = INBOX, Spam

42
.config/mimeapps.list Normal file
View File

@ -0,0 +1,42 @@
[Default Applications]
# eog for images
image/bmp=eog.desktop
image/gif=eog.desktop
image/jpeg=eog.desktop
image/jpg=eog.desktop
image/pjpeg=eog.desktop
image/png=eog.desktop
image/svg+xml-compressed=eog.desktop
image/svg+xml=eog.desktop
image/tiff=eog.desktop
image/x-bmp=eog.desktop
image/x-gray=eog.desktop
image/x-icb=eog.desktop
image/x-ico=eog.desktop
image/x-png=eog.desktop
image/x-portable-anymap=eog.desktop
image/x-portable-bitmap=eog.desktop
image/x-portable-graymap=eog.desktop
image/x-portable-pixmap=eog.desktop
# evince for pdfs
application/pdf=evince.desktop
# vim for textual files
application/x-shellscript=vim.desktop
text/english=vim.desktop
text/plain=vim.desktop
text/x-makefile=vim.desktop
# Chromium for web/html
text/html=chromium.desktop
x-scheme-handler/about=chromium.desktop
x-scheme-handler/http=chromium.desktop
x-scheme-handler/https=chromium.desktop
x-scheme-handler/unknown=chromium.desktop
# Various desktop applications
inode/directory=nautilus.desktop
x-scheme-handler/magnet=deluge.desktop
x-scheme-handler/tg=telegramdesktop.desktop

3
.config/npm/npmrc Normal file
View File

@ -0,0 +1,3 @@
prefix=${XDG_DATA_HOME}/npm
cache=${XDG_CACHE_HOME}/npm
tmp=${XDG_RUNTIME_DIR}/npm

100
.config/picom.conf Normal file
View File

@ -0,0 +1,100 @@
# Logging
log-level = "debug";
log-file = "/home/frebib/.local/share/picom.log";
# Shadow
shadow = true;
shadow-radius = 24;
shadow-offset-x = -24;
shadow-offset-y = -24;
shadow-opacity = 0.6;
# shadow-red = 0.0;
# shadow-green = 0.0;
# shadow-blue = 0.0;
shadow-exclude = [
"class_g = 'slop'",
"class_g = 'Conky'",
"class_g ?= 'Notify-osd'",
"class_g = 'Cairo-clock'",
"name = 'Notification'",
"_GTK_FRAME_EXTENTS@:c"
];
# shadow-exclude = "n:e:Notification";
# shadow-exclude-reg = "x10+0+0";
xinerama-shadow-crop = true;
# Opacity
frame-opacity = 1.0;
# active-opacity = 0.8;
inactive-opacity = 0.6;
inactive-opacity-override = true;
# inactive-dim = 0.2;
# inactive-dim-fixed = true;
opacity-rule = [
"0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
];
# Blurring
blur:
{
method = "dual_kawase";
strength = 8;
};
blur-background-frame = true;
blur-background-fixed = true;
blur-background-exclude = [
"class_g = 'Peek'",
"class_g = 'Onboard'",
"class_g = 'slop'",
"class_g = 'Polybar'",
"window_type = 'dock'",
"window_type = 'desktop'",
"_GTK_FRAME_EXTENTS@:c"
];
# Fading
fading = true;
fade-delta = 10;
fade-in-step = 0.03;
fade-out-step = 0.03;
no-fading-openclose = false;
no-fading-destroyed-argb = false;
# fade-exclude = [ ];
# Other
backend = "glx";
mark-wmwin-focused = true;
mark-ovredir-focused = true;
use-ewmh-active-win = false;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 0;
vsync = true;
# sw-opti = true;
# unredir-if-possible = true;
# unredir-if-possible-delay = 5000;
# unredir-if-possible-exclude = [ ];
focus-exclude = [
"i:ai:chromium",
"class_g = 'Firefox'",
];
detect-transient = true;
detect-client-leader = true;
invert-color-include = [ ];
# resize-damage = 1;
# GLX backend
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
xrender-sync-fence = true;
#use-damage = true;
# Window type settings
wintypes:
{
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; }
};

327
.config/polybar/config Normal file
View File

@ -0,0 +1,327 @@
[colours]
background = transparent
text = #eceff1
icon = #147a82
warning = #ffcb00
critical = #bd2c40
urgent = #e53935
[settings]
format-foreground = ${colours.text}
format-background = ${colours.background}
format-spacing = 0
format-margin = 2.5
format-offset = 0
screenchange-reload = true
[bar/i3bar]
monitor = ${env:MONITOR:HDMI-0}
dpi = ${xrdb:Xft.dpi:96}
fixed-center = false
enable-ipc = true
width = 100%
#offset-x = 18px
height = 16pt
bottom = true
radius = 0
font-0 = sans:pixelsize=9;2
font-1 = FontAwesome5ProLight:pixelsize=10;2
foreground = ${colours.text}
background = ${colours.background}
padding-left = 0
padding-right = 2pt
border-size = 0
border-left-size = 16pt
border-right-size = 16pt
border-bottom-size = 8pt
line-size = 0
line-colour = #f00
modules-left = i3
modules-center =
# modules-right = volume updates weather xkeyboard wlan gateway eth memory cpu xbacklight battery cputemp gputemp date
modules-right = volume updates weather wlan gateway eth memory cpu xbacklight battery cputemp gputemp date
tray-position = right
tray-detached = false
tray-background = ${colours.background}
#tray-offset-x = -20
#tray-offset-y = 0
tray-maxsize = 16
tray-padding = 8pt
tray-scale = 1.0
cursor-click = pointer
cursor-scroll = ns-resize
[module/updates]
type = custom/script
exec = $XDG_CONFIG_HOME/polybar/update.sh
tail = true
format-prefix = " "
format-prefix-foreground = ${colours.icon}
click-left = i3-msg exec -- i3-sensible-terminal -r i3blocks-update-term -e "yay && kill -USR1 %pid% || kill --USR1 %pid%"
[module/weather]
type = custom/script
exec = $XDG_CONFIG_HOME/polybar/weather.sh
interval = 120
click-left = i3-msg exec "i3-sensible-terminal -r floating-term -e 'sh -c \"xdotool getactivewindow windowsize 910 680 && curl wttr.in && sleep infinity\"'"
[module/gateway]
type = custom/script
exec = for v in 4 6; do ip -$v r show default | xargs -l1 sh -c 'fping --retry=1 --quiet --iface "$4" "$2"'; done && echo  || echo '%{F#f41f1c}%{F-}'
interval = 2
format-prefix = " "
format-prefix-foreground = ${colours.icon}
[module/xkeyboard]
type = internal/xkeyboard
format = <label-layout> <label-indicator>
format-prefix = " "
format-prefix-foreground = ${colours.icon}
format-prefix-underline = ${colours.background}
label-layout = %name%
label-indicator = %name%
[module/i3]
type = internal/i3
format = <label-state> <label-mode>
index-sort = true
wrapping-scroll = false
; Only show workspaces on the same output as the bar
; pin-workspaces = true
label-mode-padding = 2
label-mode-foreground = ${colours.text}
label-mode-background = ${colours.background}
; focused = Active workspace on focused monitor
label-focused = %index%
label-focused-padding = ${self.label-mode-padding}
label-focused-foreground = ${colours.text}
label-focused-background = ${colours.background}
label-focused-underline = ${colours.background}
; unfocused = Inactive workspace on any monitor
label-unfocused = ${self.label-focused}
label-unfocused-padding = ${self.label-focused-padding}
label-unfocused-foreground= ${colours.icon}
label-unfocused-underline = ${self.label-focused-underline}
; visible = Active workspace on unfocused monitor
label-visible = ${self.label-focused}
label-visible-foreground= ${colours.icon}
label-visible-padding = ${self.label-focused-padding}
label-visible-background = ${self.label-focused-background}
label-visible-underline = ${self.label-focused-underline}
; urgent = Workspace with urgency hint set
label-urgent = ${self.label-focused}
label-urgent-foreground = ${colours.urgent}
label-urgent-padding = ${self.label-focused-padding}
[module/xbacklight]
type = internal/xbacklight
label = %percentage%
format = <label>
format-prefix = " "
format-prefix-foreground = ${colours.icon}
[module/backlight-acpi]
inherit = module/xbacklight
type = internal/backlight
card = intel_backlight
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = " "
format-prefix-foreground = ${colours.icon}
format-underline = ${colours.background}
label = %percentage%%
[module/memory]
type = internal/memory
interval = 2
format-prefix = " "
format-prefix-foreground = ${colours.icon}
label = %percentage_used%%
[module/wlan]
type = internal/network
interface = wlp1s0
interval = 3.0
format-connected = <ramp-signal> <label-connected>
format-connected-underline = ${colours.background}
label-connected = %essid%
format-disconnected =
;format-disconnected = <label-disconnected>
;format-disconnected-underline = ${self.format-connected-underline}
;label-disconnected = %ifname% disconnected
;label-disconnected-foreground = ${colours.icon}
ramp-signal-0 = 
ramp-signal-1 = 
ramp-signal-2 = 
ramp-signal-foreground = ${colours.icon}
[module/eth]
type = internal/network
interface = eth0
interval = 3.0
label-connected = %local_ip%
format-connected-prefix = " "
format-connected-prefix-foreground = ${colours.icon}
format-connected-underline = ${colours.background}
;format-disconnected = RIP
;format-disconnected = <label-disconnected>
;format-disconnected-underline = ${self.format-connected-underline}
;label-disconnected = %ifname% disconnected
label-disconnected-foreground = ${colours.critical}
[module/date]
type = internal/date
interval = 1
label = %{A3:i3-sensible-terminal -r i3blocks-clock-term -e "sh -c \"xdotool getactivewindow windowsize 500 600; cal -y $(date +%Y); stty -echo; exec sleep infinity\"" &:}%date% %time%%{A}
time = %H:%M
time-alt = %a %e %b %Y %H:%M:%S
format-prefix = " "
format-prefix-foreground = ${colours.icon}
[module/volume]
type = internal/pulseaudio
label-volume = %percentage%
format-volume = %{A3:pavucontrol:}<ramp-volume> <label-volume>%{A}
format-muted = %{A3:pavucontrol:}<label-muted>%{A}
label-volume-foreground = ${root.foreground}
format-muted-foreground = ${colours.icon}
ramp-volume-foreground = ${colours.icon}
label-muted = ""
ramp-volume-0 = ""
ramp-volume-1 = ""
ramp-volume-2 = ""
ramp-volume-3 = ""
ramp-volume-4 = ""
ramp-volume-5 = ""
[module/battery]
type = internal/battery
battery = BAT0
adapter = AC0
full-at = 98
format-full = <label-full>
format-charging = <label-charging>
format-discharging = <ramp-capacity> <label-discharging>
format-full-underline = ${self.format-charging-underline}
format-charging-underline = ${colours.background}
format-discharging-underline = ${self.format-charging-underline}
format-full-prefix = " "
format-charging-prefix = " "
ramp-capacity-0 = 
ramp-capacity-1 = 
ramp-capacity-2 = 
ramp-capacity-3 = 
ramp-capacity-4 = 
format-full-prefix-foreground = ${colours.icon}
format-charging-prefix-foreground = ${colours.icon}
ramp-capacity-foreground = ${colours.icon}
ramp-capacity-0-foreground = ${colours.critical}
ramp-capacity-1-foreground = ${colours.warning}
[module/cputemp]
type = internal/temperature
hwmon-path = /sys/devices/platform/nct6775.656/hwmon/hwmon1/temp2_input
base-temperature = 25
format = <ramp> <label>
format-warn = <ramp> <label-warn>
label = %temperature-c%
label-warn = %temperature-c%
label-warn-foreground = ${colours.background}
ramp-0 = 
ramp-1 = 
ramp-2 = 
ramp-3 = 
ramp-4 = 
ramp-5 = 
ramp-foreground = ${colours.icon}
[module/gputemp]
type = custom/script
exec = nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits
interval = 10
label = %output%°C
format-prefix = " "
format-prefix-foreground = ${colours.icon}
[module/powermenu]
type = custom/menu
expand-right = true
label-open = 
label-close = cancel
label-separator = |
label-open-foreground = ${colours.icon}
label-close-foreground = ${colours.background}
label-separator-foreground = ${colours.icon}
menu-0-0 = reboot
menu-0-0-exec = menu-open-1
menu-0-1 = power off
menu-0-1-exec = menu-open-2
menu-1-0 = cancel
menu-1-0-exec = menu-open-0
menu-1-1 = reboot
menu-1-1-exec = sudo reboot
menu-2-0 = power off
menu-2-0-exec = sudo poweroff
menu-2-1 = cancel
menu-2-1-exec = menu-open-0
; vim:ft=dosini

11
.config/polybar/update.sh Executable file
View File

@ -0,0 +1,11 @@
#!/bin/sh
dothething() { count=$( (checkupdates & yay -Qum) 2>/dev/null | wc -l); test $count -gt 0 && echo $count || echo; }
trap 'true' HUP USR1
while true; do
dothething
sleep 120 &
wait
done

136
.config/polybar/weather.sh Executable file
View File

@ -0,0 +1,136 @@
#!/bin/sh
get_icon_day() {
case $1 in
210) echo;; # light thunderstorm
211) echo;; # thunderstorm
500) echo;; # light rain
721) echo;; # haze
800) echo;; # clear sky
801) echo;; # few clouds
802) echo;; # scattered clouds
803) echo;; # broken clouds
804) echo;; # overcast clouds
*) return 1;;
esac
}
get_icon_night() {
case $1 in
210) echo;; # light thunderstorm
211) echo;; # thunderstorm
500) echo;; # light rain
800) echo;; # clear sky
801) echo;; # few clouds
802) echo;; # scattered clouds
803) echo;; # broken clouds
804) echo;; # overcast clouds
*) return 1;;
esac
}
get_icon() {
case $1 in
d) fn=get_icon_day;;
n) fn=get_icon_night;;
esac
if $fn $2; then
return
fi
case $2 in
200) echo;; # thunderstorm with light rain
201) echo;; # thunderstorm with rain
202) echo;; # thunderstorm with heavy rain
210) echo;; # light thunderstorm
211) echo;; # thunderstorm
212) echo;; # heavy thunderstorm
221) echo;; # ragged thunderstorm
230) echo;; # thunderstorm with light drizzle
231) echo;; # thunderstorm with drizzle
232) echo;; # thunderstorm with heavy drizzle
300) echo;; # light intensity drizzle
301) echo;; # drizzle
302) echo;; # heavy intensity drizzle
310) echo;; # light intensity drizzle rain
311) echo;; # drizzle rain
312) echo;; # heavy intensity drizzle rain
313) echo;; # shower rain and drizzle
314) echo;; # heavy shower rain and drizzle
321) echo;; # shower drizzle
500) echo;; # light rain
501) echo;; # moderate rain
502) echo;; # heavy intensity rain
503) echo;; # very heavy rain
504) echo;; # extreme rain
511) echo;; # freezing rain
520) echo;; # light intensity shower rain
521) echo;; # shower rain
522) echo;; # heavy intensity shower rain
531) echo;; # ragged shower rain
600) echo;; # light snow
601) echo;; # snow
602) echo;; # heavy snow
611) echo;; # sleet
612) echo;; # shower sleet
615) echo;; # light rain and snow
616) echo;; # rain and snow
620) echo;; # light shower snow
621) echo;; # shower snow
622) echo;; # heavy shower snow
701) echo;; # mist
711) echo;; # smoke
721) echo;; # haze
741) echo;; # fog
762) echo;; # volcanic ash
781) echo;; # tornado
# 731) echo ;; # sand, dust whirls
# 751) echo ;; # sand
# 761) echo ;; # dust
# 771) echo ;; # squalls
*) echo;;
esac
}
KEY="$OPENWEATHERMAP_API_KEY"
CITY=""
UNITS="metric"
SYMBOL="°"
ICON_COL="147a82"
API="https://api.openweathermap.org/data/2.5"
if [ ! -z $CITY ]; then
if [ "$CITY" -eq "$CITY" ] 2>/dev/null; then
CITY_PARAM="id=$CITY"
else
CITY_PARAM="q=$CITY"
fi
weather=$(curl -sf "$API/weather?appid=$KEY&$CITY_PARAM&units=$UNITS")
else
location=$(curl -sf https://location.services.mozilla.com/v1/geolocate?key=geoclue)
if [ ! -z "$location" ]; then
location_lat="$(echo "$location" | jq '.location.lat')"
location_lon="$(echo "$location" | jq '.location.lng')"
weather=$(curl -sf "$API/weather?appid=$KEY&lat=$location_lat&lon=$location_lon&units=$UNITS")
else
echo "%{F#$ICON_COL}%{F-}"
fi
fi
if [ ! -z "$weather" ]; then
# weather_desc=$(echo "$weather" | jq -r ".weather[0].description")
weather_temp=$(echo "$weather" | jq '.main.temp' | cut -d "." -f 1)
weather_code=$(echo "$weather" | jq -r '.weather[0].id')
time_of_day=$(echo "$weather" | jq -r '.weather[0].icon | split("") | last')
icon=$(get_icon "$time_of_day" "$weather_code")
echo "%{F#$ICON_COL}$icon%{F-} $weather_temp$SYMBOL"
fi

16
.config/procps/toprc Normal file
View File

@ -0,0 +1,16 @@
top's Config File (Linux processes with windows)
Id:i, Mode_altscr=0, Mode_irixps=0, Delay_time=0.100, Curwin=0
Def fieldscur=<3D>&K<><4B><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD>56<35>F<EFBFBD>')*+,-./0128<>?ABCGHIJLMNOPQRSTUVWXYZ[\]^_`abcdefghij
winflags=163638, sortindx=21, maxtasks=0, graph_cpus=1, graph_mems=1
summclr=1, msgsclr=1, headclr=3, taskclr=1
Job fieldscur=<3D><><EFBFBD><EFBFBD><EFBFBD>(<28><>Ļ<EFBFBD>@<<3C><>)*+,-./012568>?ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
winflags=163124, sortindx=0, maxtasks=0, graph_cpus=2, graph_mems=0
summclr=6, msgsclr=6, headclr=7, taskclr=6
Mem fieldscur=<3D><><EFBFBD><<3C><><EFBFBD><EFBFBD><EFBFBD>MBN<42>D34<33><34>&'()*+,-./0125689FGHIJKLOPQRSTUVWXYZ[\]^_`abcdefghij
winflags=163124, sortindx=21, maxtasks=0, graph_cpus=2, graph_mems=0
summclr=5, msgsclr=5, headclr=4, taskclr=5
Usr fieldscur=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)+,-./1234568;<=>?@ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
winflags=163124, sortindx=3, maxtasks=0, graph_cpus=2, graph_mems=0
summclr=3, msgsclr=3, headclr=2, taskclr=3
Fixed_widest=0, Summ_mscale=2, Task_mscale=1, Zero_suppress=0

View File

@ -0,0 +1,42 @@
* {
background-color: transparent;
text-color: #D3DAE3;
border-color: @text-color;
}
window {
border: 0.3em;
border-color: #2f343f;
padding: 0.8em;
background-color: rgba(56, 60, 74, 0.95);
transparency: "real";
}
inputbar {
padding: 0 0 0.3em;
border: 0 0 0.1em;
}
prompt {
padding: 0 0.4em 0 0.2em;
}
listview {
padding: 0.3em 0;
}
element {
padding: 0.1em 0.2em;
}
button {
border: 0 0 0.1em;
border-color: transparent;
}
button.selected.normal {
border-color: @text-color;
}
element.selected.normal {
background-color: rgb(64, 132, 214);
}
/* vim: ft=css sw=2 */

View File

@ -1,26 +0,0 @@
!-----------------------------
! Rofi config
!-----------------------------
! State: 'bg', 'fg', 'bgalt' 'hlbg', 'hlfg'
rofi.color-window: #F2383C4A, #2F343F
rofi.color-normal: #00383C4A, #D3DAE3, #00383C4A, #5294E2, #ECEFF1
rofi.bc: #CC383C4A
rofi.bw: 5
rofi.padding: 8
rofi.lines: 12
rofi.width: 40
rofi.font: Noto Sans 14
rofi.line-margin: 6
rofi.sep: |
rofi.prompt: >
rofi.ssh-command: {terminal} -e "{ssh-client} {host}"
rofi.separator-style: solid
rofi.kb-row-tab: Shift+Tab
rofi.kb-row-select: Tab
rofi.matching: glob
rofi.tokenize: true
rofi.normal-window: true
! vim: ft=xdefaults

145
.config/rofi/config.rasi Normal file
View File

@ -0,0 +1,145 @@
configuration {
theme: "arc-dark";
font: "sans 14";
dpi: 0;
width: 35;
lines: 10;
/* show-icons: true; */
separator-style: "solid";
modi: "window,run,ssh";
kb-row-tab: "Shift-Tab";
kb-row-select: "Tab";
terminal: "i3-sensible-terminal";
matching: "glob";
tokenize: true;
/* columns: 1;*/
/* bw: 1;*/
/* location: 0;*/
/* padding: 5;*/
/* yoffset: 0;*/
/* xoffset: 0;*/
/* fixed-num-lines: true;*/
/* ssh-client: "ssh";*/
/* ssh-command: "{terminal} -e {ssh-client} {host}";*/
/* run-command: "{cmd}";*/
/* run-list-command: "";*/
/* run-shell-command: "{terminal} -e {cmd}";*/
/* window-command: "xkill -id {window}";*/
/* window-match-fields: "all";*/
/* drun-icon-theme: ;*/
/* drun-match-fields: "name,generic,exec,categories";*/
/* disable-history: false;*/
/* sort: false;*/
/* levenshtein-sort: false;*/
/* case-sensitive: false;*/
/* cycle: true;*/
/* sidebar-mode: false;*/
/* eh: 1;*/
/* auto-select: false;*/
/* parse-hosts: false;*/
/* parse-known-hosts: true;*/
/* combi-modi: "window,run";*/
/* m: "-5";*/
/* line-margin: 2;*/
/* line-padding: 1;*/
/* filter: ;*/
/* hide-scrollbar: false;*/
/* fullscreen: false;*/
/* fake-transparency: false;*/
/* dpi: -1;*/
/* threads: 0;*/
/* scrollbar-width: 8;*/
/* scroll-method: 0;*/
/* fake-background: "screenshot";*/
/* window-format: "{w} {i}{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;*/
/* 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";*/
/* kb-move-word-forward: "Alt+f";*/
/* 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,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-page-prev: "Page_Up";*/
/* kb-page-next: "Page_Down";*/
/* kb-row-first: "Home,KP_Home";*/
/* kb-row-last: "End,KP_End";*/
/* kb-screenshot: "Alt+S";*/
/* 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";*/
}
/* vim: ft=css sw=2 */

View File

@ -0,0 +1,10 @@
[Unit]
Description=autocutsel -selection primary
PartOf=graphical-session.target
[Service]
ExecStart=/usr/bin/autocutsel -selection PRIMARY
[Install]
WantedBy=graphical-session.target

View File

@ -0,0 +1,10 @@
[Unit]
Description=autocutsel
PartOf=graphical-session.target
[Service]
ExecStart=/usr/bin/autocutsel
[Install]
WantedBy=graphical-session.target

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/profile.service

View File

@ -0,0 +1,12 @@
[Unit]
Description=Bluetooth Applet
After=graphical-session.target bluetooth.service
Requires=graphical-session.target bluetooth.service
[Service]
Type=simple
ExecStart=/usr/bin/blueman-applet
Restart=on-failure
[Install]
WantedBy=desktop.target

View File

@ -0,0 +1 @@
/usr/lib/systemd/user/basic.target

View File

@ -0,0 +1 @@
/usr/lib/systemd/user/dunst.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/user/redshift.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/blueman-applet.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/user/dunst.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/networkmanager-applet.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/nextcloud.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/picom.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/polybar@.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/solaar.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/user/xdg-user-dirs-update.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/autocutsel-primary.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/autocutsel.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/i3.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/xautolock.service

View File

@ -0,0 +1,14 @@
[Unit]
Description=i3 - an improved dynamic, tiling window manager
Requires=xorg.target
Before=graphical-session.target
After=profile.service xprofile.service xorg.target
[Service]
ExecStart=/usr/bin/i3
ExecReload=/bin/sh -c 'i3-msg restart; systemctl is-active --user -q picom && systemctl --user restart picom'
ExecStop=/bin/systemctl --user stop desktop.target
Restart=always
[Install]
WantedBy=graphical-session.target

View File

@ -0,0 +1,12 @@
[Unit]
Description=NetworkManager Applet
After=graphical-session.target NetworkManager.service
Requires=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/nm-applet
Restart=on-failure
[Install]
WantedBy=desktop.target

View File

@ -0,0 +1,14 @@
[Unit]
Description=Nextcloud Client
Requires=graphical-session.target
After=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/nextcloud --background
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=desktop.target

View File

@ -0,0 +1,12 @@
[Unit]
Description=A lightweight compositor for X11
Requires=graphical-session.target
After=graphical-session.target xorg.target
[Service]
Type=simple
ExecStart=/usr/bin/picom --experimental-backends --dbus
Restart=always
[Install]
WantedBy=desktop.target

View File

@ -0,0 +1,12 @@
[Unit]
Description=Polybar
Requires=graphical-session.target
After=graphical-session.target pulseaudio.socket
[Service]
Type=simple
ExecStart=/usr/bin/polybar --reload --log=warning %i
Restart=always
[Install]
WantedBy=desktop.target

View File

@ -0,0 +1,10 @@
[Unit]
Description=Load profile environment into session
Before=graphical-session-pre.target
[Service]
Type=oneshot
ExecStart=/usr/bin/bash -c '. $HOME/.config/dotfiles/.profile && systemctl --user import-environment'
[Install]
WantedBy=basic.target

View File

@ -1,10 +0,0 @@
[Unit]
Description=Lock X session using i3lock
[Service]
User=%i
Environment=DISPLAY=:0
ExecStart=sh -c '~/.config/i3/lock.sh'
[Install]
WantedBy=sleep.target

View File

@ -0,0 +1,13 @@
[Unit]
Description=Lock X LightDM session before sleeping
Requires=graphical-session.target
Before=sleep.target
[Service]
Type=oneshot
ExecStart=/usr/bin/dm-tool switch-to-greeter
# Ensure enough time for the session to lock before sleeping
ExecStartPost=/usr/bin/sleep 1
[Install]
WantedBy=sleep.target

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/sleep-lock-lightdm.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/user/pulseaudio.socket

View File

@ -0,0 +1,13 @@
[Unit]
Description=Solaar Logitech status applet
Requires=graphical-session.target
After=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/solaar --restart-on-wake-up -d
KillMode=process
Restart=on-failure
[Install]
WantedBy=desktop.target

View File

@ -0,0 +1,12 @@
[Unit]
Description=Lock desktop session after inactivity
Requires=xorg.target
After=xorg.target
[Service]
ExecStart=/usr/bin/xautolock -time 5 -locker 'dm-tool switch-to-greeter' -detectsleep -resetsaver -secure
KillMode=process
Restart=on-failure
[Install]
WantedBy=graphical-session.target

View File

@ -0,0 +1,11 @@
[Unit]
Description=XBindKeys
Requires=profile.service
After=profile.service
[Service]
ExecStart=/usr/bin/xbindkeys -n -f $XDG_CONFIG_HOME/X11/xbindkeysrc
KillMode=process
[Install]
WantedBy=graphical-session.target

View File

@ -0,0 +1,3 @@
[Unit]
Description=Graphical desktop environment
Requires=basic.target

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/xprofile.service

View File

@ -0,0 +1,13 @@
[Unit]
Description=Load Xorg configuration
PartOf=xorg.target
Requires=profile.service
After=xorg.target profile.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/bash -cx '. $XDG_CONFIG_HOME/X11/xprofile && systemctl --user import-environment'
[Install]
WantedBy=xorg.target

View File

@ -1,5 +1,5 @@
[options]
font = SauceCodePro 9
font = monospace 9
scrollback_lines = 1000000
cursor_blink = off
size_hints = true
@ -7,7 +7,7 @@ size_hints = true
[colors]
cursor = #5294E2
foreground = #ECEFF1
background = rgba(56, 60, 74, 0.95)
background = rgba(56, 60, 74, 0.85)
highlight = #5294E2
# Colour order:

View File

@ -5,7 +5,7 @@
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/documents"
XDG_DESKTOP_DIR="$HOME"
XDG_DOCUMENTS_DIR="$HOME/documents"
XDG_DOWNLOAD_DIR="$HOME/downloads"
XDG_MUSIC_DIR="$HOME/music"

View File

@ -1,7 +1,8 @@
/bundle/
/.netrwhist
/autoload/plug.vim
/plug/
/spell/
/swapfiles/
/viminfo
/viminf*.tmp
/vim-latex
/.netrwhist
/viminf*.tmp
/viminfo

View File

@ -1,13 +1,15 @@
set nocompatible " be iMproved, required
" Reconfigure Vim to be clean!
set rtp+=~/.config/vim
set directory=.,~/.config/vim
set viminfo+=n~/.config/vim/viminfo
set directory=$HOME/.config/vim/swapfiles//
set undodir=$XDG_CACHE_HOME/vim/undo//
set directory=$XDG_CACHE_HOME/vim/swap//
set backupdir=$XDG_CACHE_HOME/vim/backup//
set viminfo+='1000,n$XDG_CACHE_HOME/vim/viminfo
set runtimepath-=$HOME/.vim
set runtimepath^=$XDG_CONFIG_HOME/vim,$VIMRUNTIME,$XDG_CONFIG_HOME/vim/after
let g:netrw_home=$XDG_CACHE_HOME.'/vim'
syntax enable
filetype plugin on
silent !mkdir -p $XDG_CACHE_HOME/vim/swap $XDG_CACHE_HOME/vim/undo $XDG_CACHE_HOME/vim/backup
set tabstop=4
set shiftwidth=0 " Use tabstop
@ -40,12 +42,16 @@ let mapleader="\<space>"
" Autosave settings
function! SaveIfExist()
if @% != "" && filereadable(@%) && !&readonly && &modified
SyntasticCheck
write
endif
endfunction
set autowrite
autocmd CursorHold,CursorHoldI,InsertLeave,FocusGained,FocusLost * call SaveIfExist()
" Auto-resize split on window resize
autocmd VimResized * wincmd =
" Search options
set hlsearch
set ignorecase
@ -76,34 +82,41 @@ set cul cuc
highlight CursorLine cterm=NONE ctermbg=8
highlight CursorColumn cterm=NONE ctermbg=8
" set the runtime path to include Vundle and initialize
set rtp+=~/.config/vim/bundle/Vundle.vim
call vundle#begin()
call vundle#rc('~/.config/vim/bundle')
if empty(glob('$XDG_CONFIG_HOME/vim/autoload/plug.vim'))
silent !curl -fsSLo $XDG_CONFIG_HOME/vim/autoload/plug.vim --create-dirs
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
autocmd VimEnter * PlugInstall --sync | source $VIMRC
endif
Plugin 'VundleVim/Vundle.vim'
Plugin 'Valloric/YouCompleteMe'
Plugin 'scrooloose/syntastic'
Plugin 'scrooloose/nerdtree'
Plugin 'tpope/vim-sensible'
Plugin 'tpope/vim-fugitive'
Plugin 'tpope/vim-rhubarb'
Plugin 'tpope/vim-abolish'
Plugin 'tpope/vim-surround'
Plugin 'tpope/vim-repeat'
Plugin 'tpope/vim-commentary'
Plugin 'majutsushi/tagbar'
Plugin 'airblade/vim-gitgutter'
Plugin 'ryanoasis/vim-devicons'
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
Plugin 'chr4/nginx.vim'
Plugin 'PotatoesMaster/i3-vim-syntax'
Plugin 'lervag/vimtex'
Plugin 'JamshedVesuna/vim-markdown-preview'
Plugin 'junegunn/fzf.vim'
call plug#begin('$XDG_CONFIG_HOME/vim/plug')
call vundle#end()
Plug 'Valloric/YouCompleteMe'
Plug 'scrooloose/syntastic'
Plug 'scrooloose/nerdtree', { 'on': 'NERTreeToggle' }
Plug 'tpope/vim-sensible'
Plug 'tpope/vim-fugitive'
Plug 'tpope/vim-rhubarb'
Plug 'tpope/vim-abolish'
Plug 'tpope/vim-surround'
Plug 'tpope/vim-repeat'
Plug 'tpope/vim-commentary'
Plug 'majutsushi/tagbar'
Plug 'airblade/vim-gitgutter'
Plug 'ryanoasis/vim-devicons'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'lervag/vimtex'
Plug 'JamshedVesuna/vim-markdown-preview'
Plug 'junegunn/fzf.vim'
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
" Syntax Highlighting
Plug 'chr4/nginx.vim'
Plug 'PotatoesMaster/i3-vim-syntax'
Plug 'puppetlabs/puppet-syntax-vim'
Plug 'arrufat/vala.vim'
call plug#end()
" Change to dvorak-mapped keys
let g:use_dvorak = 1
@ -115,17 +128,32 @@ if !exists('g:ycm_semantic_triggers')
endif
let g:ycm_semantic_triggers.tex = g:vimtex#re#youcompleteme
"let g:vimtex_view_method='zathura'
let g:tex_flavor='latex'
let g:tex_flavor='xelatex'
let g:vimtex_indent_enabled = 0 " auto-indentation is wrong and annoying
let g:syntastic_tex_checkers = ['chktex']
autocmd FileType tex silent VimtexCompile
autocmd FileType tex setlocal spell
autocmd FileType tex TagbarOpen
augroup vimtex
autocmd!
autocmd BufWritePost tex call vimtex#toc#refresh()
autocmd BufWritePost tex call vimtex#labels#refresh()
autocmd BufWritePost tex silent VimtexCompile
augroup END
" Vim-Airline config
let g:Powerline_symbols = 'fancy'
let g:airline_powerline_fonts = 1
let g:airline_theme='solarized'
let g:airline#extensions#tabline#enabled = 1
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
" vim-markdown plugin
let vim_markdown_preview_toggle=0
@ -149,10 +177,12 @@ let g:tagbar_singleclick = 1
let g:tagbar_autopreview = 1
" NERDTree configuration
map <leader><space> :NERDTreeToggle<CR>
map <leader><tab> :NERDTreeToggle<CR>
" FZF configurationn
map <leader><tab> :Files<CR>
map <leader><space> :Files<CR>
map <leader>b :Buffers<CR>
map <leader>l :Lines<CR>
" Disable mouse
set mouse=nicr
@ -192,10 +222,6 @@ if (exists("g:use_dvorak") && g:use_dvorak == 1)
noremap h j
noremap t k
noremap n l
noremap D H
noremap H J
noremap T K
noremap N L
noremap gh gj
noremap gt gk
@ -250,7 +276,20 @@ if (exists("g:use_dvorak") && g:use_dvorak == 1)
\ 'x': ['tsd', 'tsD'],
\}
let NERDTreeMapOpenInTab='\t'
" NERDTree configuration
let NERDTreeMapOpenInTab='\t' " prevent t opening file
" Also remap keys in :Explore
augroup netrw_dvorak_fix
autocmd!
autocmd filetype netrw call Fix_netrw_maps_for_dvorak()
augroup END
function! Fix_netrw_maps_for_dvorak()
noremap <buffer> d h
noremap <buffer> h j
noremap <buffer> t k
noremap <buffer> n l
endfunction
endif
@ -265,5 +304,8 @@ com! WQA wqa
" Write with sudo
cmap w!! w !sudo tee > /dev/null %
" Unmap ex-mode
map Q <nop>
autocmd FileType markdown setlocal ts=2 sts=2 sw=2 et
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 et

4
.config/zsh/.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
/antigen/
/log/
/histfile
/.zcompdump*

174
.config/zsh/.zshrc Normal file
View File

@ -0,0 +1,174 @@
unsetopt MULTIBYTE
# Config and cache directory paths
CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}"
ZSH_DIR="$CONFIG_DIR/zsh"
LOG_DIR="$ZSH_DIR/log"
mkdir -p "$LOG_DIR"
HISTFILE="$ZSH_DIR/histfile"
HISTSIZE=999999
SAVEHIST=999999
exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; }
# Only set tty if running interactively
if exists tty && tty -s 1>/dev/null 2>/dev/null; then
# Resolve at shell runtime
export GPG_TTY="$(tty)"
fi
# Configure less and add colours
export LESS="-RI"
export PAGER="less"
export MANPAGER="less -+N"
# Disable histfile
export LESSHISTFILE=-
if exists tput; then
export LESS_TERMCAP_mb=$(tput bold; tput setaf 2) # green
export LESS_TERMCAP_md=$(tput bold; tput setaf 6) # cyan
export LESS_TERMCAP_me=$(tput sgr0)
export LESS_TERMCAP_so=$(tput bold; tput setaf 4) # blue
export LESS_TERMCAP_se=$(tput rmso; tput sgr0)
export LESS_TERMCAP_us=$(tput smul; tput bold; tput setaf 7) # white
export LESS_TERMCAP_ue=$(tput rmul; tput sgr0)
export LESS_TERMCAP_mr=$(tput rev)
export LESS_TERMCAP_mh=$(tput dim)
export LESS_TERMCAP_ZN=$(tput ssubm)
export LESS_TERMCAP_ZV=$(tput rsubm)
export LESS_TERMCAP_ZO=$(tput ssupm)
export LESS_TERMCAP_ZW=$(tput rsupm)
fi
# Set some useful ZSH/Bash options
setopt sharehistory histignorealldups histignorespace histreduceblanks
setopt pathdirs autocd autopushd extendedglob nullglob alwaystoend interactivecomments dvorak
# Completion initialisation
autoload -U compinit ; compinit
autoload -U bashcompinit ; bashcompinit
# gopass completion
if exists gopass; then
source <(gopass completion bash)
fi
zstyle ':completion:*:sudo|_::' environ PATH="/sbin:/usr/sbin:$PATH" HOME="/root"
zstyle ':completion:*' matcher-list '' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'r:|[._-]=** r:|=**' 'l:|=* r:|=*'
zstyle ':completion:*' rehash true
zstyle ':completion:*' menu select
zstyle ':completion:*' list-colors "${(@s.:.)LS_COLORS}"
zstyle ':compinstall' filename "${ZDOTDIR:-~}/.zshrc"
# Pre-load vi-mode edit-command-line before antigen plugins are loaded
autoload -z edit-command-line
zle -N edit-command-line
export WORDCHARS='*?_[]~=&;!#$%^(){}'
x-bash-backward-kill-word(){ WORDCHARS='' zle kill-word; }
zle -N x-bash-backward-kill-word
# Load antigen & plugins
ADOTDIR="$ZSH_DIR/antigen" # Antigen directory
ANTIGEN_LOG="$LOG_DIR/antigen-$(date +"%Y_%m_%d_%I_%M_%p").log"
antigen_src="$ADOTDIR/antigen.zsh"
if [ ! -f "$antigen_src" ]; then
git clone https://github.com/zsh-users/antigen.git "$ADOTDIR"
fi
source "$antigen_src"
antigen bundle zsh-users/zsh-completions
antigen bundle zsh-users/zsh-autosuggestions
antigen bundle zsh-users/zsh-syntax-highlighting@feature/redrawhook
antigen bundle mafredri/zsh-async
antigen apply
# Vim mode!
bindkey -v
export KEYTIMEOUT=25
# Set some key-binds
bindkey "^[[1;3C" forward-word
bindkey "^[[1;5C" forward-word
bindkey "^[[1;3D" backward-word
bindkey "^[[1;5D" backward-word
bindkey "^[[7~" beginning-of-line
bindkey "^[[8~" end-of-line
bindkey "^[[3~" delete-char
bindkey "^[[3;3~" delete-word
bindkey '^[^[[3~' x-bash-backward-kill-word
bindkey '^[^[[3^' x-bash-backward-kill-word
bindkey '^[[A' fzf-history-widget # Up (fzf)
bindkey '^[[B' fzf-history-widget # Down (fzf)
bindkey '^F' fzf-file-widget # Ctrl+F file search (fzf)
bindkey "^V" edit-command-line
bindkey -M vicmd "^V" edit-command-line
bindkey -M vicmd d vi-backward-char
bindkey -M vicmd h vi-down-line-or-history
bindkey -M vicmd t vi-up-line-or-history
bindkey -M vicmd n vi-forward-char
bindkey -M vicmd k vi-delete
bindkey -M vicmd K vi-kill-eol
bindkey -M vicmd j vi-find-next-char-skip
bindkey -M vicmd l vi-repeat-search
ZSH_AUTOSUGGEST_USE_ASYNC=true
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=128
ZSH_AUTOSUGGEST_CLEAR_WIDGETS=("${(@)ZSH_AUTOSUGGEST_CLEAR_WIDGETS:#(up|down)-line-or-history}")
default='fg=12'
prog='fg=blue'
ZSH_HIGHLIGHT_STYLES=()
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets root line)
ZSH_HIGHLIGHT_STYLES[root]='bg=red'
ZSH_HIGHLIGHT_STYLES[default]=$default
ZSH_HIGHLIGHT_STYLES[arg0]=$prog
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red,bold'
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[alias]=$prog
ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=green'
ZSH_HIGHLIGHT_STYLES[builtin]='fg=4'
ZSH_HIGHLIGHT_STYLES[function]=$prog
ZSH_HIGHLIGHT_STYLES[command]=$prog
ZSH_HIGHLIGHT_STYLES[precommand]='fg=4'
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=green'
ZSH_HIGHLIGHT_STYLES[path]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[path_separator]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=208'
ZSH_HIGHLIGHT_STYLES[globbing]='fg=red'
ZSH_HIGHLIGHT_STYLES[comment]='fg=7'
ZSH_HIGHLIGHT_STYLES[history-expansion]=$default
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]=$default
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]=$default
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=magenta'
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[assign]='fg=green'
ZSH_HIGHLIGHT_STYLES[redirection]='fg=cyan,bold'
source "$DOTFILES/aliases"
# Source secret keys and values into environment
if [ -f "$XDG_CONFIG_HOME/secrets" ]; then
set -o allexport
source $XDG_CONFIG_HOME/secrets
set +o allexport
fi
# Load some manual plugins
source "$ZSH_DIR/plugins/sudo.zsh"
source "$ZSH_DIR/plugins/fish-theme.zsh"
source "$ZSH_DIR/plugins/git-rprompt.zsh"
[ -f '/usr/share/fzf/key-bindings.zsh' ] && source /usr/share/fzf/key-bindings.zsh
[ -f '/usr/share/doc/pkgfile/command-not-found.zsh' ] && source /usr/share/doc/pkgfile/command-not-found.zsh
[ -r '/usr/share/z/z.sh' ] && source /usr/share/z/z.sh

View File

@ -1,63 +1,7 @@
# ZSH Theme emulating the Fish shell's default prompt.
_fishy_collapsed_wd() {
echo $(pwd | perl -pe '
BEGIN {
binmode STDIN, ":encoding(UTF-8)";
binmode STDOUT, ":encoding(UTF-8)";
}; s|^$ENV{HOME}|~|g; s|/([^/.])[^/]*(?=/)|/$1|g; s|/\.([^/])[^/]*(?=/)|/.$1|g
')
}
git_prompt_info() {
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$ZSH_THEME_GIT_PROMPT_SUFFIX"
}
git_prompt_status() {
# Get the status of the working tree
INDEX=$(command git status --porcelain -b 2> /dev/null)
STATUS=""
if $(echo "$INDEX" | 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"
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 '^ 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
pwd | sed -E 's|^'$HOME'|~|;s|(.*)/|\1%|;s|((^\|/)\.?[^/%]{1})[^/%]*|\1|g;s|(.*)%|\1/|'
}
# Required for dynamic prompt
@ -67,17 +11,4 @@ local user_color='green'; [ $UID -eq 0 ] && user_color='red'
PROMPT="%n@%m %F{$user_color}\$(_fishy_collapsed_wd)%f%(!.#.>) "
PROMPT2='%F{red}\ %f'
local return_status="%F{red}%(?..%?)%f"
RPROMPT='${return_status}$(git_prompt_info)$(git_prompt_status)%{$reset_color%}'
ZSH_THEME_GIT_PROMPT_PREFIX=" "
ZSH_THEME_GIT_PROMPT_SUFFIX=""
ZSH_THEME_GIT_PROMPT_DIRTY=""
ZSH_THEME_GIT_PROMPT_CLEAN=""
ZSH_THEME_GIT_PROMPT_ADDED="%{$fg_bold[green]%}+"
ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg_bold[blue]%}!"
ZSH_THEME_GIT_PROMPT_DELETED="%{$fg_bold[red]%}-"
ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg_bold[magenta]%}>"
ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg_bold[yellow]%}#"
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg_bold[cyan]%}?"
RPROMPT='%F{red}%(?.. %?)%f'

View File

@ -0,0 +1,74 @@
# ZSH RPROMPT containing simple Git status
git_prompt_info() {
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$ZSH_THEME_GIT_PROMPT_SUFFIX"
}
git_prompt_status() {
# Get the status of the working tree
INDEX=$(command git status --porcelain -b 2> /dev/null)
RESET='%f'
STATUS=""
if $(echo "$INDEX" | grep -E '^\?\? ' &> /dev/null); then
STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$RESET$STATUS"
fi
if $(echo "$INDEX" | grep '^A ' &> /dev/null); then
STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$RESET$STATUS"
elif $(echo "$INDEX" | grep '^M ' &> /dev/null); then
STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$RESET$STATUS"
fi
if $(echo "$INDEX" | grep '^ M ' &> /dev/null); then
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$RESET$STATUS"
elif $(echo "$INDEX" | grep '^AM ' &> /dev/null); then
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$RESET$STATUS"
elif $(echo "$INDEX" | grep '^ T ' &> /dev/null); then
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$RESET$STATUS"
fi
if $(echo "$INDEX" | grep '^R ' &> /dev/null); then
STATUS="$ZSH_THEME_GIT_PROMPT_RENAMED$RESET$STATUS"
fi
if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$RESET$STATUS"
elif $(echo "$INDEX" | grep '^D ' &> /dev/null); then
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$RESET$STATUS"
elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$RESET$STATUS"
fi
if $(command git rev-parse --verify refs/stash >/dev/null 2>&1); then
STATUS="$ZSH_THEME_GIT_PROMPT_STASHED$RESET$STATUS"
fi
if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then
STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$RESET$STATUS"
fi
if $(echo "$INDEX" | grep '^## .*ahead' &> /dev/null); then
AHEAD=$(echo "$INDEX" | sed -nE 's/.*ahead\s([0-9]*).*/\1/p')
STATUS="$ZSH_THEME_GIT_PROMPT_AHEAD$AHEAD$RESET$STATUS"
fi
if $(echo "$INDEX" | grep '^## .*behind' &> /dev/null); then
BEHIND=$(echo "$INDEX" | sed -nE 's/.*behind\s([0-9]*).*/\1/p')
STATUS="$ZSH_THEME_GIT_PROMPT_BEHIND$BEHIND$RESET$STATUS"
fi
if $(echo "$INDEX" | grep '^## .*diverged' &> /dev/null); then
STATUS="$ZSH_THEME_GIT_PROMPT_DIVERGED$RESET$STATUS"
fi
echo $STATUS
}
# Required for dynamic prompt
setopt prompt_subst
ZSH_THEME_GIT_PROMPT_PREFIX=" "
ZSH_THEME_GIT_PROMPT_SUFFIX=""
ZSH_THEME_GIT_PROMPT_DIRTY=""
ZSH_THEME_GIT_PROMPT_CLEAN=""
ZSH_THEME_GIT_PROMPT_AHEAD="%F{green}↑"
ZSH_THEME_GIT_PROMPT_BEHIND="%F{red}↓"
ZSH_THEME_GIT_PROMPT_ADDED="%F{green}+"
ZSH_THEME_GIT_PROMPT_MODIFIED="%F{blue}~"
ZSH_THEME_GIT_PROMPT_DELETED="%F{red}-"
ZSH_THEME_GIT_PROMPT_RENAMED="%F{magenta}>"
ZSH_THEME_GIT_PROMPT_UNMERGED="%F{yellow}#"
ZSH_THEME_GIT_PROMPT_UNTRACKED="%F{cyan}?"
RPROMPT="\$(git_prompt_info)\$(git_prompt_status)%{\$reset_color%}$RPROMPT"

View File

@ -4,14 +4,11 @@ sudo-command-line() {
[[ -z $BUFFER ]] && zle up-history
if [[ $BUFFER == sudo\ * ]]; then
LBUFFER="${LBUFFER#sudo }"
elif [[ $BUFFER == $EDITOR\ * ]] || [[ $BUFFER == vi\ * ]]; then
LBUFFER="${LBUFFER#$EDITOR }"
LBUFFER="${LBUFFER#vi }"
LBUFFER="svi $LBUFFER"
elif [[ $BUFFER == sudoedit\ * ]] || [[ $BUFFER == svi\ * ]]; then
elif [[ $BUFFER == $EDITOR\ * ]] || [[ $BUFFER == vi\ * ]] || [[ $BUFFER == vim\ * ]]; then
LBUFFER="s$LBUFFER"
elif [[ $BUFFER == sudoedit\ * ]] || [[ $BUFFER == svi\ * ]]|| [[ $BUFFER == svim\ * ]]; then
LBUFFER="${LBUFFER#sudoedit }"
LBUFFER="${LBUFFER#svi }"
LBUFFER="$EDITOR $LBUFFER"
LBUFFER="${LBUFFER#s}"
else
LBUFFER="sudo $LBUFFER"
fi

2
.fehbg
View File

@ -1,2 +0,0 @@
#!/bin/sh
'feh' '--no-xinerama' '--bg-fill' '/home/frebib/pictures/lakesidesunrise.jpg'

4
.gitignore vendored
View File

@ -1,6 +1,10 @@
bookmarks
.config/secrets
.config/gtk-2.0/gtkfilechooser.ini
.config/imgur-screenshot/credentials.conf
.config/mailnag/mailnag.dat
.config/zsh/.zshrc.zwc
*.log
.xournal/recent-files

3
.gitmodules vendored
View File

@ -1,3 +0,0 @@
[submodule "surface-scripts"]
path = surface-scripts
url = https://github.com/frebib/surface-scripts.git

View File

@ -2,70 +2,55 @@ export LC_ALL=en_GB.UTF-8
export LANG=en_GB.UTF-8
export LC_NUMERIC=en_GB
export CONFIG_DIR="$HOME/.config"
export XDG_CONFIG_HOME="$CONFIG_DIR"
export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
export XDG_LOCAL_HOME="$HOME/.local"
mkdir -p "$XDG_CONFIG_HOME" "$XDG_CACHE_HOME" "$XDG_DATA_HOME" "$XDG_LOCAL_HOME"
case "$(basename "$(readlink -f /proc/$$/exe)")" in
zsh) thisfile="$(readlink -f "${(%):-%N}")";;
bash) thisfile="$(readlink -f "${BASH_SOURCE[0]}")";;
*) thisfile="$(find /proc/$$/fd/ | xargs readlink -f | grep .profile | head -n1)";;
*) thisfile="$(find /proc/$$/fd/ | xargs -n1 -r readlink -f | grep profile | head -n1)";;
esac
export DOTFILES="$(dirname "${thisfile:-$CONFIG_DIR/dotfiles}")"
export PATH="${PATH}:$DOTFILES/scripts"
export XDG_CURRENT_DESKTOP="GNOME" # Fixes xdg-open
# Allow Vim to load from ~/.config/vim
export VIMDIR="$CONFIG_DIR/vim"
export MYVIMRC="$VIMDIR/vimrc"
export VIMINIT=":so $MYVIMRC"
export EDITOR="vim"
export VISUAL="vim"
export MANPAGER="less -+N"
export TERMINAL="termite"
export BROWSER="chromium"
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel"
export QT_QPA_PLATFORMTHEME=gtk2
export GOPATH="$HOME/.cache/go"
# Override paths for non-compliant programs
# https://wiki.archlinux.org/index.php/XDG_Base_Directory_support
export CARGO_HOME="$XDG_DATA_HOME/cargo"
export GNUPGHOME="$XDG_CONFIG_HOME/gnupg"
export GOPATH="$XDG_DATA_HOME/go"
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/settings.ini"
export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc
export PASSWORD_STORE_DIR="$XDG_DATA_HOME/pass"
export PYTHONHISTFILE="$XDG_DATA_HOME/python/histfile"
export RUSTUP_HOME="$XDG_DATA_HOME/rustup"
export TERMINFO="$XDG_DATA_HOME/terminfo"
export TERMINFO_DIRS="$XDG_DATA_HOME/terminfo:/usr/share/terminfo"
export VIMDIR="$XDG_CONFIG_HOME/vim"
export VIMRC="$VIMDIR/vimrc"
export VIMINIT=":so $VIMRC"
export WEECHAT_HOME="$XDG_CONFIG_HOME/weechat"
export XINITRC="$XDG_CONFIG_HOME/X11/xinitrc"
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
export DOTFILES="$(dirname "${thisfile:-$XDG_CONFIG_HOME/dotfiles/.profile}")"
export PATH="${PATH}:/sbin:/usr/sbin:$DOTFILES/scripts:$GOPATH/bin"
exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; }
export LESS="-RI"
export PAGER="less $LESS"
if exists tput; then
export LESS_TERMCAP_mb=$(tput bold; tput setaf 2) # green
export LESS_TERMCAP_md=$(tput bold; tput setaf 6) # cyan
export LESS_TERMCAP_me=$(tput sgr0)
export LESS_TERMCAP_so=$(tput bold; tput setaf 4) # blue
export LESS_TERMCAP_se=$(tput rmso; tput sgr0)
export LESS_TERMCAP_us=$(tput smul; tput bold; tput setaf 7) # white
export LESS_TERMCAP_ue=$(tput rmul; tput sgr0)
export LESS_TERMCAP_mr=$(tput rev)
export LESS_TERMCAP_mh=$(tput dim)
export LESS_TERMCAP_ZN=$(tput ssubm)
export LESS_TERMCAP_ZV=$(tput rsubm)
export LESS_TERMCAP_ZO=$(tput ssupm)
export LESS_TERMCAP_ZW=$(tput rsupm)
fi
# Source secret keys and values into environment
if [ -f "$CONFIG_DIR/secrets" ]; then
set -o allexport
source $CONFIG_DIR/secrets
set +o allexport
fi
# Merge system clipboards
if [ -n "$DISPLAY" ] && exists autocutsel && ! pidof autocutsel 1>/dev/null; then
autocutsel -fork
autocutsel -selection PRIMARY -fork
fi
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] && exists dbus-launch; then
eval $(dbus-launch --sh-syntax --exit-with-session)
dbus-update-activation-environment --systemd DISPLAY
fi
# Start the gnome-keyring if it's installed
if exists gnome-keyring-daemon; then
export $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gnupg)
# Execute this after updating dbus/systemd environment
# Source secret keys and values into environment
if [ -f "$XDG_CONFIG_HOME/secrets" ]; then
set -o allexport
source $XDG_CONFIG_HOME/secrets
set +o allexport
fi

View File

@ -1,5 +0,0 @@
setxkbmap -option caps:none
xset r rate 200 18
xrandr --dpi 96
~/.local/share/surface-scripts/pend &

124
.zshrc
View File

@ -1,124 +0,0 @@
unsetopt MULTIBYTE
# Config and cache directory paths
CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}"
ZSH_DIR="$CONFIG_DIR/zsh"
ZSH_CACHE_DIR="$CONFIG_DIR/oh-my-zsh/cache"
ADOTDIR="$ZSH_DIR/antigen" # Antigen directory
LOG_DIR="$ZSH_DIR/log"
ANTIGEN_LOG="$LOG_DIR/antigen-$(date +"%Y_%m_%d_%I_%M_%p").log"
mkdir -p "$ZSH_CACHE_DIR" "$ZSH_DIR" "$LOG_DIR"
HISTFILE="$ZSH_DIR/histfile"
HISTSIZE=999999
SAVEHIST=999999
exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; }
# Only set tty if running interactively
if exists tty && tty -s; then
# Resolve at shell runtime
export GPG_TTY="$(tty)"
fi
# Set some useful ZSH/Bash options
setopt sharehistory histignorealldups histignorespace histreduceblanks
setopt pathdirs autocd autopushd extendedglob alwaystoend dvorak
# Completion initialisation
autoload -U compinit ; compinit
autoload -U bashcompinit ; bashcompinit
# gopass completion
if exists gopass; then
source <(gopass completion bash)
fi
zstyle ':completion:*:sudo|_::' environ PATH="/sbin:/usr/sbin:$PATH" HOME="/root"
zstyle ':completion:*' matcher-list '' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'r:|[._-]=** r:|=**' 'l:|=* r:|=*'
zstyle ':completion:*' rehash true
zstyle ':completion:*' menu select
zstyle ':completion:*' list-colors "${(@s.:.)LS_COLORS}"
zstyle ':compinstall' filename "$HOME/.zshrc"
# Load antigen & plugins
antigen_src="$ADOTDIR/antigen.zsh"
if [ ! -f "$antigen_src" ]; then
git clone https://github.com/zsh-users/antigen.git "$ADOTDIR"
fi
source "$antigen_src"
antigen bundle zsh-users/zsh-completions
antigen bundle zsh-users/zsh-autosuggestions
antigen bundle Tarrasch/zsh-syntax-highlighting
antigen bundle zsh-users/zsh-history-substring-search
antigen apply
# Set some key-binds
bindkey -e
bindkey "^[[1;3C" forward-word
bindkey "^[[1;5C" forward-word
bindkey "^[[1;3D" backward-word
bindkey "^[[1;5D" backward-word
bindkey "^[[7~" beginning-of-line
bindkey "^[[8~" end-of-line
bindkey "^[[3~" delete-char
bindkey "^[[3;3~" delete-word
export WORDCHARS='*?_[]~=&;!#$%^(){}'
x-bash-backward-kill-word(){
WORDCHARS='' zle kill-word
}
zle -N x-bash-backward-kill-word
bindkey '^[^[[3~' x-bash-backward-kill-word
bindkey '^[^[[3^' x-bash-backward-kill-word
bindkey '^[[A' history-substring-search-up
bindkey '^[[B' history-substring-search-down
ZSH_AUTOSUGGEST_CLEAR_WIDGETS=("${(@)ZSH_AUTOSUGGEST_CLEAR_WIDGETS:#(up|down)-line-or-history}")
ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(history-substring-search-up history-substring-search-down)
HISTORY_SUBSTRING_SEARCH_FUZZY=true
HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=true
HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='underline'
typeset -A ZSH_HIGHLIGHT_STYLES
ZSH_HIGHLIGHT_STYLES[default]='fg=12'
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red,bold'
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[alias]='fg=blue'
ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=green,underline'
ZSH_HIGHLIGHT_STYLES[builtin]='fg=blue'
ZSH_HIGHLIGHT_STYLES[function]='fg=blue'
ZSH_HIGHLIGHT_STYLES[command]='fg=blue'
ZSH_HIGHLIGHT_STYLES[precommand]='fg=blue'
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=green'
ZSH_HIGHLIGHT_STYLES[path]='fg=blue'
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=yellow,bold'
ZSH_HIGHLIGHT_STYLES[globbing]='fg=red'
ZSH_HIGHLIGHT_STYLES[comment]='fg=7'
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=blue'
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=12'
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=12'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=magenta'
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[assign]='fg=green'
ZSH_HIGHLIGHT_STYLES[redirection]='fg=cyan'
source "$DOTFILES/aliases"
# Load some manual plugins
source "$ZSH_DIR/plugins/sudo.zsh"
source "$ZSH_DIR/plugins/fish-theme.zsh"

View File

@ -1,17 +1,10 @@
These are the configs I use on my Arch Linux installation at home. They can be use and changed as much or as little as you please
# frebib/dotfiles
## Usage
To quickly get started, clone this repo and run the setup scripts.
To get started, clone this repo and link the relevant files/directories
git clone https://github.com/frebib/dotfiles.git ~/.config/dotfiles
cd ~/.config/dotfiles
You can put the `dotfiles` directory anywhere, just be sure to update the `$DOTFILES` envvar in `.profile`
To link all the configuration files, run the init-dotfiles script:
**Be warned that this will destroy your current configs without warning**
scripts/init-dotfiles.sh
To install all of my packages & programs, check out my other repo <https://github.com/frebib/arch-install/> and the [`userinstall`](https://github.com/frebib/arch-install/blob/master/userinstall) script
```shell
git clone https://github.com/frebib/dotfiles.git ~/.config/dotfiles
ln -sfv .config/dotfiles/.config/* .config/
ln -sfv .config/dotfiles/.profile .zprofile
```

Some files were not shown because too many files have changed in this diff Show More