[Arch] 一些archlinux的配置文件

本帖日常更新

TERMINAl

终端使用 rxvt (rxvt-unicode包) + fish shell 其中放大缩小字号的快捷键通过插件实现,见下方配置文件extension部分

rxvt配置为:

! special
*.foreground:   #93a1a1
*.background:   #001921
*.cursorColor:  #93a1a1

! black
*.color0:       #002b36
*.color8:       #657b83

! red
*.color1:       #dc322f
*.color9:       #dc322f

! green

*.color2:       #575B39
*.color10:      #454732


! yellow
*.color3:       #b58900
*.color11:      #b58900

! blue
*.color4:       #268bd2
*.color12:      #268bd2

! magenta
*.color5:       #6c71c4
*.color13:      #6c71c4

! cyan
*.color6:       #2aa198
*.color14:      #2aa198

! white
*.color7:       #93a1a1
*.color15:      #fdf6e3


URxvt.intensityStyles:          false
! URxvt.background:             #000000
URxvt.background:               #001218
URxvt.depth:		            32
URxvt.font: 		            xft:Source Code Pro:size=13,xft:WenQuanYi Micro Hei Mono:style=Regular:pixelsize=16
URxvt.boldFont: 		        xft:Source Code Pro:size=13:style=Bold,xft:WenQuanYi Micro Hei Mono:style=Bold:pixelsize=16
URxvt.scrollBar:	            false
URxvt.cursorColor:	            white
URxvt.cursorBlink:	            1

!! Extensions
URxvt.perl-ext-common:	        default,matcher,font-size,url-select,keyboard-select
URxvt.colorUL:		            #4682B4
!! url-select
URxvt.keysym.M-u:	            perl:url-select:select_next
URxvt.url-select.launcher:      linkhandler
URxvt.url-select.underline:     true
!! keyboard-select:
URxvt.keysym.M-Escape:          perl:keyboard-select:activate
!! resize-font

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
URxvt.keysym.C-equal:  font-size:reset
URxvt.keysym.C-slash:  font-size:show


!! Matcher
URxvt.url-launcher:	    linkhandler
URxvt.matcher.button:	1

xinit

# fcitx input
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx

# swap caps
setxkbmap -option caps:swapescape

# some variables

export FILE="ranger"
export TERMINAL="urxvt"
export TERM="urxvt"
export EDITOR=nvim

# alias 
alias qr=segno
alias vim=nvim
alias mutt=neomutt

# background
~/.fehbg &

exec i3
# exec dwm

Desktop

使用 i3wm 桌面管理器(i3-gaps分支) 配合 compton

i3configs:

# USER CONFIG S

# COLORS
# class                 border  backgr. text    indicator child_border
client.focused          #287736 #285577 #ffffff #2e9ef4   #285577
client.focused_inactive #333333 #5f676a #ffffff #484e50   #5f676a
client.unfocused        #333333 #222222 #888888 #292d2e   #222222
client.urgent           #2f343a #900000 #ffffff #900000   #900000
client.placeholder      #000000 #0c0c0c #ffffff #000000   #0c0c0c

client.background       #ffffff


# compton
exec_always --no-startup-id "killall -q compton; compton"
exec_always --no-startup-id "killall -q flashfocus; flashfocus"



# SET INPUT
exec --no-startup-id fcitx -d

# proxy
# exec --no-startup-id fuckgfw

#
force_xinerama yes


# FOR DUNST 
exec --no-startup-id dunst

# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#

# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!

set $mod Mod4
set $ter --no-startup-id $TERMINAL

# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:monospace 12

# gaps
gaps inner 0
gaps outer 0

# dmenu shits '''

# '''

bindsym $mod+F9		exec --no-startup-id dmenumount
bindsym $mod+F10 exec --no-startup-id dmenuumount


# keyboard
bindsym $mod+F1		exec --no-startup-id us_layout
bindsym $mod+F2		exec --no-startup-id de_layout

# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod

##### BINDINGS SHRIK33333
# Screenshot
#
bindsym $mod+Print exec scrot '%Y-%m-%d-%s_screenshot_$wx$h.jpg' -e 'mv $f ~/Pictures/screenshot'
bindsym $mod+Control+Print exec gnome-screenshot -i

# changing gaps .. 
#
bindsym $mod+bracketright			gaps inner current plus 5
bindsym $mod+bracketleft		gaps inner current minus 5
bindsym $mod+Shift+bracketleft		gaps inner current set 0; gaps outer current set 0
bindsym $mod+Shift+bracketright		gaps inner current set 15; gaps outer current set 15
# lock screen
bindsym $mod+x exec xlock

# start a terminal
bindsym $mod+Return exec $ter

bindsym $mod+t	split toggle
bindsym $mod+i 			exec $ter -e htop

# kill focused window
bindsym $mod+Shift+q kill

# start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run -fn 'Source Code Pro-13'
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop

# change focus
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right

# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right

# move focused window
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right

# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right 
# split in horizontal orientation
# bindsym $mod+h split h

# split in vertical orientation
# bindsym $mod+v split v

# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle

# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split

# toggle tiling / floating
bindsym $mod+Shift+space floating toggle

# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle

# focus the parent container
bindsym $mod+a focus parent

# focus the child container
#bindsym $mod+d focus child

# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"

# switch to workspace
bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10

bindsym $mod+Tab workspace next

# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5
bindsym $mod+Shift+6 move container to workspace $ws6
bindsym $mod+Shift+7 move container to workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws10

# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"

# resize window (you can also use the mouse for that)


bindsym $mod+Shift+y exec --no-startup-id i3resize left
bindsym $mod+Shift+u exec --no-startup-id i3resize down
bindsym $mod+Shift+i exec --no-startup-id i3resize up
bindsym $mod+Shift+o exec --no-startup-id i3resize right

# open chromium


bindsym $mod+c exec --no-startup-id chromium

# brightness and volume
# Sreen brightness controls
bindsym XF86MonBrightnessUp exec xbacklight -inc 20 # increase screen brightness
bindsym XF86MonBrightnessDown exec xbacklight -dec 20 # decrease screen brightness

# Volume 
#
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound


# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
        font pango:mono 12
        status_command i3blocks
        verbose yes
        mode dock
        modifier None
        bindsym button4 nop
        bindsym button5 nop
}


# BORDER BEHAVIOUR
#
new_window 1pixel

compton:

# Shadow
shadow = true;
no-dnd-shadow = true;
no-dock-shadow = true;
clear-shadow = true;
shadow-radius = 7;
shadow-offset-x = -7;
shadow-offset-y = -7;
shadow-opacity = 0.2;
# shadow-red = 0.0;
# shadow-green = 0.0;
# shadow-blue = 0.0;
shadow-exclude = [
    "name = 'Notification'",
    "class_g = 'Conky'",
    "class_g ?= 'Notify-osd'",
    "class_g = 'Cairo-clock'",
    "_GTK_FRAME_EXTENTS@:c"
];
# shadow-exclude = "n:e:Notification";
# shadow-exclude-reg = "x10+0+0";
# xinerama-shadow-crop = true;

# Opacity
# menu-opacity = 0.8;
# inactive-opacity = 0.9;
# active-opacity = 0.9;
# frame-opacity = 0.7;
inactive-opacity-override = false;
alpha-step = 0.06;
# inactive-dim = 0.2;
# inactive-dim-fixed = true;
# blur-background = true;
# blur-background-frame = true;
blur-kern = "3x3box"
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"
# blur-background-fixed = true;
blur-background-exclude = [
    "window_type = 'dock'",
    "window_type = 'desktop'",
    "_GTK_FRAME_EXTENTS@:c"
];
opacity-rule = [ 
    "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
];

# Fading
fading = false;
# fade-delta = 30;
fade-in-step = 0.1;
fade-out-step = 0.1;
# no-fading-openclose = true;
# no-fading-destroyed-argb = true;
fade-exclude = [ ];

# Other
backend = "xrender"
mark-wmwin-focused = true;
mark-ovredir-focused = true;
# use-ewmh-active-win = true;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 0;
vsync = "none";
dbe = false;
paint-on-overlay = true;
# sw-opti = true;
# unredir-if-possible = true;
# unredir-if-possible-delay = 5000;
# unredir-if-possible-exclude = [ ];
focus-exclude = [ "class_g = 'Cairo-clock'" ];
detect-transient = true;
detect-client-leader = true;
invert-color-include = [ ];
# resize-damage = 1;

# GLX backend
# glx-no-stencil = true;
glx-copy-from-front = false;
# glx-use-copysubbuffermesa = true;
# glx-no-rebind-pixmap = true;
glx-swap-method = "undefined";
# glx-use-gpushader4 = true;
# xrender-sync = true;
# xrender-sync-fence = true;

# Window type settings
wintypes:
{
  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; };
};

插件:

i3中,切换focus时经常看不清到底在那个容器,所以用了 flushfocus 这个插件:闪烁整个光标所在的容器。

VIM

我使用了neovim,配置文件基于amix的配置

PLUGINS

除了它的自带插件,另外用到的插件有:

Plugin Desciption
YouCompleteMe All in one的代码补全工具
fcitx.vim 配合fcitx输入法使用:切换到normal模式时自动屏蔽输入法
goyo.vim 专注模式
markdown-preview.vim markdown预览
nerdcommenter 注释和取消注释
ranger.vim 将ranger文件管理器集成至vim
tagbar 代码快速导航
vim-autoformat 代码自动格式化
vim-latex-live-preview latex实时预览
vim-surround 大名鼎鼎的。。

update: 在markdown preview插件的浏览器参数中加入 –kiosk可以获得更简洁的浏览器窗口(chromium内核浏览器)

CONFIGS

这是一部分自定义配置:

set nu
syntax on
filetype plugin indent on


" MAP LEADER
"
let mapleader="\\"
""" bind mapleader only in normal  mode
nnoremap \\ <NOP>


" FOR URL VIEW .. 
if has('nvim')
noremap <leader>u :w \| startinsert \| term urlview %<CR>
else
noremap <leader>u :silent w !urlview<CR>
endif

" Search behaviors
set hls ic


" folding
set nofoldenable


""""""""""""""PLUGINS""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""

let g:livepreview_previewer = 'zathura'
let g:livepreview_engine = 'xelatex'

let g:formatdef_harttle = '"astyle --style=attach --pad-oper"'
let g:formatdef_clang = '"clang-format --style=~/.clang-format"'

noremap <F3> :Autoformat<CR>


"YouCompleteMe

"配置默认文件路径
let g:ycm_global_ycm_extra_conf = '~/.config/ycm/.ycm_extra_conf.py'
set completeopt=menu

"自动开启语义补全
let g:ycm_seed_identifiers_with_syntax = 1

nnoremap <leader>g :YcmCompleter GoTo<CR> "
let g:ycm_goto_buffer_command='new-or-existing-tab'

" TAGBAR
nmap <F8> :TagbarToggle<CR>

YouCompleteMe 的默认配置:

import os
import os.path
import fnmatch
import logging
import ycm_core
import re

BASE_FLAGS = [
        '-Wall',
        '-Wextra',
        '-Werror',
        '-Wno-long-long',
        '-Wno-variadic-macros',
        '-fexceptions',
        '-ferror-limit=10000',
        '-DNDEBUG',
        '-std=c++11',
        '-xc++',
        '-I/usr/lib/',
        '-I/usr/include/'
        ]

SOURCE_EXTENSIONS = [
        '.cpp',
        '.cxx',
        '.cc',
        '.c',
        '.m',
        '.mm'
        ]

SOURCE_DIRECTORIES = [
        'src',
        'lib'
        ]

HEADER_EXTENSIONS = [
        '.h',
        '.hxx',
        '.hpp',
        '.hh'
        ]

HEADER_DIRECTORIES = [
        'include'
        ]

def FlagsForFile(filename):
    return BASE_FLAGS


[+] click to leave a comment [+]
the comment system on this blog works via email. The button
below will generate a mailto: link based on this page's url 
and invoke your email client - please edit the comment there!

[optional] even better, encrypt the email with my public key

- don't modify the subject field
- specify a nickname, otherwise your comment will be shown as   
  anonymous
- your email address will not be disclosed
- you agree that the comment is to be made public.
- to take down a comment, send the request via email.

>> SEND COMMENT <<




Fun with Image Maps and SVGs via benji February 20, 2024

Over the past few weeks I've been playing around with making some images on my website interactive. My "informatics" class in high school taught us some basic HTML. By basic I mean in notepad and writing everything by hand, saving to a...

Goblin Week 2024 via Helvetica Blanc January 26, 2024

It snuck up on me, but I managed to draw my little goblins to celebrate the week! I love my children - they're like awful Pikmin. I've uploaded the whole parade as a print, as well as individual prints for each goblin. There's something very fu…

How to trust gpg keys via Travis Shears Personal Site October 27, 2023

After moving some GPG keys to a new computer I kept getting these trust warnings. It is NOT certain that the key belongs to the person named in the user ID.If you * really * know what you are doing, you may answer the next question with yes. Use this key a…

Generated by openring from webring