mirror of
http://github.com/JaeUs3792/dotfiles
synced 2025-12-13 23:51:34 +09:00
copy previous config
This commit is contained in:
77
.config/alacritty/alacritty.yml
Normal file
77
.config/alacritty/alacritty.yml
Normal file
@ -0,0 +1,77 @@
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
|
||||
window:
|
||||
padding:
|
||||
x: 6
|
||||
y: 6
|
||||
title: Alacritty
|
||||
class:
|
||||
instance: Alacritty
|
||||
general: Alacritty
|
||||
|
||||
scrolling:
|
||||
history: 10000
|
||||
font:
|
||||
normal:
|
||||
family: Mononoki Nerd Font
|
||||
style: Regular
|
||||
bold:
|
||||
family: Mononoki Nerd Font
|
||||
style: Bold
|
||||
italic:
|
||||
family: Mononoki Nerd Font
|
||||
style: Italic
|
||||
bold_italic:
|
||||
family: Mononoki Nerd Font
|
||||
style: Bold Italic
|
||||
# Point size
|
||||
size: 11.0
|
||||
offset:
|
||||
x: 0
|
||||
y: 1
|
||||
draw_bold_text_with_bright_colors: true
|
||||
colors:
|
||||
primary:
|
||||
background: '0x282c34'
|
||||
foreground: '0xbbc2cf'
|
||||
selection:
|
||||
text: '0xbbc2cf'
|
||||
normal:
|
||||
black: '0x1c1f24'
|
||||
red: '0xff6c6b'
|
||||
green: '0x98be65'
|
||||
yellow: '0xda8548'
|
||||
blue: '0x51afef'
|
||||
magenta: '0xc678dd'
|
||||
cyan: '0x5699af'
|
||||
white: '0x202328'
|
||||
bright:
|
||||
black: '0x5b6268'
|
||||
red: '0xda8548'
|
||||
green: '0x4db5bd'
|
||||
yellow: '0xecbe7b'
|
||||
blue: '0x3071db' # This is 2257a0 in Doom Emacs but I lightened it.
|
||||
magenta: '0xa9a1e1'
|
||||
cyan: '0x46d9ff'
|
||||
white: '0xdfdfdf'
|
||||
background_opacity: 0.9
|
||||
key_bindings:
|
||||
# (Windows, Linux, and BSD only)
|
||||
- { key: V, mods: Control|Shift, action: Paste }
|
||||
- { key: C, mods: Control|Shift, action: Copy }
|
||||
- { key: Insert, mods: Shift, action: PasteSelection }
|
||||
- { key: Key0, mods: Control, action: ResetFontSize }
|
||||
- { key: Equals, mods: Control, action: IncreaseFontSize }
|
||||
- { key: Plus, mods: Control, action: IncreaseFontSize }
|
||||
- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||
- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||
|
||||
- { key: Paste, action: Paste }
|
||||
- { key: Copy, action: Copy }
|
||||
- { key: L, mods: Control, action: ClearLogNotice }
|
||||
- { key: L, mods: Control, chars: "\x0c" }
|
||||
- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt }
|
||||
- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt }
|
||||
- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt }
|
||||
- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt }
|
||||
324
.config/nvim/Vim.org
Normal file
324
.config/nvim/Vim.org
Normal file
@ -0,0 +1,324 @@
|
||||
#+TITLE: Vim
|
||||
|
||||
* Vim Configuration
|
||||
** Config file location
|
||||
- on Windows : ~/AppData/Local/nvim/init.vim
|
||||
- on Linux : ~/.config/nvim/init.vim
|
||||
|
||||
** Basic Settings
|
||||
*** General
|
||||
|
||||
#+begin_src shell :tangle ~/.config/nvim/init.vim :mkdirp yes
|
||||
" Vim Configuration
|
||||
set nocompatible "move using arrow key
|
||||
"filtype plugin on
|
||||
set number
|
||||
set ai "auto indent
|
||||
set si "smart indent
|
||||
set cindent " c style indent
|
||||
|
||||
set shiftwidth=4 "shift order 4step
|
||||
set tabstop=4 "tab order 4step
|
||||
set hlsearch "highlight empathize the word.
|
||||
|
||||
set history=1000 "history store depth
|
||||
set nobackup "no generate swp file
|
||||
set noswapfile
|
||||
set nowritebackup
|
||||
set backupdir=~/.backup/
|
||||
set directory=~/.backup/
|
||||
|
||||
set ruler "display the cursor position
|
||||
set title "display the title
|
||||
set showmatch "display the matched bracket
|
||||
"set nowrap "no auto linefeed
|
||||
set wmnu "auto word finder
|
||||
|
||||
set autochdir " auto change working directory
|
||||
|
||||
set hidden "buffer hidden
|
||||
set updatetime=300 " 300ms
|
||||
set cmdheight=2 " Better display for messages
|
||||
set shortmess+=c " don't give [ins-completion-menu] messages.
|
||||
set signcolumn=yes " always show signcolumns
|
||||
|
||||
|
||||
set backspace=indent,eol,start
|
||||
set fencs=ucs-bom,utf-8,cp949
|
||||
set clipboard^=unnamed,unnamedplus
|
||||
|
||||
set mouse=a
|
||||
#+end_src
|
||||
|
||||
여기서 clipboard 문제가 발생할 수 있다. Windows계열에서는 쉽게 ="+y= ="+p"= 로 clipboard를 통한 복사 붙여넣기가 가능하며,
|
||||
리눅스의 경우는 xclip을 이용하여 사용하는것이 편했다.
|
||||
리눅스는 Ctrl+C/V로 관리 되는 =+= 레지스터와 Selection으로 관리되는 마우스 중간버튼의 =*= 레지스터가 따로 관리되는 듯하니 VIM레지스터 =+= 와 =*= 을 잘 확인해 봐야한다.
|
||||
|
||||
|
||||
** Plugin List
|
||||
|
||||
#+begin_src shell :tangle ~/.config/nvim/init.vim :mkdirp yes
|
||||
" PluginManager in vimrc
|
||||
runtime plugList.vim
|
||||
#+end_src
|
||||
#+begin_src shell :tangle ~/.config/nvim/plugList.vim :mkdirp yes
|
||||
call plug#begin('~/.vim/plugged')
|
||||
#+end_src
|
||||
|
||||
*** Suda
|
||||
기존의 VIM에는 읽기 권한으로 파일을 열고 다음과 같은 커맨드로 sudo write가 가능했는데
|
||||
Neovim에서는 불가능한 상황이다. (아마 비밀번호를 입력못했던걸로.)
|
||||
#+begin_src shell
|
||||
:w !sudo tee %
|
||||
#+end_src
|
||||
|
||||
Neovim에서는 플러그인으로 문제를 해결한다.
|
||||
=SudaRead= 와 =SudaWrite= 를 활용한다.
|
||||
#+begin_src shell :tangle ~/.config/nvim/plugList.vim :mkdirp yes
|
||||
Plug 'lambdalisue/suda.vim'
|
||||
#+end_src
|
||||
|
||||
*** Clolor Scheme
|
||||
#+begin_src shell :tangle ~/.config/nvim/init.vim :mkdirp yes
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Colorscheme
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"""""""""""""" One Dark
|
||||
"colorscheme onedark
|
||||
"""""""""""""" Grub_box
|
||||
"let g:gruvbox_contrast_dark='soft'
|
||||
"set background=dark
|
||||
"colorscheme gruvbox
|
||||
"let g:airline_theme='gruvbox'
|
||||
"""""""""""""" Paper Color
|
||||
"set background=light
|
||||
"colorscheme PaperColor
|
||||
"let g:airline_theme='hybrid'
|
||||
"let g:PaperColor_Theme_Options = {
|
||||
" \ 'theme': {
|
||||
" \ 'default.light': {
|
||||
" \ 'transparent_background': 1
|
||||
" \ }
|
||||
" \ }
|
||||
" \ }
|
||||
"""""""""""""" Molokai
|
||||
"let g:molokai_original = 1
|
||||
"colorscheme molokai
|
||||
"""""""""""""" Solarized 8
|
||||
"set background=light
|
||||
"colorscheme solarized8_high
|
||||
"let g:airline_theme='solarized8'
|
||||
"""""""""""""" Challenger Deep
|
||||
"colorscheme challenger_deep
|
||||
colorscheme palenight
|
||||
#+end_src
|
||||
|
||||
PluginManager
|
||||
#+begin_src shell :tangle ~/.config/nvim/plugList.vim :mkdirp yes
|
||||
" color scheme
|
||||
"Plug 'morhetz/gruvbox'
|
||||
"Plug 'lifepillar/vim-solarized8'
|
||||
"Plug 'NLKNguyen/papercolor-theme'
|
||||
"Plug 'tomasr/molokai'
|
||||
"Plug 'joshdick/onedark.vim'
|
||||
"Plug 'challenger-deep-theme/vim', { 'as': 'challenger-deep' }
|
||||
Plug 'drewtempelmeyer/palenight.vim'
|
||||
#+end_src
|
||||
*** Airline
|
||||
VIM의 위아래에 Tab바와 같은것을 만들어 준다.
|
||||
#+begin_src shell :tangle ~/.config/nvim/init.vim :mkdirp yes
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Air-line
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
let g:airline#extensions#tabline#enabled = 1 " turn on buffer list
|
||||
set laststatus=2 " turn on bottom bar
|
||||
#+end_src
|
||||
|
||||
PluginManager
|
||||
#+begin_src shell :tangle ~/.config/nvim/plugList.vim :mkdirp yes
|
||||
Plug 'vim-airline/vim-airline'
|
||||
Plug 'vim-airline/vim-airline-themes'
|
||||
#+end_src
|
||||
|
||||
*** NerdTree
|
||||
예전에는 Nerdtree를 =F3= Keybinding하여 Explorer와 같이 띄워 사용하였다.
|
||||
#+begin_src shell :tangle ~/.config/nvim/init.vim :mkdirp yes
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" NERDTREE
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"map <F3> :NERDTreeToggle<cr>
|
||||
#+end_src
|
||||
|
||||
PluginManager
|
||||
#+begin_src shell :tangle ~/.config/nvim/plugList.vim :mkdirp yes
|
||||
"Plug 'scrooloose/nerdtree'
|
||||
#+end_src
|
||||
|
||||
현재는 순정으로 netrw 플러그인이 있기때문에 =:Ex= 커맨드와 =:R= 를 이용하여 사용한다.
|
||||
VIM은 =:Rx= 였던걸로?
|
||||
|
||||
*** Unimpaired
|
||||
그냥 버퍼이동 쉽게하려고 =:bnext= =:bprev= 대신에 이 플러그인에 바인딩된 =[b= =]b= 를 사용한다.
|
||||
|
||||
PluginManager
|
||||
#+begin_src shell :tangle ~/.config/nvim/plugList.vim :mkdirp yes
|
||||
Plug 'tpope/vim-unimpaired'
|
||||
#+end_src
|
||||
|
||||
*** Commentary
|
||||
Comment 쉽게 toggle, 키는 =gcc= 나 Visual로 라인선택 후 =gc= 사용한다.
|
||||
|
||||
PluginManager
|
||||
#+begin_src shell :tangle ~/.config/nvim/plugList.vim :mkdirp yes
|
||||
Plug 'tpope/vim-commentary'
|
||||
#+end_src
|
||||
|
||||
*** Git-fugitive
|
||||
=:Git commit= 과 같은 명령어 사용 가능해짐.
|
||||
|
||||
PluginManager
|
||||
#+begin_src shell :tangle ~/.config/nvim/plugList.vim :mkdirp yes
|
||||
Plug 'tpope/vim-fugitive' " git wrapper
|
||||
#+end_src
|
||||
|
||||
*** Git-Gutter
|
||||
변경점들을 하이라이트 해서 보여줌. =<F4>= 키로 하이라이트 토글 가능.
|
||||
#+begin_src shell :tangle ~/.config/nvim/init.vim :mkdirp yes
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Git Gutter
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
let g:gitgutter_highlight_lines = 1
|
||||
map <F4> :GitGutterLineHighlightsToggle<cr>
|
||||
#+end_src
|
||||
|
||||
PluginManager
|
||||
#+begin_src shell :tangle ~/.config/nvim/plugList.vim :mkdirp yes
|
||||
Plug 'airblade/vim-gitgutter' " git modified view;
|
||||
#+end_src
|
||||
*** Surround
|
||||
Visual로 선택하고 =S}= =S]= =S)= =S"= 와 같은 커맨드로 괄호 치기 가능.
|
||||
사실 Verilog 쓰는입장에서는 잘 안쓰게됨.
|
||||
|
||||
PluginManager
|
||||
#+begin_src shell :tangle ~/.config/nvim/plugList.vim :mkdirp yes
|
||||
Plug 'tpope/vim-surround'
|
||||
#+end_src
|
||||
|
||||
*** Easy Motion
|
||||
커서를 빠르게 이동함. =\w= 커맨드를 치면 워드단위로 하이라이트 되어 손쉽게 이동가능
|
||||
|
||||
#+begin_src shell :tangle ~/.config/nvim/init.vim :mkdirp yes
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" easymotion
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" <Leader>f{char} to move to {char}
|
||||
"map <Leader>f <Plug>(easymotion-bd-f)
|
||||
"nmap <Leader>f <Plug>(easymotion-overwin-f)
|
||||
|
||||
" s{char}{char} to move to {char}{char}
|
||||
nmap <Leader>s <Plug>(easymotion-overwin-f2)
|
||||
|
||||
" Move to line
|
||||
"map <Leader>L <Plug>(easymotion-bd-jk)
|
||||
"nmap <Leader>L <Plug>(easymotion-overwin-line)
|
||||
|
||||
" Move to word
|
||||
map <Leader>w <Plug>(easymotion-bd-w)
|
||||
nmap <Leader>w <Plug>(easymotion-overwin-w)
|
||||
#+end_src
|
||||
|
||||
|
||||
PluginManager
|
||||
#+begin_src shell :tangle ~/.config/nvim/plugList.vim :mkdirp yes
|
||||
Plug 'easymotion/vim-easymotion'
|
||||
#+end_src
|
||||
|
||||
*** COC(HDL-Checker가 시원찮음. 제거)
|
||||
Language Server Protocol 연동가능해짐.
|
||||
|
||||
Configuration은 :CocConfig를 쳐서 수정하거나 아래와 같은 경로에 파일을 위치시키면됨.
|
||||
- Windows는 ~/AppData/local/nvim/coc-settings.json
|
||||
- Linux는 ~/.config/nvim/coc-settings.json
|
||||
|
||||
Configuration (hdlChecker는 윈도우에서 잘 동작안하는것 같음.)
|
||||
Config 수정후 =:CocInstall= 을 통해 설치해야 적용됨.
|
||||
#+begin_src json
|
||||
{
|
||||
"languageserver": {
|
||||
"hdlChecker": {
|
||||
"command": "hdl_checker",
|
||||
"args": [
|
||||
"--lsp"
|
||||
],
|
||||
"rootPatterns": [".git/"],
|
||||
"filetypes": [
|
||||
"vhdl",
|
||||
"verilog",
|
||||
"systemverilog"
|
||||
],
|
||||
"trace.server": "verbose"
|
||||
},
|
||||
"clangd": {
|
||||
"command": "clangd",
|
||||
"args": ["--background-index"],
|
||||
"rootPatterns": ["compile_flags.txt", "compile_commands.json", ".vim/", ".git/", ".hg/"],
|
||||
"filetypes": ["c", "cpp", "objc", "objcpp"]
|
||||
},
|
||||
"rust": {
|
||||
"command": "ra_lsp_server",
|
||||
"filetypes": ["rust"],
|
||||
"rootPatterns": ["Cargo.toml"]
|
||||
}
|
||||
}
|
||||
}
|
||||
#+end_src
|
||||
|
||||
|
||||
PluginManager
|
||||
#+begin_src shell :tangle ~/.config/nvim/plugList.vim :mkdirp yes
|
||||
"Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
||||
#+end_src
|
||||
|
||||
|
||||
** Others
|
||||
#+begin_src shell :tangle ~/.config/nvim/plugList.vim :mkdirp yes
|
||||
call plug#end()
|
||||
#+end_src
|
||||
|
||||
*** Keybinding
|
||||
Vim의 Yank가 아닌 클립보드 복사를 위해 =Ctrl+C= =Ctrl+N= 으로 설정하였다. VIM의 Visual Mode 단축키와 Tmux의 Prefix를 피하고자 N을 사용하였다.
|
||||
또한 Neovim에서 제공하는 터미을 사용하기 위한 단축키 =<F12>= 와 레지스터 a를 매크로로 자주 활용하기 때문에 바인딩하여 활용성올 높였다.
|
||||
#+begin_src shell :tangle ~/.config/nvim/init.vim :mkdirp yes
|
||||
map <C-c> "+ygv"*y
|
||||
map <C-n> "+p
|
||||
map <F12> :cd %:p:h<cr>:term bash<cr>
|
||||
map <F7> @a
|
||||
#+end_src
|
||||
|
||||
*** Others
|
||||
#+begin_src shell :tangle ~/.config/nvim/init.vim :mkdirp yes
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Visual-star (Search using * / in visual modde)
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
xnoremap * :<C-u>call <SID>VSetSearch('/')<CR>/<C-R>=@/<CR><CR>
|
||||
xnoremap # :<C-u>call <SID>VSetSearch('?')<CR>?<C-R>=@/<CR><CR>
|
||||
|
||||
function! s:VSetSearch(cmdtype)
|
||||
let temp = @s
|
||||
norm! gv"sy
|
||||
let @/ = '\V' . substitute(escape(@s, a:cmdtype.'\'), '\n', '\\n', 'g')
|
||||
let @s = temp
|
||||
endfunction
|
||||
#+end_src
|
||||
* PluginManager
|
||||
** 설치
|
||||
*** Unix
|
||||
#+begin_src shell
|
||||
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
|
||||
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
|
||||
#+end_src
|
||||
*** Windows
|
||||
#+begin_src shell
|
||||
iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |`
|
||||
ni "$(@($env:XDG_DATA_HOME, $env:LOCALAPPDATA)[$null -eq $env:XDG_DATA_HOME])/nvim-data/site/autoload/plug.vim" -Force
|
||||
#+end_src
|
||||
129
.config/nvim/init.vim
Normal file
129
.config/nvim/init.vim
Normal file
@ -0,0 +1,129 @@
|
||||
" Vim Configuration
|
||||
set nocompatible "move using arrow key
|
||||
"filtype plugin on
|
||||
set number
|
||||
set ai "auto indent
|
||||
set si "smart indent
|
||||
set cindent " c style indent
|
||||
|
||||
set shiftwidth=4 "shift order 4step
|
||||
set tabstop=4 "tab order 4step
|
||||
set hlsearch "highlight empathize the word.
|
||||
|
||||
set history=1000 "history store depth
|
||||
set nobackup "no generate swp file
|
||||
set noswapfile
|
||||
set nowritebackup
|
||||
set backupdir=~/.backup/
|
||||
set directory=~/.backup/
|
||||
|
||||
set ruler "display the cursor position
|
||||
set title "display the title
|
||||
set showmatch "display the matched bracket
|
||||
"set nowrap "no auto linefeed
|
||||
set wmnu "auto word finder
|
||||
|
||||
set autochdir " auto change working directory
|
||||
|
||||
set hidden "buffer hidden
|
||||
set updatetime=300 " 300ms
|
||||
set cmdheight=2 " Better display for messages
|
||||
set shortmess+=c " don't give [ins-completion-menu] messages.
|
||||
set signcolumn=yes " always show signcolumns
|
||||
|
||||
|
||||
set backspace=indent,eol,start
|
||||
set fencs=ucs-bom,utf-8,cp949
|
||||
set clipboard^=unnamed,unnamedplus
|
||||
|
||||
set mouse=a
|
||||
|
||||
" PluginManager in vimrc
|
||||
runtime plugList.vim
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Colorscheme
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"""""""""""""" One Dark
|
||||
"colorscheme onedark
|
||||
"""""""""""""" Grub_box
|
||||
"let g:gruvbox_contrast_dark='soft'
|
||||
"set background=dark
|
||||
"colorscheme gruvbox
|
||||
"let g:airline_theme='gruvbox'
|
||||
"""""""""""""" Paper Color
|
||||
"set background=light
|
||||
"colorscheme PaperColor
|
||||
"let g:airline_theme='hybrid'
|
||||
"let g:PaperColor_Theme_Options = {
|
||||
" \ 'theme': {
|
||||
" \ 'default.light': {
|
||||
" \ 'transparent_background': 1
|
||||
" \ }
|
||||
" \ }
|
||||
" \ }
|
||||
"""""""""""""" Molokai
|
||||
"let g:molokai_original = 1
|
||||
"colorscheme molokai
|
||||
"""""""""""""" Solarized 8
|
||||
"set background=light
|
||||
"colorscheme solarized8_high
|
||||
"let g:airline_theme='solarized8'
|
||||
"""""""""""""" Challenger Deep
|
||||
"colorscheme challenger_deep
|
||||
colorscheme palenight
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Air-line
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
let g:airline#extensions#tabline#enabled = 1 " turn on buffer list
|
||||
set laststatus=2 " turn on bottom bar
|
||||
|
||||
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Git Gutter
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
let g:gitgutter_highlight_lines = 1
|
||||
map <F4> :GitGutterLineHighlightsToggle<cr>
|
||||
|
||||
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" easymotion
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" <Leader>f{char} to move to {char}
|
||||
"map <Leader>f <Plug>(easymotion-bd-f)
|
||||
"nmap <Leader>f <Plug>(easymotion-overwin-f)
|
||||
|
||||
" s{char}{char} to move to {char}{char}
|
||||
nmap <Leader>s <Plug>(easymotion-overwin-f2)
|
||||
|
||||
" Move to line
|
||||
"map <Leader>L <Plug>(easymotion-bd-jk)
|
||||
"nmap <Leader>L <Plug>(easymotion-overwin-line)
|
||||
|
||||
" Move to word
|
||||
map <Leader>w <Plug>(easymotion-bd-w)
|
||||
nmap <Leader>w <Plug>(easymotion-overwin-w)
|
||||
|
||||
map <C-c> "+ygv"*y
|
||||
map <C-n> "+p
|
||||
map <F12> :cd %:p:h<cr>:term bash<cr>
|
||||
map <F7> @a
|
||||
map <F8> "byaw/incNumber/b
|
||||
cw"bp
|
||||
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Visual-star (Search using * / in visual modde)
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
xnoremap * :<C-u>call <SID>VSetSearch('/')<CR>/<C-R>=@/<CR><CR>
|
||||
xnoremap # :<C-u>call <SID>VSetSearch('?')<CR>?<C-R>=@/<CR><CR>
|
||||
|
||||
function! s:VSetSearch(cmdtype)
|
||||
let temp = @s
|
||||
norm! gv"sy
|
||||
let @/ = '\V' . substitute(escape(@s, a:cmdtype.'\'), '\n', '\\n', 'g')
|
||||
let @s = temp
|
||||
endfunction
|
||||
|
||||
|
||||
|
||||
25
.config/nvim/plugList.vim
Normal file
25
.config/nvim/plugList.vim
Normal file
@ -0,0 +1,25 @@
|
||||
call plug#begin('~/.vim/plugged')
|
||||
Plug 'lambdalisue/suda.vim'
|
||||
" color scheme
|
||||
"Plug 'morhetz/gruvbox'
|
||||
"Plug 'lifepillar/vim-solarized8'
|
||||
"Plug 'NLKNguyen/papercolor-theme'
|
||||
"Plug 'tomasr/molokai'
|
||||
"Plug 'joshdick/onedark.vim'
|
||||
"Plug 'challenger-deep-theme/vim', { 'as': 'challenger-deep' }
|
||||
Plug 'drewtempelmeyer/palenight.vim'
|
||||
Plug 'vim-airline/vim-airline'
|
||||
Plug 'vim-airline/vim-airline-themes'
|
||||
Plug 'tpope/vim-unimpaired'
|
||||
Plug 'tpope/vim-commentary'
|
||||
Plug 'tpope/vim-fugitive' " git wrapper
|
||||
Plug 'airblade/vim-gitgutter' " git modified view;
|
||||
Plug 'tpope/vim-surround'
|
||||
Plug 'easymotion/vim-easymotion'
|
||||
|
||||
"Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
||||
|
||||
|
||||
|
||||
call plug#end()
|
||||
|
||||
12
.config/xmobar/scripts/battery_icon.sh
Executable file
12
.config/xmobar/scripts/battery_icon.sh
Executable file
@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
STATUS=`cat /sys/class/power_supply/BAT0/status`
|
||||
|
||||
if [ $STATUS = "Charging" ]; then
|
||||
echo "<fc=#f0c674><fn=1></fn></fc>"
|
||||
elif [ $STATUS = "Discharging" ]; then
|
||||
echo "<fc=#e86f69><fn=1></fn></fc>"
|
||||
else
|
||||
echo "<fn=1></fn>"
|
||||
fi
|
||||
|
||||
48
.config/xmobar/trayer-padding-icon.sh
Executable file
48
.config/xmobar/trayer-padding-icon.sh
Executable file
@ -0,0 +1,48 @@
|
||||
#!/bin/sh
|
||||
# Copied from https://github.com/jaor/xmobar/issues/239#issuecomment-233206552
|
||||
# Detects the width of running trayer-srg window (xprop name 'panel')
|
||||
# and creates an XPM icon of that width, 1px height, and transparent.
|
||||
# Outputs an <icon>-tag for use in xmobar to display the generated
|
||||
# XPM icon.
|
||||
#
|
||||
# Run script from xmobar:
|
||||
# `Run Com "/where/ever/trayer-padding-icon.sh" [] "trayerpad" 10`
|
||||
# and use `%trayerpad%` in your template.
|
||||
|
||||
|
||||
# Function to create a transparent Wx1 px XPM icon
|
||||
create_xpm_icon () {
|
||||
timestamp=$(date)
|
||||
pixels=$(for i in `seq $1`; do echo -n "."; done)
|
||||
|
||||
cat << EOF > "$2"
|
||||
/* XPM *
|
||||
static char * trayer_pad_xpm[] = {
|
||||
/* This XPM icon is used for padding in xmobar to */
|
||||
/* leave room for trayer-srg. It is dynamically */
|
||||
/* updated by by trayer-padding-icon.sh which is run */
|
||||
/* by xmobar. */
|
||||
/* Created: ${timestamp} */
|
||||
/* <w/cols> <h/rows> <colors> <chars per pixel> */
|
||||
"$1 1 1 1",
|
||||
/* Colors (none: transparent) */
|
||||
". c none",
|
||||
/* Pixels */
|
||||
"$pixels"
|
||||
};
|
||||
EOF
|
||||
}
|
||||
|
||||
# Width of the trayer window
|
||||
width=$(xprop -name panel | grep 'program specified minimum size' | cut -d ' ' -f 5)
|
||||
|
||||
# Icon file name
|
||||
iconfile="/tmp/trayer-padding-${width}px.xpm"
|
||||
|
||||
# If the desired icon does not exist create it
|
||||
if [ ! -f $iconfile ]; then
|
||||
create_xpm_icon $width $iconfile
|
||||
fi
|
||||
|
||||
# Output the icon tag for xmobar
|
||||
echo "<icon=${iconfile}/>"
|
||||
43
.config/xmobar/xmobarrc_desktop_fhd
Normal file
43
.config/xmobar/xmobarrc_desktop_fhd
Normal file
@ -0,0 +1,43 @@
|
||||
-- http://projects.haskell.org/xmobar/
|
||||
-- install xmobar with these flags: --flags="with_alsa" --flags="with_mpd" --flags="with_xft" OR --flags="all_extensions"
|
||||
-- you can find weather location codes here: http://weather.noaa.gov/index.html
|
||||
|
||||
Config { font = "xft:NanumGothic:weight=bold:pixelsize=11:antialias=true:hinting=true"
|
||||
, additionalFonts = [ "xft:Mononoki Nerd Font:pixelsize=11:antialias=true:hinting=true"
|
||||
, "xft:FontAwesome:pixelsize=12"
|
||||
]
|
||||
, bgColor = "#282c34"
|
||||
, fgColor = "#ff6c6b"
|
||||
, position = Static { xpos = 2560 , ypos = 0, width = 1920, height = 24 }
|
||||
, lowerOnStart = True
|
||||
, hideOnStart = False
|
||||
, allDesktops = True
|
||||
, persistent = True
|
||||
, iconRoot = "/home/jaeus/.xmonad/" -- default: "."
|
||||
, commands = [
|
||||
-- Time and date
|
||||
Run Date "<fn=1>\xf133 </fn> %b %d %Y - (%H:%M) " "date" 50
|
||||
-- Network up and down
|
||||
, Run Network "enp10s0" ["-t", "<fn=1>\xf0ab </fn> <rx>kb <fn=1>\xf0aa </fn> <tx>kb"] 20
|
||||
-- Cpu usage in percent
|
||||
, Run Cpu ["-t", "<fn=1>\xf108 </fn> cpu: (<total>%)","-H","50","--high","red"] 20
|
||||
-- Ram used number and percent
|
||||
, Run Memory ["-t", "<fn=1>\xf233 </fn> mem: <used>M (<usedratio>%)"] 20
|
||||
-- Disk space free
|
||||
, Run DiskU [("/", "<fn=1>\xf0c7 </fn> hdd: <free> free")] [] 60
|
||||
-- Runs custom script to check for pacman updates.
|
||||
-- This script is in my dotfiles repo in .local/bin.
|
||||
, Run Com "~/.local/bin/pacupdate" [] "pacupdate" 36000
|
||||
-- Runs a standard shell command 'uname -r' to get kernel version
|
||||
, Run Com "uname" ["-r"] "" 3600
|
||||
-- Prints out the left side items such as workspaces, layout, etc.
|
||||
-- The workspaces are 'clickable' in my configs.
|
||||
, Run Com "/bin/sh" [ "-c", "/home/jaeus/.config/xmobar/trayer-padding-icon.sh" ] "trayerpad" 20
|
||||
-- Prints out the left side items such as workspaces, layout, etc.
|
||||
-- The workspaces are 'clickable' in my configs.
|
||||
, Run UnsafeStdinReader
|
||||
]
|
||||
, sepChar = "%"
|
||||
, alignSep = "}{"
|
||||
, template = " <action=`xdotool key control+alt+g`><icon=haskell_20.xpm/> </action><fc=#666666> |</fc> %UnsafeStdinReader% }{ <fc=#666666> |</fc> <fc=#b3afc2><fn=1> </fn> %uname% </fc><fc=#666666> |</fc> <fc=#ecbe7b> %cpu% </fc><fc=#666666> |</fc> <fc=#ff6c6b> %memory% </fc><fc=#666666> |</fc> <fc=#51afef> %disku% </fc><fc=#666666> |</fc> <fc=#98be65> %enp10s0% </fc><fc=#666666> |</fc> <fc=#46d9ff> %date% </fc>"
|
||||
}
|
||||
52
.config/xmobar/xmobarrc_desktop_qhd
Normal file
52
.config/xmobar/xmobarrc_desktop_qhd
Normal file
@ -0,0 +1,52 @@
|
||||
-- http://projects.haskell.org/xmobar/
|
||||
-- install xmobar with these flags: --flags="with_alsa" --flags="with_mpd" --flags="with_xft" OR --flags="all_extensions"
|
||||
-- you can find weather location codes here: http://weather.noaa.gov/index.html
|
||||
|
||||
Config { -- font = "xft:Noto Sans CJK KR:weight=bold:pixelsize=14:antialias=true:hinting=true"
|
||||
-- , additionalFonts = [ "xft:Mononoki Nerd Font:pixelsize=14:antialias=true:hinting=true"
|
||||
-- , "xft:FontAwesome:pixelsize=16"
|
||||
-- ]
|
||||
--font = "xft:DejaVu Sans:size=9.5:antialias=true"
|
||||
font = "xft:NanumGothic:weight=bold:pixelsize=14:antialias=true:hinting=true"
|
||||
, additionalFonts = [ "xft:Mononoki Nerd Font:pixelsize=11:antialias=true:hinting=true"
|
||||
, "xft:FontAwesome:pixelsize=12"
|
||||
]
|
||||
, bgColor = "#282c34"
|
||||
, fgColor = "#ff6c6b"
|
||||
, position = Static { xpos = 0 , ypos = 0, width = 2560, height = 36 }
|
||||
, lowerOnStart = True
|
||||
, hideOnStart = False
|
||||
, allDesktops = True
|
||||
, persistent = True
|
||||
, iconRoot = "/home/jaeus/.xmonad/" -- default: "."
|
||||
, commands = [
|
||||
Run Date "<fn=1> </fn> %A %B %d <fn=1> </fn> %H:%M" "date" 50
|
||||
, Run BatteryP ["BAT0"] ["-t", "<left> (<timeleft>)", "-S", "True"
|
||||
,"-L","20","-H","70"
|
||||
,"-l","#ff3333",
|
||||
"--normal","#f0c674",
|
||||
"--high", "#99cc99" ] 50
|
||||
, Run Com "bash" ["/home/jaeus/.config/xmobar/scripts/battery_icon.sh"] "batteryIcon" 50
|
||||
-- Time and date
|
||||
-- Run Date "<fn=1>\xf133 </fn> %b %d %Y - (%H:%M) " "date" 50
|
||||
-- Network up and down
|
||||
, Run Network "enp10s0" ["-t", "<fn=1>\xf0ab </fn> <rx>kb <fn=1>\xf0aa </fn> <tx>kb"] 20
|
||||
-- Cpu usage in percent
|
||||
, Run Cpu ["-t", "<fn=1>\xf108 </fn> (<total>%)","-H","50","--high","red"] 20
|
||||
-- Ram used number and percent
|
||||
, Run Memory ["-t", "<fn=1>\xf233 </fn> <used>M (<usedratio>%)"] 20
|
||||
-- Disk space free
|
||||
, Run DiskU [("/", "<fn=1>\xf0c7 </fn> <free> free")] [] 60
|
||||
-- Runs a standard shell command 'uname -r' to get kernel version
|
||||
, Run Com "uname" ["-r"] "" 3600
|
||||
-- Prints out the left side items such as workspaces, layout, etc.
|
||||
-- The workspaces are 'clickable' in my configs.
|
||||
, Run Com "/bin/sh" [ "-c", "/home/jaeus/.config/xmobar/trayer-padding-icon.sh" ] "trayerpad" 20
|
||||
-- Prints out the left side items such as workspaces, layout, etc.
|
||||
-- The workspaces are 'clickable' in my configs.
|
||||
, Run UnsafeStdinReader
|
||||
]
|
||||
, sepChar = "%"
|
||||
, alignSep = "}{"
|
||||
, template = " <action=`xdotool key control+alt+g`><icon=haskell_20.xpm/> </action><fc=#666666> |</fc> %UnsafeStdinReader% }{ <fc=#666666> |</fc> <fc=#b3afc2><fn=1> </fn> %uname% </fc> <fc=#666666> |</fc><fc=#ecbe7b> %cpu% </fc><fc=#666666> |</fc> <fc=#ff6c6b> %memory% </fc><fc=#666666> |</fc> <fc=#51afef> %disku% </fc><fc=#666666> |</fc> <fc=#98be65> %enp10s0% </fc><fc=#666666> |</fc><fc=#46d9ff> %date% </fc><fc=#666666> |</fc>%trayerpad%"
|
||||
}
|
||||
43
.config/xmobar/xmobarrc_labtop_fhd
Normal file
43
.config/xmobar/xmobarrc_labtop_fhd
Normal file
@ -0,0 +1,43 @@
|
||||
Config { font = "xft:NanumGothic:weight=bold:pixelsize=11:antialias=true:hinting=true"
|
||||
, additionalFonts = [ "xft:Mononoki Nerd Font:pixelsize=11:antialias=true:hinting=true"
|
||||
, "xft:FontAwesome:pixelsize=12"
|
||||
]
|
||||
, bgColor = "#282c34"
|
||||
, fgColor = "#ff6c6b"
|
||||
, position = Static { xpos = 0 , ypos = 0, width = 1920, height = 24 }
|
||||
, lowerOnStart = True
|
||||
, hideOnStart = False
|
||||
, allDesktops = True
|
||||
, persistent = True
|
||||
, iconRoot = "/home/jaeus/.xmonad/" -- default: "."
|
||||
, commands = [
|
||||
Run Date "<fn=1> </fn> %A %B %d <fn=1> </fn> %H:%M" "date" 50
|
||||
, Run BatteryP ["BAT0"] ["-t", "<left> (<timeleft>)", "-S", "True"
|
||||
,"-L","20","-H","70"
|
||||
,"-l","#ff3333",
|
||||
"--normal","#f0c674",
|
||||
"--high", "#99cc99" ] 50
|
||||
, Run Com "bash" ["/home/jaeus/.config/xmobar/scripts/battery_icon.sh"] "batteryIcon" 50
|
||||
-- Time and date
|
||||
-- Run Date "<fn=1>\xf133 </fn> %b %d %Y - (%H:%M) " "date" 50
|
||||
-- Network up and down
|
||||
, Run Network "wlp3s0" ["-t", "<fn=1>\xf0ab </fn> <rx>kb <fn=1>\xf0aa </fn> <tx>kb"] 20
|
||||
-- Cpu usage in percent
|
||||
, Run Cpu ["-t", "<fn=1>\xf108 </fn> (<total>%)","-H","50","--high","red"] 20
|
||||
-- Ram used number and percent
|
||||
, Run Memory ["-t", "<fn=1>\xf233 </fn> <used>M (<usedratio>%)"] 20
|
||||
-- Disk space free
|
||||
, Run DiskU [("/", "<fn=1>\xf0c7 </fn> <free> free")] [] 60
|
||||
-- Runs a standard shell command 'uname -r' to get kernel version
|
||||
, Run Com "uname" ["-r"] "" 3600
|
||||
-- Prints out the left side items such as workspaces, layout, etc.
|
||||
-- The workspaces are 'clickable' in my configs.
|
||||
, Run Com "/bin/sh" [ "-c", "/home/jaeus/.config/xmobar/trayer-padding-icon.sh" ] "trayerpad" 20
|
||||
-- Prints out the left side items such as workspaces, layout, etc.
|
||||
-- The workspaces are 'clickable' in my configs.
|
||||
, Run UnsafeStdinReader
|
||||
]
|
||||
, sepChar = "%"
|
||||
, alignSep = "}{"
|
||||
, template = " <action=`xdotool key control+alt+g`><icon=haskell_20.xpm/> </action><fc=#666666> |</fc> %UnsafeStdinReader% }{ <fc=#666666> |</fc> <fc=#b3afc2><fn=1> </fn> %uname% </fc> <fc=#666666> |</fc><fc=#ecbe7b> %cpu% </fc><fc=#666666> |</fc> <fc=#ff6c6b> %memory% </fc><fc=#666666> |</fc> <fc=#51afef> %disku% </fc><fc=#666666> |</fc> <fc=#98be65> %wlp3s0% </fc><fc=#666666> |</fc><fc=#46d9ff> %date% </fc><fc=#666666> |</fc> %batteryIcon% %battery%<fc=#666666> |</fc>%trayerpad%"
|
||||
}
|
||||
3
.gitconfig
Normal file
3
.gitconfig
Normal file
@ -0,0 +1,3 @@
|
||||
[user]
|
||||
name = JaeYoo-Im
|
||||
email = cpu3792@gmail.com
|
||||
14
.gitignore
vendored
Normal file
14
.gitignore
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
.ssh/*
|
||||
!.ssh/config
|
||||
|
||||
.xmonad/*
|
||||
!.xmonad/xmonad.org
|
||||
!.xmonad/picom.conf
|
||||
!.xmonad/haskell_20.xpm
|
||||
|
||||
.emacs.d/*
|
||||
!.emacs.d/desktop.org
|
||||
!.emacs.d/emacs.org
|
||||
!.emacs.d/init.el
|
||||
!.emacs.d/exwm/
|
||||
|
||||
3
.julia/startup.jl
Normal file
3
.julia/startup.jl
Normal file
@ -0,0 +1,3 @@
|
||||
#using Plots
|
||||
#using PlotThemes
|
||||
#theme(:juno)
|
||||
36
.minttyrc
Normal file
36
.minttyrc
Normal file
@ -0,0 +1,36 @@
|
||||
# Challenger Deep
|
||||
ForegroundColour=161,176,184
|
||||
BackgroundColour=41,45,62
|
||||
Black=37,37,37
|
||||
BoldBlack=37,37,37
|
||||
Red=255,83,112
|
||||
BoldRed=255,83,112
|
||||
Green=195,232,141
|
||||
BoldGreen=195,232,141
|
||||
Yellow=255,203,107
|
||||
BoldYellow=255,203,107
|
||||
Blue=130,170,255
|
||||
BoldBlue=130,170,255
|
||||
Magenta=199,146,234
|
||||
BoldMagenta=199,146,234g
|
||||
Cyan=137,221,255
|
||||
BoldCyan=137,221,255
|
||||
White=245,245,245
|
||||
BoldWhite=245,245,245
|
||||
|
||||
Font=Fira Code Retina
|
||||
FontHeight=12
|
||||
Term=xterm-256color
|
||||
Locale=ko_KR
|
||||
Charset=UTF-8
|
||||
FontSmoothing=default
|
||||
AllowBlinking=no
|
||||
BoldAsFont=no
|
||||
CursorType=block
|
||||
CursorBlinks=yes
|
||||
BellTaskbar=no
|
||||
BellType=0
|
||||
BellFlash=no
|
||||
FontWeight=400
|
||||
FontIsBold=no
|
||||
Transparency=medium
|
||||
28
.ssh/config
Normal file
28
.ssh/config
Normal file
@ -0,0 +1,28 @@
|
||||
###################################################################
|
||||
Host ju-server
|
||||
User jaeus
|
||||
# NOTE : Do not commit for security
|
||||
Hostname 127.0.0.1
|
||||
Port 22
|
||||
# ProxyCommand ssh -W %h:%p odroid
|
||||
Host github.com
|
||||
User git
|
||||
# ProxyCommand ssh -W %h:%p odroid
|
||||
###################################################################
|
||||
# Proxy Server
|
||||
Host odroid
|
||||
Hostname 192.168.1.168
|
||||
User jaeus
|
||||
|
||||
Host bsat
|
||||
User bsat
|
||||
Hostname 192.168.1.31
|
||||
Host zynq
|
||||
User jaeus
|
||||
hostname 192.168.1.145
|
||||
Host lora_1
|
||||
User root
|
||||
hostname 192.168.144.10
|
||||
Host lora_2
|
||||
User root
|
||||
hostname 192.168.144.11
|
||||
25
.tmux.conf
Normal file
25
.tmux.conf
Normal file
@ -0,0 +1,25 @@
|
||||
set -g default-terminal "screen-256color"
|
||||
set -g mouse on
|
||||
|
||||
# utf8 is on
|
||||
# set -g utf8 on
|
||||
# set -g status-utf8 on
|
||||
|
||||
# address vim mode switching delay (http://superuser.com/a/252717/65504)
|
||||
set -s escape-time 0
|
||||
|
||||
# scrollback buffer size increase
|
||||
set -g history-limit 100000
|
||||
|
||||
# List of plugins
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||
|
||||
# Other examples:
|
||||
# set -g @plugin 'github_username/plugin_name'
|
||||
# set -g @plugin 'git@github.com/user/plugin'
|
||||
# set -g @plugin 'git@bitbucket.com/user/plugin'
|
||||
|
||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||
run -b '~/.tmux/plugins/tpm/tpm'
|
||||
25
.xmonad/haskell_20.xpm
Normal file
25
.xmonad/haskell_20.xpm
Normal file
@ -0,0 +1,25 @@
|
||||
/* XPM */
|
||||
static char * haskell_20_xpm[] = {
|
||||
"20 20 2 1",
|
||||
" c None",
|
||||
". c #FFFFFF",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
".... .... ",
|
||||
" .... ... ",
|
||||
" ... .... ",
|
||||
" .... .... ",
|
||||
" .... ... ........",
|
||||
" ... .... .......",
|
||||
" .... .... ",
|
||||
" .... .... ",
|
||||
" ... ...... .....",
|
||||
" .... ....... ....",
|
||||
" .... .... ... ",
|
||||
" ... .... .... ",
|
||||
" .... ... .... ",
|
||||
".... .... ... ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
||||
443
.xmonad/picom.conf
Normal file
443
.xmonad/picom.conf
Normal file
@ -0,0 +1,443 @@
|
||||
#################################
|
||||
# Shadows #
|
||||
#################################
|
||||
|
||||
|
||||
# Enabled client-side shadows on windows. Note desktop windows
|
||||
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
|
||||
# unless explicitly requested using the wintypes option.
|
||||
#
|
||||
# shadow = false
|
||||
shadow = true;
|
||||
|
||||
# The blur radius for shadows, in pixels. (defaults to 12)
|
||||
# shadow-radius = 12
|
||||
shadow-radius = 7;
|
||||
|
||||
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
||||
# shadow-opacity = .75
|
||||
|
||||
# The left offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-x = -15
|
||||
shadow-offset-x = -7;
|
||||
|
||||
# The top offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-y = -15
|
||||
shadow-offset-y = -7;
|
||||
|
||||
# Avoid drawing shadows on dock/panel windows. This option is deprecated,
|
||||
# you should use the *wintypes* option in your config file instead.
|
||||
#
|
||||
# no-dock-shadow = false
|
||||
|
||||
# Don't draw shadows on drag-and-drop windows. This option is deprecated,
|
||||
# you should use the *wintypes* option in your config file instead.
|
||||
#
|
||||
# no-dnd-shadow = false
|
||||
|
||||
# Red color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-red = 0
|
||||
|
||||
# Green color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-green = 0
|
||||
|
||||
# Blue color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-blue = 0
|
||||
|
||||
# Do not paint shadows on shaped windows. Note shaped windows
|
||||
# here means windows setting its shape through X Shape extension.
|
||||
# Those using ARGB background is beyond our control.
|
||||
# Deprecated, use
|
||||
# shadow-exclude = 'bounding_shaped'
|
||||
# or
|
||||
# shadow-exclude = 'bounding_shaped && !rounded_corners'
|
||||
# instead.
|
||||
#
|
||||
# shadow-ignore-shaped = ''
|
||||
|
||||
# Specify a list of conditions of windows that should have no shadow.
|
||||
#
|
||||
# examples:
|
||||
# shadow-exclude = "n:e:Notification";
|
||||
#
|
||||
# shadow-exclude = []
|
||||
shadow-exclude = [
|
||||
"name = 'Notification'",
|
||||
"class_g ?= 'Notify-osd'",
|
||||
"name = 'Plank'",
|
||||
"name = 'Docky'",
|
||||
"name = 'Kupfer'",
|
||||
"name = 'xfce4-notifyd'",
|
||||
"name *= 'VLC'",
|
||||
"name *= 'compton'",
|
||||
"name *= 'Chromium'",
|
||||
"name *= 'Chrome'",
|
||||
"class_g = 'Firefox' && argb",
|
||||
"class_g = 'Conky'",
|
||||
"class_g = 'Kupfer'",
|
||||
"class_g = 'Synapse'",
|
||||
"class_g ?= 'Notify-osd'",
|
||||
"class_g ?= 'Cairo-dock'",
|
||||
"class_g = 'Cairo-clock'",
|
||||
"class_g ?= 'Xfce4-notifyd'",
|
||||
"class_g ?= 'Xfce4-power-manager'",
|
||||
"_GTK_FRAME_EXTENTS@:c",
|
||||
];
|
||||
|
||||
# Add this one too for ...
|
||||
# "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
|
||||
# Add this one above to the list to have no shadow in Openbox menu
|
||||
# "! name~=''",
|
||||
|
||||
# Specify a X geometry that describes the region in which shadow should not
|
||||
# be painted in, such as a dock window region. Use
|
||||
# shadow-exclude-reg = "x10+0+0"
|
||||
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
|
||||
#
|
||||
# shadow-exclude-reg = ""
|
||||
|
||||
# Crop shadow of a window fully on a particular Xinerama screen to the screen.
|
||||
# xinerama-shadow-crop = false
|
||||
|
||||
|
||||
#################################
|
||||
# Fading #
|
||||
#################################
|
||||
|
||||
|
||||
# Fade windows in/out when opening/closing and when opacity changes,
|
||||
# unless no-fading-openclose is used.
|
||||
# fading = false
|
||||
fading = false
|
||||
|
||||
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
|
||||
# fade-in-step = 0.028
|
||||
fade-in-step = 0.03;
|
||||
|
||||
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
|
||||
# fade-out-step = 0.03
|
||||
fade-out-step = 0.03;
|
||||
|
||||
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
|
||||
# fade-delta = 10
|
||||
|
||||
# Specify a list of conditions of windows that should not be faded.
|
||||
# fade-exclude = []
|
||||
|
||||
# Do not fade on window open/close.
|
||||
# no-fading-openclose = false
|
||||
|
||||
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
|
||||
# no-fading-destroyed-argb = false
|
||||
|
||||
|
||||
#################################
|
||||
# Transparency / Opacity #
|
||||
#################################
|
||||
|
||||
|
||||
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
||||
# inactive-opacity = 1
|
||||
inactive-opacity = 1;
|
||||
|
||||
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
||||
# frame-opacity = 1.0
|
||||
frame-opacity = 1;
|
||||
|
||||
# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
|
||||
# menu-opacity = 1.0
|
||||
|
||||
# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
|
||||
# inactive-opacity-override = true
|
||||
inactive-opacity-override = false;
|
||||
|
||||
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
|
||||
# active-opacity = 1.0
|
||||
|
||||
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
|
||||
# inactive-dim = 0.0
|
||||
|
||||
# Specify a list of conditions of windows that should always be considered focused.
|
||||
# focus-exclude = []
|
||||
focus-exclude = [ "class_g = 'Cairo-clock'" ];
|
||||
|
||||
# Use fixed inactive dim value, instead of adjusting according to window opacity.
|
||||
# inactive-dim-fixed = 1.0
|
||||
|
||||
# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
|
||||
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
|
||||
# Note we don't make any guarantee about possible conflicts with other
|
||||
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
|
||||
# example:
|
||||
# opacity-rule = [ "80:class_g = 'URxvt'" ];
|
||||
#
|
||||
opacity-rule = [ "80:class_g = 'Alacritty'"];
|
||||
|
||||
|
||||
#################################
|
||||
# Background-Blurring #
|
||||
#################################
|
||||
|
||||
|
||||
# Parameters for background blurring, see the *BLUR* section for more information.
|
||||
# blur-method =
|
||||
# blur-size = 12
|
||||
#
|
||||
# blur-deviation = false
|
||||
|
||||
# Blur background of semi-transparent / ARGB windows.
|
||||
# Bad in performance, with driver-dependent behavior.
|
||||
# The name of the switch may change without prior notifications.
|
||||
#
|
||||
# blur-background = false
|
||||
|
||||
# Blur background of windows when the window frame is not opaque.
|
||||
# Implies:
|
||||
# blur-background
|
||||
# Bad in performance, with driver-dependent behavior. The name may change.
|
||||
#
|
||||
# blur-background-frame = false
|
||||
|
||||
|
||||
# Use fixed blur strength rather than adjusting according to window opacity.
|
||||
# blur-background-fixed = false
|
||||
|
||||
|
||||
# Specify the blur convolution kernel, with the following format:
|
||||
# example:
|
||||
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
|
||||
#
|
||||
# blur-kern = ''
|
||||
blur-kern = "3x3box";
|
||||
|
||||
|
||||
# Exclude conditions for background blur.
|
||||
# blur-background-exclude = []
|
||||
blur-background-exclude = [
|
||||
"window_type = 'dock'",
|
||||
"window_type = 'desktop'",
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
];
|
||||
|
||||
#################################
|
||||
# General Settings #
|
||||
#################################
|
||||
|
||||
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
|
||||
# daemon = false
|
||||
|
||||
# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
|
||||
# `xrender` is the default one.
|
||||
#
|
||||
# backend = 'glx'
|
||||
backend = "xrender";
|
||||
|
||||
# Enable/disable VSync. Set to false for transparency in VirtualBox.
|
||||
vsync = false
|
||||
#vsync = true
|
||||
|
||||
# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
|
||||
# dbus = false
|
||||
|
||||
# Try to detect WM windows (a non-override-redirect window with no
|
||||
# child that has 'WM_STATE') and mark them as active.
|
||||
#
|
||||
# mark-wmwin-focused = false
|
||||
mark-wmwin-focused = true;
|
||||
|
||||
# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
|
||||
# mark-ovredir-focused = false
|
||||
mark-ovredir-focused = true;
|
||||
|
||||
# Try to detect windows with rounded corners and don't consider them
|
||||
# shaped windows. The accuracy is not very high, unfortunately.
|
||||
#
|
||||
# detect-rounded-corners = false
|
||||
detect-rounded-corners = true;
|
||||
|
||||
# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
|
||||
# not passing '_NET_WM_OPACITY' of client windows to frame windows.
|
||||
#
|
||||
# detect-client-opacity = false
|
||||
detect-client-opacity = true;
|
||||
|
||||
# Specify refresh rate of the screen. If not specified or 0, picom will
|
||||
# try detecting this with X RandR extension.
|
||||
#
|
||||
# refresh-rate = 60
|
||||
refresh-rate = 0
|
||||
|
||||
# Limit picom to repaint at most once every 1 / 'refresh_rate' second to
|
||||
# boost performance. This should not be used with
|
||||
# vsync drm/opengl/opengl-oml
|
||||
# as they essentially does sw-opti's job already,
|
||||
# unless you wish to specify a lower refresh rate than the actual value.
|
||||
#
|
||||
# sw-opti =
|
||||
|
||||
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
|
||||
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
|
||||
# provided that the WM supports it.
|
||||
#
|
||||
# use-ewmh-active-win = false
|
||||
|
||||
# Unredirect all windows if a full-screen opaque window is detected,
|
||||
# to maximize performance for full-screen windows. Known to cause flickering
|
||||
# when redirecting/unredirecting windows.
|
||||
#
|
||||
# unredir-if-possible = false
|
||||
|
||||
# Delay before unredirecting the window, in milliseconds. Defaults to 0.
|
||||
# unredir-if-possible-delay = 0
|
||||
|
||||
# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
|
||||
# unredir-if-possible-exclude = []
|
||||
|
||||
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
|
||||
# in the same group focused at the same time.
|
||||
#
|
||||
# detect-transient = false
|
||||
detect-transient = true
|
||||
|
||||
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
|
||||
# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if
|
||||
# detect-transient is enabled, too.
|
||||
#
|
||||
# detect-client-leader = false
|
||||
detect-client-leader = true
|
||||
|
||||
# Resize damaged region by a specific number of pixels.
|
||||
# A positive value enlarges it while a negative one shrinks it.
|
||||
# If the value is positive, those additional pixels will not be actually painted
|
||||
# to screen, only used in blur calculation, and such. (Due to technical limitations,
|
||||
# with use-damage, those pixels will still be incorrectly painted to screen.)
|
||||
# Primarily used to fix the line corruption issues of blur,
|
||||
# in which case you should use the blur radius value here
|
||||
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
|
||||
# with a 5x5 one you use `--resize-damage 2`, and so on).
|
||||
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
|
||||
#
|
||||
# resize-damage = 1
|
||||
|
||||
# Specify a list of conditions of windows that should be painted with inverted color.
|
||||
# Resource-hogging, and is not well tested.
|
||||
#
|
||||
# invert-color-include = []
|
||||
|
||||
# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
|
||||
# Might cause incorrect opacity when rendering transparent content (but never
|
||||
# practically happened) and may not work with blur-background.
|
||||
# My tests show a 15% performance boost. Recommended.
|
||||
#
|
||||
# glx-no-stencil = false
|
||||
|
||||
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||
# Probably could improve performance on rapid window content changes,
|
||||
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
|
||||
# Recommended if it works.
|
||||
#
|
||||
# glx-no-rebind-pixmap = false
|
||||
|
||||
# Disable the use of damage information.
|
||||
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
|
||||
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
|
||||
# The opposing option is use-damage
|
||||
#
|
||||
# no-use-damage = false
|
||||
use-damage = true
|
||||
|
||||
# Use X Sync fence to sync clients' draw calls, to make sure all draw
|
||||
# calls are finished before picom starts drawing. Needed on nvidia-drivers
|
||||
# with GLX backend for some users.
|
||||
#
|
||||
# xrender-sync-fence = false
|
||||
|
||||
# GLX backend: Use specified GLSL fragment shader for rendering window contents.
|
||||
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
|
||||
# in the source tree for examples.
|
||||
#
|
||||
# glx-fshader-win = ''
|
||||
|
||||
# Force all windows to be painted with blending. Useful if you
|
||||
# have a glx-fshader-win that could turn opaque pixels transparent.
|
||||
#
|
||||
# force-win-blend = false
|
||||
|
||||
# Do not use EWMH to detect fullscreen windows.
|
||||
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
|
||||
#
|
||||
# no-ewmh-fullscreen = false
|
||||
|
||||
# Dimming bright windows so their brightness doesn't exceed this set value.
|
||||
# Brightness of a window is estimated by averaging all pixels in the window,
|
||||
# so this could comes with a performance hit.
|
||||
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
|
||||
#
|
||||
# max-brightness = 1.0
|
||||
|
||||
# Make transparent windows clip other windows like non-transparent windows do,
|
||||
# instead of blending on top of them.
|
||||
#
|
||||
# transparent-clipping = false
|
||||
|
||||
# Set the log level. Possible values are:
|
||||
# "trace", "debug", "info", "warn", "error"
|
||||
# in increasing level of importance. Case doesn't matter.
|
||||
# If using the "TRACE" log level, it's better to log into a file
|
||||
# using *--log-file*, since it can generate a huge stream of logs.
|
||||
#
|
||||
# log-level = "debug"
|
||||
log-level = "warn";
|
||||
|
||||
# Set the log file.
|
||||
# If *--log-file* is never specified, logs will be written to stderr.
|
||||
# Otherwise, logs will to written to the given file, though some of the early
|
||||
# logs might still be written to the stderr.
|
||||
# When setting this option from the config file, it is recommended to use an absolute path.
|
||||
#
|
||||
# log-file = '~/.config/compton.log'
|
||||
|
||||
# Show all X errors (for debugging)
|
||||
# show-all-xerrors = false
|
||||
|
||||
# Write process ID to a file.
|
||||
# write-pid-path = '/path/to/your/log/file'
|
||||
|
||||
# Window type settings
|
||||
#
|
||||
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
|
||||
# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
|
||||
# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
|
||||
# "tooltip", "notification", "combo", and "dnd".
|
||||
#
|
||||
# Following per window-type options are available: ::
|
||||
#
|
||||
# fade, shadow:::
|
||||
# Controls window-type-specific shadow and fade settings.
|
||||
#
|
||||
# opacity:::
|
||||
# Controls default opacity of the window type.
|
||||
#
|
||||
# focus:::
|
||||
# Controls whether the window of this type is to be always considered focused.
|
||||
# (By default, all window types except "normal" and "dialog" has this on.)
|
||||
#
|
||||
# full-shadow:::
|
||||
# Controls whether shadow is drawn under the parts of the window that you
|
||||
# normally won't be able to see. Useful when the window has parts of it
|
||||
# transparent, and you want shadows in those areas.
|
||||
#
|
||||
# redir-ignore:::
|
||||
# Controls whether this type of windows should cause screen to become
|
||||
# redirected again after been unredirected. If you have unredir-if-possible
|
||||
# set, and doesn't want certain window to cause unnecessary screen redirection,
|
||||
# you can set this to `true`.
|
||||
#
|
||||
wintypes:
|
||||
{
|
||||
tooltip = { fade = true; shadow = true; opacity = 0.9; focus = true; full-shadow = false; };
|
||||
dock = { shadow = false; }
|
||||
dnd = { shadow = false; }
|
||||
popup_menu = { opacity = 0.9; }
|
||||
dropdown_menu = { opacity = 0.9; }
|
||||
};
|
||||
566
.xmonad/xmonad.org
Normal file
566
.xmonad/xmonad.org
Normal file
@ -0,0 +1,566 @@
|
||||
#+TITLE: Xmonad
|
||||
|
||||
* Xmonad
|
||||
** Import
|
||||
#+begin_src haskell :tangle ./xmonad.hs
|
||||
-- Base
|
||||
import XMonad
|
||||
import System.Directory
|
||||
import System.IO (hPutStrLn)
|
||||
import System.Exit (exitSuccess)
|
||||
import qualified XMonad.StackSet as W
|
||||
|
||||
-- Actions
|
||||
import XMonad.Actions.CopyWindow (kill1)
|
||||
import XMonad.Actions.CycleWS (Direction1D(..), moveTo, shiftTo, WSType(..), nextScreen, prevScreen)
|
||||
import XMonad.Actions.GridSelect
|
||||
import XMonad.Actions.MouseResize
|
||||
import XMonad.Actions.Promote
|
||||
import XMonad.Actions.RotSlaves (rotSlavesDown, rotAllDown)
|
||||
import XMonad.Actions.WindowGo (runOrRaise)
|
||||
import XMonad.Actions.WithAll (sinkAll, killAll)
|
||||
import qualified XMonad.Actions.Search as S
|
||||
|
||||
-- Data
|
||||
import Data.Char (isSpace, toUpper)
|
||||
import Data.Maybe (fromJust)
|
||||
import Data.Monoid
|
||||
import Data.Maybe (isJust)
|
||||
import Data.Tree
|
||||
import qualified Data.Map as M
|
||||
|
||||
-- Hooks
|
||||
import XMonad.Hooks.DynamicLog (dynamicLogWithPP, wrap, xmobarPP, xmobarColor, shorten, PP(..))
|
||||
import XMonad.Hooks.EwmhDesktops -- for some fullscreen events, also for xcomposite in obs.
|
||||
import XMonad.Hooks.ManageDocks (avoidStruts, docksEventHook, manageDocks, ToggleStruts(..))
|
||||
import XMonad.Hooks.ManageHelpers (isFullscreen, doFullFloat)
|
||||
import XMonad.Hooks.ServerMode
|
||||
import XMonad.Hooks.SetWMName
|
||||
import XMonad.Hooks.WorkspaceHistory
|
||||
|
||||
-- Layouts
|
||||
import XMonad.Layout.Accordion
|
||||
import XMonad.Layout.GridVariants (Grid(Grid))
|
||||
import XMonad.Layout.SimplestFloat
|
||||
import XMonad.Layout.Spiral
|
||||
import XMonad.Layout.ResizableTile
|
||||
import XMonad.Layout.Tabbed
|
||||
import XMonad.Layout.ThreeColumns
|
||||
|
||||
-- Layouts modifiers
|
||||
import XMonad.Layout.LayoutModifier
|
||||
import XMonad.Layout.LimitWindows (limitWindows, increaseLimit, decreaseLimit)
|
||||
import XMonad.Layout.Magnifier
|
||||
import XMonad.Layout.MultiToggle (mkToggle, single, EOT(EOT), (??))
|
||||
import XMonad.Layout.MultiToggle.Instances (StdTransformers(NBFULL, MIRROR, NOBORDERS))
|
||||
import XMonad.Layout.NoBorders
|
||||
import XMonad.Layout.Renamed
|
||||
import XMonad.Layout.ShowWName
|
||||
import XMonad.Layout.Simplest
|
||||
import XMonad.Layout.Spacing
|
||||
import XMonad.Layout.SubLayouts
|
||||
import XMonad.Layout.WindowArranger (windowArrange, WindowArrangerMsg(..))
|
||||
import qualified XMonad.Layout.ToggleLayouts as T (toggleLayouts, ToggleLayout(Toggle))
|
||||
import qualified XMonad.Layout.MultiToggle as MT (Toggle(..))
|
||||
|
||||
-- Utilities
|
||||
import XMonad.Util.Dmenu
|
||||
import XMonad.Util.EZConfig (additionalKeysP)
|
||||
import XMonad.Util.NamedScratchpad
|
||||
import XMonad.Util.Run (runProcessWithInput, safeSpawn, spawnPipe)
|
||||
import XMonad.Util.SpawnOnce
|
||||
#+end_src
|
||||
** Gobal Variable
|
||||
#+begin_src haskell :tangle ./xmonad.hs
|
||||
myFont :: String
|
||||
myFont = "xft:NanumGothic:regular:size=9:antialias=true:hinting=true"
|
||||
|
||||
myEmojiFont :: String
|
||||
myEmojiFont = "xft:Noto Fonts Emoji:regular:size=9:antialias=true:hinting=true"
|
||||
|
||||
myModMask :: KeyMask
|
||||
myModMask = mod4Mask -- Sets modkey to super/windows key
|
||||
|
||||
myTerminal :: String
|
||||
myTerminal = "alacritty" -- Sets default terminal
|
||||
|
||||
myBrowser :: String
|
||||
myBrowser = "qutebrowser " -- Sets qutebrowser as browser
|
||||
|
||||
myEmacs :: String
|
||||
myEmacs = "emacsclient -c -a 'emacs' " -- Makes emacs keybindings easier to type
|
||||
|
||||
myEditor :: String
|
||||
myEditor = "emacsclient -c -a 'emacs' " -- Sets emacs as editor
|
||||
-- myEditor = myTerminal ++ " -e vim " -- Sets vim as editor
|
||||
|
||||
myBorderWidth :: Dimension
|
||||
myBorderWidth = 2 -- Sets border width for windows
|
||||
|
||||
myNormColor :: String
|
||||
myNormColor = "#282c34" -- Border color of normal windows
|
||||
|
||||
myFocusColor :: String
|
||||
myFocusColor = "#46d9ff" -- Border color of focused windows
|
||||
|
||||
altMask :: KeyMask
|
||||
altMask = mod1Mask -- Setting this for use in xprompts
|
||||
|
||||
windowCount :: X (Maybe String)
|
||||
windowCount = gets $ Just . show . length . W.integrate' . W.stack . W.workspace . W.current . windowset
|
||||
#+end_src
|
||||
** StartupHook
|
||||
#+begin_src haskell :tangle ./xmonad.hs
|
||||
myStartupHook :: X ()
|
||||
myStartupHook = do
|
||||
--spawnOnce "xrandr --output DP-4 --primary --mode 2560x1440 --pos 0x0 --rotate normal --output HDMI-0 --mode 1920x1080 --pos 2560x0 --rotate normal"
|
||||
spawnOnce "nm-applet &"
|
||||
spawnOnce "picom -b --config ~/.xmonad/picom.conf &"
|
||||
--spawnOnce "picom --experimental-backends -b --config ~/.xmonad/picom.conf &"
|
||||
spawnOnce "dwall -s firewatch &"
|
||||
spawnOnce "fcitx &"
|
||||
--spawnOnce "seafile-applet &"
|
||||
spawnOnce "seadrive-gui &"
|
||||
spawnOnce "blueberry-tray &"
|
||||
spawnOnce "volumeicon &"
|
||||
--spawnOnce "enpass"
|
||||
spawnOnce "green-tunnel -s &"
|
||||
spawnOnce "trayer --edge top --align right --widthtype request --padding 6 --SetDockType true --SetPartialStrut true --expand true --monitor 0 --transparent true --alpha 0 --tint 0x282c34 --height 24 &"
|
||||
spawnOnce "/usr/bin/emacs --daemon &"
|
||||
-- spawnOnce "/usr/bin/emacs --daemon &" -- emacs daemon for the emacsclient
|
||||
-- spawnOnce "kak -d -s mysession &" -- kakoune daemon for better performance
|
||||
-- spawnOnce "urxvtd -q -o -f &" -- urxvt daemon for better performance
|
||||
|
||||
--spawnOnce "xargs xwallpaper --stretch < ~/.xwallpaper" -- set last saved with xwallpaper
|
||||
-- spawnOnce "/bin/ls ~/wallpapers | shuf -n 1 | xargs xwallpaper --stretch" -- set random xwallpaper
|
||||
-- spawnOnce "~/.fehbg &" -- set last saved feh wallpaper
|
||||
-- spawnOnce "feh --randomize --bg-fill ~/wallpapers/*" -- feh set random wallpaper
|
||||
-- spawnOnce "nitrogen --restore &" -- if you prefer nitrogen to feh
|
||||
--setWMName "LG3D"
|
||||
|
||||
#+end_src
|
||||
** Layout
|
||||
#+begin_src haskell :tangle ./xmonad.hs
|
||||
|
||||
myColorizer :: Window -> Bool -> X (String, String)
|
||||
myColorizer = colorRangeFromClassName
|
||||
(0x28,0x2c,0x34) -- lowest inactive bg
|
||||
(0x28,0x2c,0x34) -- highest inactive bg
|
||||
(0xc7,0x92,0xea) -- active bg
|
||||
(0xc0,0xa7,0x9a) -- inactive fg
|
||||
(0x28,0x2c,0x34) -- active fg
|
||||
|
||||
-- gridSelect menu layout
|
||||
mygridConfig :: p -> GSConfig Window
|
||||
mygridConfig colorizer = (buildDefaultGSConfig myColorizer)
|
||||
{ gs_cellheight = 40
|
||||
, gs_cellwidth = 200
|
||||
, gs_cellpadding = 6
|
||||
, gs_originFractX = 0.5
|
||||
, gs_originFractY = 0.5
|
||||
, gs_font = myFont
|
||||
}
|
||||
|
||||
spawnSelected' :: [(String, String)] -> X ()
|
||||
spawnSelected' lst = gridselect conf lst >>= flip whenJust spawn
|
||||
where conf = def
|
||||
{ gs_cellheight = 40
|
||||
, gs_cellwidth = 200
|
||||
, gs_cellpadding = 6
|
||||
, gs_originFractX = 0.5
|
||||
, gs_originFractY = 0.5
|
||||
, gs_font = myFont
|
||||
}
|
||||
|
||||
myAppGrid = [ --("Audacity", "audacity")
|
||||
--, ("Deadbeef", "deadbeef")
|
||||
("Vivaldi", "vivaldi-stable")
|
||||
, ("Emacs", "emacsclient -c -a emacs")
|
||||
, ("Firefox", "firefox")
|
||||
--, ("Geany", "geany")
|
||||
--, ("Geary", "geary")
|
||||
, ("Gimp", "gimp")
|
||||
, ("Kdenlive", "kdenlive")
|
||||
, ("LibreOffice Impress", "loimpress")
|
||||
, ("LibreOffice Writer", "lowriter")
|
||||
--, ("OBS", "obs")
|
||||
, ("PCManFM", "pcmanfm")
|
||||
]
|
||||
|
||||
myScratchPads :: [NamedScratchpad]
|
||||
myScratchPads = [ NS "terminal" spawnTerm findTerm manageTerm
|
||||
, NS "mocp" spawnMocp findMocp manageMocp
|
||||
, NS "calculator" spawnCalc findCalc manageCalc
|
||||
]
|
||||
where
|
||||
spawnTerm = myTerminal ++ " -t scratchpad"
|
||||
findTerm = title =? "scratchpad"
|
||||
manageTerm = customFloating $ W.RationalRect l t w h
|
||||
where
|
||||
h = 0.9
|
||||
w = 0.9
|
||||
t = 0.95 -h
|
||||
l = 0.95 -w
|
||||
spawnMocp = myTerminal ++ " -t mocp -e mocp"
|
||||
findMocp = title =? "mocp"
|
||||
manageMocp = customFloating $ W.RationalRect l t w h
|
||||
where
|
||||
h = 0.9
|
||||
w = 0.9
|
||||
t = 0.95 -h
|
||||
l = 0.95 -w
|
||||
spawnCalc = "qalculate-gtk"
|
||||
findCalc = className =? "Qalculate-gtk"
|
||||
manageCalc = customFloating $ W.RationalRect l t w h
|
||||
where
|
||||
h = 0.5
|
||||
w = 0.4
|
||||
t = 0.75 -h
|
||||
l = 0.70 -w
|
||||
|
||||
--Makes setting the spacingRaw simpler to write. The spacingRaw module adds a configurable amount of space around windows.
|
||||
mySpacing :: Integer -> l a -> XMonad.Layout.LayoutModifier.ModifiedLayout Spacing l a
|
||||
mySpacing i = spacingRaw False (Border i i i i) True (Border i i i i) True
|
||||
|
||||
-- Below is a variation of the above except no borders are applied
|
||||
-- if fewer than two windows. So a single window has no gaps.
|
||||
mySpacing' :: Integer -> l a -> XMonad.Layout.LayoutModifier.ModifiedLayout Spacing l a
|
||||
mySpacing' i = spacingRaw True (Border i i i i) True (Border i i i i) True
|
||||
|
||||
-- Defining a bunch of layouts, many that I don't use.
|
||||
-- limitWindows n sets maximum number of windows displayed for layout.
|
||||
-- mySpacing n sets the gap size around the windows.
|
||||
tall = renamed [Replace "tall"]
|
||||
$ smartBorders
|
||||
$ addTabs shrinkText myTabTheme
|
||||
$ subLayout [] (smartBorders Simplest)
|
||||
$ limitWindows 12
|
||||
$ mySpacing 8
|
||||
$ ResizableTall 1 (3/100) (1/2) []
|
||||
magnify = renamed [Replace "magnify"]
|
||||
$ smartBorders
|
||||
$ addTabs shrinkText myTabTheme
|
||||
$ subLayout [] (smartBorders Simplest)
|
||||
$ magnifier
|
||||
$ limitWindows 12
|
||||
$ mySpacing 8
|
||||
$ ResizableTall 1 (3/100) (1/2) []
|
||||
monocle = renamed [Replace "monocle"]
|
||||
$ smartBorders
|
||||
$ addTabs shrinkText myTabTheme
|
||||
$ subLayout [] (smartBorders Simplest)
|
||||
$ limitWindows 20 Full
|
||||
floats = renamed [Replace "floats"]
|
||||
$ smartBorders
|
||||
$ limitWindows 20 simplestFloat
|
||||
grid = renamed [Replace "grid"]
|
||||
$ smartBorders
|
||||
$ addTabs shrinkText myTabTheme
|
||||
$ subLayout [] (smartBorders Simplest)
|
||||
$ limitWindows 12
|
||||
$ mySpacing 8
|
||||
$ mkToggle (single MIRROR)
|
||||
$ Grid (16/10)
|
||||
spirals = renamed [Replace "spirals"]
|
||||
$ smartBorders
|
||||
$ addTabs shrinkText myTabTheme
|
||||
$ subLayout [] (smartBorders Simplest)
|
||||
$ mySpacing' 8
|
||||
$ spiral (6/7)
|
||||
threeCol = renamed [Replace "threeCol"]
|
||||
$ smartBorders
|
||||
$ addTabs shrinkText myTabTheme
|
||||
$ subLayout [] (smartBorders Simplest)
|
||||
$ limitWindows 7
|
||||
$ ThreeCol 1 (3/100) (1/2)
|
||||
threeRow = renamed [Replace "threeRow"]
|
||||
$ smartBorders
|
||||
$ addTabs shrinkText myTabTheme
|
||||
$ subLayout [] (smartBorders Simplest)
|
||||
$ limitWindows 7
|
||||
-- Mirror takes a layout and rotates it by 90 degrees.
|
||||
-- So we are applying Mirror to the ThreeCol layout.
|
||||
$ Mirror
|
||||
$ ThreeCol 1 (3/100) (1/2)
|
||||
tabs = renamed [Replace "tabs"]
|
||||
-- I cannot add spacing to this layout because it will
|
||||
-- add spacing between window and tabs which looks bad.
|
||||
$ tabbed shrinkText myTabTheme
|
||||
tallAccordion = renamed [Replace "tallAccordion"]
|
||||
$ Accordion
|
||||
wideAccordion = renamed [Replace "wideAccordion"]
|
||||
$ Mirror Accordion
|
||||
|
||||
-- setting colors for tabs layout and tabs sublayout.
|
||||
myTabTheme = def { fontName = myFont
|
||||
, activeColor = "#46d9ff"
|
||||
, inactiveColor = "#313846"
|
||||
, activeBorderColor = "#46d9ff"
|
||||
, inactiveBorderColor = "#282c34"
|
||||
, activeTextColor = "#282c34"
|
||||
, inactiveTextColor = "#d0d0d0"
|
||||
}
|
||||
|
||||
-- Theme for showWName which prints current workspace when you change workspaces.
|
||||
myShowWNameTheme :: SWNConfig
|
||||
myShowWNameTheme = def
|
||||
{ swn_font = "xft:Ubuntu:bold:size=60"
|
||||
, swn_fade = 1.0
|
||||
, swn_bgcolor = "#1c1f24"
|
||||
, swn_color = "#ffffff"
|
||||
}
|
||||
|
||||
-- The layout hook
|
||||
myLayoutHook = avoidStruts $ mouseResize $ windowArrange $ T.toggleLayouts floats
|
||||
$ mkToggle (NBFULL ?? NOBORDERS ?? EOT) myDefaultLayout
|
||||
where
|
||||
myDefaultLayout = withBorder myBorderWidth tall
|
||||
||| magnify
|
||||
||| noBorders monocle
|
||||
||| floats
|
||||
||| noBorders tabs
|
||||
||| grid
|
||||
||| spirals
|
||||
||| threeCol
|
||||
||| threeRow
|
||||
||| tallAccordion
|
||||
||| wideAccordion
|
||||
|
||||
#+end_src
|
||||
** Workspace
|
||||
#+begin_src haskell :tangle ./xmonad.hs
|
||||
myWorkspaces = [" 1 ", " 2 ", " 3 ", " 4 ", " 5 ", " 6 ", " 7 ", " 8 ", " 9 "]
|
||||
-- myWorkspaces = [" dev ", " www ", " sys ", " doc ", " vbox ", " chat ", " mus ", " vid ", " gfx "]
|
||||
myWorkspaceIndices = M.fromList $ zipWith (,) myWorkspaces [1..] -- (,) == \x y -> (x,y)
|
||||
|
||||
clickable ws = "<action=xdotool key super+"++show i++">"++ws++"</action>"
|
||||
where i = fromJust $ M.lookup ws myWorkspaceIndices
|
||||
|
||||
myManageHook :: XMonad.Query (Data.Monoid.Endo WindowSet)
|
||||
myManageHook = composeAll
|
||||
-- 'doFloat' forces a window to float. Useful for dialog boxes and such.
|
||||
-- using 'doShift ( myWorkspaces !! 7)' sends program to workspace 8!
|
||||
-- I'm doing it this way because otherwise I would have to write out the full
|
||||
-- name of my workspaces and the names would be very long if using clickable workspaces.
|
||||
[ className =? "confirm" --> doFloat
|
||||
, className =? "file_progress" --> doFloat
|
||||
, className =? "dialog" --> doFloat
|
||||
, className =? "download" --> doFloat
|
||||
, className =? "error" --> doFloat
|
||||
, className =? "Gimp" --> doFloat
|
||||
, className =? "notification" --> doFloat
|
||||
, className =? "pinentry-gtk-2" --> doFloat
|
||||
, className =? "splash" --> doFloat
|
||||
, className =? "toolbar" --> doFloat
|
||||
--, title =? "Oracle VM VirtualBox Manager" --> doFloat
|
||||
--, title =? "Mozilla Firefox" --> doShift ( myWorkspaces !! 1 )
|
||||
--, className =? "brave-browser" --> doShift ( myWorkspaces !! 1 )
|
||||
--, className =? "qutebrowser" --> doShift ( myWorkspaces !! 1 )
|
||||
--, className =? "mpv" --> doShift ( myWorkspaces !! 7 )
|
||||
--, className =? "Gimp" --> doShift ( myWorkspaces !! 8 )
|
||||
--, className =? "VirtualBox Manager" --> doShift ( myWorkspaces !! 4 )
|
||||
, (className =? "firefox" <&&> resource =? "Dialog") --> doFloat -- Float Firefox Dialog
|
||||
, (className =? "steam" <&&> resource =? "Dialog") --> doFloat -- Float Firefox Dialog
|
||||
] <+> namedScratchpadManageHook myScratchPads
|
||||
|
||||
#+end_src
|
||||
|
||||
** Key bindings
|
||||
#+begin_src haskell :tangle ./xmonad.hs
|
||||
myKeys :: [(String, X ())]
|
||||
myKeys =
|
||||
-- Xmonad
|
||||
[ ("M-C-r", spawn "xmonad --recompile") -- Recompiles xmonad
|
||||
, ("M-S-r", spawn "xmonad --restart") -- Restarts xmonad
|
||||
, ("M-S-q", io exitSuccess) -- Quits xmonad
|
||||
|
||||
-- Run Prompt
|
||||
-- M-p was the default keybinding. I've changed it to M-S-RET because I will use
|
||||
-- M-p as part of the keychord for the other dmenu script bindings.
|
||||
, ("M-S-<Return>", spawn "dmenu_run -i -p \"Run: \"") -- Dmenu
|
||||
|
||||
-- Launch Apps
|
||||
, ("M-f", spawn "firefox")
|
||||
, ("M-t", spawn "thunar")
|
||||
, ("M-p", spawn "enpass")
|
||||
--, ("M-e", spawn "emacs")
|
||||
, ("M-e", spawn myEmacs)
|
||||
, ("M-l", spawn "arcolinux-logout")
|
||||
|
||||
-- Useful programs to have a keybinding for launch
|
||||
, ("M-<Return>", spawn (myTerminal))
|
||||
--, ("M-b", spawn (myBrowser ++ " www.youtube.com/c/DistroTube/"))
|
||||
--, ("M-M1-h", spawn (myTerminal ++ " -e htop"))
|
||||
|
||||
-- Kill windows
|
||||
, ("M-S-c", kill1) -- Kill the currently focused client
|
||||
--, ("M-S-a", killAll) -- Kill all windows on current workspace
|
||||
|
||||
-- Workspaces
|
||||
--, ("M-.", nextScreen) -- Switch focus to next monitor
|
||||
--, ("M-,", prevScreen) -- Switch focus to prev monitor
|
||||
--, ("M-S-<KP_Add>", shiftTo Next nonNSP >> moveTo Next nonNSP) -- Shifts focused window to next ws
|
||||
--, ("M-S-<KP_Subtract>", shiftTo Prev nonNSP >> moveTo Prev nonNSP) -- Shifts focused window to prev ws
|
||||
|
||||
-- Floating windows
|
||||
--, ("M-f", sendMessage (T.Toggle "floats")) -- Toggles my 'floats' layout
|
||||
--, ("M-t", withFocused $ windows . W.sink) -- Push floating window back to tile
|
||||
--, ("M-S-t", sinkAll) -- Push ALL floating windows to tile
|
||||
|
||||
-- Increase/decrease spacing (gaps)
|
||||
--, ("M-d", decWindowSpacing 4) -- Decrease window spacing
|
||||
--, ("M-i", incWindowSpacing 4) -- Increase window spacing
|
||||
--, ("M-S-d", decScreenSpacing 4) -- Decrease screen spacing
|
||||
--, ("M-S-i", incScreenSpacing 4) -- Increase screen spacing
|
||||
|
||||
-- Grid Select (CTR-g followed by a key)
|
||||
, ("M-g g", spawnSelected' myAppGrid) -- grid select favorite apps
|
||||
, ("M-g t", goToSelected $ mygridConfig myColorizer) -- goto selected window
|
||||
--, ("C-g b", bringSelected $ mygridConfig myColorizer) -- bring selected window
|
||||
|
||||
-- Windows navigation
|
||||
--, ("M-m", windows W.focusMaster) -- Move focus to the master window
|
||||
, ("M-j", windows W.focusDown) -- Move focus to the next window
|
||||
, ("M-k", windows W.focusUp) -- Move focus to the prev window
|
||||
--, ("M-S-m", windows W.swapMaster) -- Swap the focused window and the master window
|
||||
--, ("M-S-j", windows W.swapDown) -- Swap focused window with next window
|
||||
--, ("M-S-k", windows W.swapUp) -- Swap focused window with prev window
|
||||
--, ("M-<Backspace>", promote) -- Moves focused window to master, others maintain order
|
||||
--, ("M-S-<Tab>", rotSlavesDown) -- Rotate all windows except master and keep focus in place
|
||||
, ("M-C-<Tab>", rotAllDown) -- Rotate all the windows in the current stack
|
||||
|
||||
-- Layouts
|
||||
--, ("M-<Tab>", sendMessage NextLayout) -- Switch to next layout
|
||||
--, ("M-C-M1-<Up>", sendMessage Arrange)
|
||||
--, ("M-C-M1-<Down>", sendMessage DeArrange)
|
||||
--, ("M-S-<Space>", sendMessage ToggleStruts) -- Toggles struts
|
||||
--, ("M-S-n", sendMessage $ MT.Toggle NOBORDERS) -- Toggles noborder
|
||||
, ("M-<Space>", sendMessage (MT.Toggle NBFULL) >> sendMessage ToggleStruts) -- Toggles noborder/full
|
||||
|
||||
-- Increase/decrease windows in the master pane or the stack
|
||||
--, ("M-S-<Up>", sendMessage (IncMasterN 1)) -- Increase # of clients master pane
|
||||
--, ("M-S-<Down>", sendMessage (IncMasterN (-1))) -- Decrease # of clients master pane
|
||||
--, ("M-C-<Up>", increaseLimit) -- Increase # of windows
|
||||
--, ("M-C-<Down>", decreaseLimit) -- Decrease # of windows
|
||||
|
||||
-- Window resizing
|
||||
--, ("M-h", sendMessage Shrink) -- Shrink horiz window width
|
||||
--, ("M-l", sendMessage Expand) -- Expand horiz window width
|
||||
--, ("M-M1-j", sendMessage MirrorShrink) -- Shrink vert window width
|
||||
--, ("M-M1-k", sendMessage MirrorExpand) -- Expand vert window width
|
||||
|
||||
-- Sublayouts
|
||||
-- This is used to push windows to tabbed sublayouts, or pull them out of it.
|
||||
--, ("M-C-h", sendMessage $ pullGroup L)
|
||||
--, ("M-C-l", sendMessage $ pullGroup R)
|
||||
--, ("M-C-k", sendMessage $ pullGroup U)
|
||||
--, ("M-C-j", sendMessage $ pullGroup D)
|
||||
--, ("M-C-m", withFocused (sendMessage . MergeAll))
|
||||
---- , ("M-C-u", withFocused (sendMessage . UnMerge))
|
||||
--, ("M-C-/", withFocused (sendMessage . UnMergeAll))
|
||||
--, ("M-C-.", onGroup W.focusUp') -- Switch focus to next tab
|
||||
--, ("M-C-,", onGroup W.focusDown') -- Switch focus to prev tab
|
||||
|
||||
-- Scratchpads
|
||||
-- Toggle show/hide these programs. They run on a hidden workspace.
|
||||
-- When you toggle them to show, it brings them to your current workspace.
|
||||
-- Toggle them to hide and it sends them back to hidden workspace (NSP).
|
||||
--, ("C-s t", namedScratchpadAction myScratchPads "terminal")
|
||||
--, ("C-s m", namedScratchpadAction myScratchPads "mocp")
|
||||
--, ("C-s c", namedScratchpadAction myScratchPads "calculator")
|
||||
|
||||
-- Set wallpaper with 'feh'. Type 'SUPER+F1' to launch sxiv in the wallpapers directory.
|
||||
-- Then in sxiv, type 'C-x w' to set the wallpaper that you choose.
|
||||
--, ("M-<F1>", spawn "sxiv -r -q -t -o ~/wallpapers/*")
|
||||
--, ("M-<F2>", spawn "/bin/ls ~/wallpapers | shuf -n 1 | xargs xwallpaper --stretch")
|
||||
--, ("M-<F2>", spawn "feh --randomize --bg-fill ~/wallpapers/*")
|
||||
|
||||
-- Controls for mocp music player (SUPER-u followed by a key)
|
||||
--, ("M-u p", spawn "mocp --play")
|
||||
--, ("M-u l", spawn "mocp --next")
|
||||
--, ("M-u h", spawn "mocp --previous")
|
||||
--, ("M-u <Space>", spawn "mocp --toggle-pause")
|
||||
|
||||
-- Emacs (CTRL-e followed by a key)
|
||||
-- , ("C-e e", spawn myEmacs) -- start emacs
|
||||
--, ("C-e e", spawn (myEmacs ++ ("--eval '(dashboard-refresh-buffer)'"))) -- emacs dashboard
|
||||
--, ("C-e b", spawn (myEmacs ++ ("--eval '(ibuffer)'"))) -- list buffers
|
||||
--, ("C-e d", spawn (myEmacs ++ ("--eval '(dired nil)'"))) -- dired
|
||||
--, ("C-e i", spawn (myEmacs ++ ("--eval '(erc)'"))) -- erc irc client
|
||||
--, ("C-e m", spawn (myEmacs ++ ("--eval '(mu4e)'"))) -- mu4e email
|
||||
--, ("C-e n", spawn (myEmacs ++ ("--eval '(elfeed)'"))) -- elfeed rss
|
||||
--, ("C-e s", spawn (myEmacs ++ ("--eval '(eshell)'"))) -- eshell
|
||||
--, ("C-e t", spawn (myEmacs ++ ("--eval '(mastodon)'"))) -- mastodon.el
|
||||
---- , ("C-e v", spawn (myEmacs ++ ("--eval '(vterm nil)'"))) -- vterm if on GNU Emacs
|
||||
--, ("C-e v", spawn (myEmacs ++ ("--eval '(+vterm/here nil)'"))) -- vterm if on Doom Emacs
|
||||
---- , ("C-e w", spawn (myEmacs ++ ("--eval '(eww \"distrotube.com\")'"))) -- eww browser if on GNU Emacs
|
||||
--, ("C-e w", spawn (myEmacs ++ ("--eval '(doom/window-maximize-buffer(eww \"distrotube.com\"))'"))) -- eww browser if on Doom Emacs
|
||||
---- emms is an emacs audio player. I set it to auto start playing in a specific directory.
|
||||
--, ("C-e a", spawn (myEmacs ++ ("--eval '(emms)' --eval '(emms-play-directory-tree \"~/Music/Non-Classical/70s-80s/\")'")))
|
||||
|
||||
-- Multimedia Keys
|
||||
--, ("<XF86AudioPlay>", spawn (myTerminal ++ "mocp --play"))
|
||||
--, ("<XF86AudioPrev>", spawn (myTerminal ++ "mocp --previous"))
|
||||
--, ("<XF86AudioNext>", spawn (myTerminal ++ "mocp --next"))
|
||||
--, ("<XF86AudioMute>", spawn "amixer set Master toggle")
|
||||
, ("<XF86AudioLowerVolume>", spawn "amixer set Master 5%- unmute")
|
||||
, ("<XF86AudioRaiseVolume>", spawn "amixer set Master 5%+ unmute")
|
||||
--, ("<XF86HomePage>", spawn "firefox")
|
||||
--, ("<XF86Search>", safeSpawn "firefox" ["https://www.duckduckgo.com/"])
|
||||
--, ("<XF86Mail>", runOrRaise "thunderbird" (resource =? "thunderbird"))
|
||||
--, ("<XF86Calculator>", runOrRaise "qalculate-gtk" (resource =? "qalculate-gtk"))
|
||||
--, ("<XF86Eject>", spawn "toggleeject")
|
||||
--, ("<Print>", spawn "scrotd 0")
|
||||
]
|
||||
-- The following lines are needed for named scratchpads.
|
||||
where nonNSP = WSIs (return (\ws -> W.tag ws /= "NSP"))
|
||||
nonEmptyNonNSP = WSIs (return (\ws -> isJust (W.stack ws) && W.tag ws /= "NSP"))
|
||||
#+end_src
|
||||
|
||||
** Main
|
||||
#+begin_src haskell :tangle ./xmonad.hs
|
||||
main :: IO ()
|
||||
main = do
|
||||
-- Launching three instances of xmobar on their monitors.
|
||||
-- xmproc0 <- spawnPipe "xmobar -x 0 $HOME/.config/xmobar/xmobarrc_desktop_qhd"
|
||||
-- xmproc1 <- spawnPipe "xmobar -x 1 $HOME/.config/xmobar/xmobarrc_desktop_fhd"
|
||||
xmproc0 <- spawnPipe "xmobar -x 2 $HOME/.config/xmobar/xmobarrc_labtop_fhd"
|
||||
-- the xmonad, ya know...what the WM is named after!
|
||||
xmonad $ ewmh def
|
||||
{ manageHook = ( isFullscreen --> doFullFloat ) <+> myManageHook <+> manageDocks
|
||||
-- Run xmonad commands from command line with "xmonadctl command". Commands include:
|
||||
-- shrink, expand, next-layout, default-layout, restart-wm, xterm, kill, refresh, run,
|
||||
-- focus-up, focus-down, swap-up, swap-down, swap-master, sink, quit-wm. You can run
|
||||
-- "xmonadctl 0" to generate full list of commands written to ~/.xsession-errors.
|
||||
-- To compile xmonadctl: ghc -dynamic xmonadctl.hs
|
||||
, handleEventHook = serverModeEventHookCmd
|
||||
<+> serverModeEventHook
|
||||
<+> serverModeEventHookF "XMONAD_PRINT" (io . putStrLn)
|
||||
<+> docksEventHook
|
||||
<+> fullscreenEventHook -- this does NOT work right if using multi-monitors!
|
||||
, modMask = myModMask
|
||||
, terminal = myTerminal
|
||||
, startupHook = myStartupHook
|
||||
, layoutHook = showWName' myShowWNameTheme $ myLayoutHook
|
||||
, workspaces = myWorkspaces
|
||||
, borderWidth = myBorderWidth
|
||||
, normalBorderColor = myNormColor
|
||||
, focusedBorderColor = myFocusColor
|
||||
, logHook = dynamicLogWithPP $ namedScratchpadFilterOutWorkspacePP $ xmobarPP
|
||||
-- the following variables beginning with 'pp' are settings for xmobar.
|
||||
{ ppOutput = \x -> hPutStrLn xmproc0 x -- xmobar on monitor 1
|
||||
-- >> hPutStrLn xmproc1 x -- xmobar on monitor 2
|
||||
-- >> hPutStrLn xmproc2 x -- xmobar on monitor 3
|
||||
, ppCurrent = xmobarColor "#FFFFFF" "" . wrap "●" "" -- Current workspace
|
||||
, ppVisible = xmobarColor "#c0a79a" "" . wrap "♼" "" . clickable -- Visible but not current workspace
|
||||
, ppHidden = xmobarColor "#c0a79a" "" . wrap "○" "" . clickable -- Hidden workspaces
|
||||
, ppHiddenNoWindows = xmobarColor "#c792ea" "" . \s -> "" -- Hidden workspaces (no windows)
|
||||
, ppTitle = xmobarColor "#b3afc2" "" . shorten 60 -- Title of active window
|
||||
, ppSep = "<fc=#666666> <fn=1>|</fn> </fc>" -- Separator character
|
||||
, ppUrgent = xmobarColor "#C45500" "" . wrap "!" "!" -- Urgent workspace
|
||||
, ppExtras = [windowCount] -- # of windows current workspace
|
||||
, ppOrder = \(ws:l:t:ex) -> [ws,l]++ex++[t] -- order of things in xmobar
|
||||
}
|
||||
} `additionalKeysP` myKeys
|
||||
|
||||
#+end_src
|
||||
3
.xprofile
Normal file
3
.xprofile
Normal file
@ -0,0 +1,3 @@
|
||||
export GTK_IM_MODULE=fcitx
|
||||
export QT_IM_MODULE=fcitx
|
||||
export XMODIFIERS="@im=fcitx"
|
||||
30
.zshrc
Normal file
30
.zshrc
Normal file
@ -0,0 +1,30 @@
|
||||
export ZSH="/home/jaeus/.oh-my-zsh"
|
||||
ZSH_THEME="random"
|
||||
plugins=(git)
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
prompt_context(){}
|
||||
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||
|
||||
##WSL2
|
||||
#VETHER_IP=$(/bin/grep nameserver /etc/resolv.conf 2> /dev/null | /bin/tr -s ' ' | /bin/cut -d' ' -f2)
|
||||
#export DISPLAY=$VETHER_IP:10.0
|
||||
|
||||
#neovim to vi
|
||||
alias vi=nvim
|
||||
#pacman unlock
|
||||
alias paruunlock="sudo rm /var/lib/pacman/db.lck"
|
||||
#grub update
|
||||
alias update-grub="sudo grub-mkconfig -o /boot/grub/grub.cfg"
|
||||
#youtube-dl
|
||||
alias ytv-best="youtube-dl -f bestvideo+bestaudio "
|
||||
#gpg for future uses
|
||||
#verify signature for isos
|
||||
#alias gpg-check="gpg2 --keyserver-options auto-key-retrieve --verify"
|
||||
#alias fix-gpg-check="gpg2 --keyserver-options auto-key-retrieve --verify"
|
||||
#receive the key of a developer
|
||||
#alias gpg-retrieve="gpg2 --keyserver-options auto-key-retrieve --receive-keys"
|
||||
#alias fix-gpg-retrieve="gpg2 --keyserver-options auto-key-retrieve --receive-keys"
|
||||
#alias fix-key="[ -d ~/.gnupg ] || mkdir ~/.gnupg ; cp /etc/pacman.d/gnupg/gpg.conf ~/.gnupg/ ; echo 'done'"
|
||||
|
||||
figlet -w 100 "JaeUs-Device"
|
||||
950
Note/ArchLinux.org
Normal file
950
Note/ArchLinux.org
Normal file
@ -0,0 +1,950 @@
|
||||
#+TITLE: Arch Linux
|
||||
|
||||
* Linux
|
||||
Archlinux Bare 기준
|
||||
** Local Time
|
||||
#+begin_src shell
|
||||
timedatectl set-ntp true
|
||||
timedatectl status
|
||||
#+end_src
|
||||
|
||||
** Partition - UEFI
|
||||
#+begin_src shell
|
||||
fdisk -l # list
|
||||
|
||||
fdisk /dev/sda
|
||||
#+end_src
|
||||
|
||||
g : Make GPT Partition
|
||||
n : partition create
|
||||
t : partition type change
|
||||
|
||||
create 2-3 partitions
|
||||
partition 1 : +550M size / EFI System
|
||||
|
||||
|
||||
partition 2 : rest size / Linux System
|
||||
partition (optional swap) : memory size x 2
|
||||
|
||||
#+begin_src shell
|
||||
|
||||
## CAUTION !!
|
||||
mkfs.fat -F32 /dev/sda1
|
||||
mkfs.ext4 /dev/sda2
|
||||
|
||||
mkswap /dev/sda3
|
||||
swapon /dev/sda2
|
||||
#+end_src
|
||||
|
||||
|
||||
** Base Linux Installation
|
||||
|
||||
#+begin_src shell
|
||||
mount /dev/sda2 /mnt
|
||||
pacstrap /mnt base linux linux-firmware
|
||||
genfstab -U /mnt >> /mnt/etc/fstab # generate filesystem table
|
||||
arch-chroot /mnt
|
||||
#+end_src
|
||||
|
||||
** TIMEZONE
|
||||
#+begin_src shell
|
||||
ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
|
||||
hwclock --systohc
|
||||
pacman -S vim
|
||||
|
||||
vim /etc/locale.gen # uncomment us_EN.UTF-8 / ko_KR.UTF-8
|
||||
locale-gen
|
||||
#+end_src
|
||||
|
||||
** Host
|
||||
#+begin_src shell
|
||||
echo "JaeUs-ArchLinux" > /etc/hostname
|
||||
vim /etc/hosts
|
||||
#+end_src
|
||||
|
||||
#+begin_src conf
|
||||
127.0.0.1 localhost
|
||||
::1 localhost
|
||||
127.0.0.1 JaeUs-ArchLinux.localdomain JaeUs-ArchLinux
|
||||
#+end_src
|
||||
|
||||
** Add User
|
||||
#+begin_src shell
|
||||
passwd # make root password
|
||||
useradd -m jaeus
|
||||
passwd jaeus
|
||||
usermod -aG wheel,audio,video,optical,storage jaeus
|
||||
EDITOR=vim visudo # uncomment %wheel ALL=(ALL) ALL
|
||||
#+end_src
|
||||
|
||||
** Grub
|
||||
#+begin_src shell
|
||||
pacman -S grub efibootmgr dosfstools os-prober mtools
|
||||
mkdir /boot/EFI
|
||||
mount /dev/sda1 /bootEFI
|
||||
grub-install --target=x86_64-efi --bootloader-id=grub_uefi --recheck
|
||||
grub-mkconfig -o /boot/grub/grub.cfg
|
||||
#+end_src
|
||||
|
||||
** AUR Manager
|
||||
#+begin_src shell
|
||||
sudo pacman -S --needed base-devel
|
||||
git clone https://aur.archlinux.org/paru.git
|
||||
cd paru
|
||||
makepkg -si
|
||||
#+end_src
|
||||
** Extra Stuff
|
||||
#+begin_src shell
|
||||
pacman -S networkmanager git
|
||||
systemctl enable NetworkManager
|
||||
exit
|
||||
umount -l /mnt
|
||||
reboot
|
||||
#+end_src
|
||||
|
||||
** Neovim
|
||||
#+begin_src shell
|
||||
paru -S neovim xclip
|
||||
#+end_src
|
||||
|
||||
** ZSH
|
||||
#+begin_src shell
|
||||
paru -S zsh oh-my-zsh-git zsh-syntax-highlighting zsh-autosuggestions
|
||||
chsh -s /bin/zsh jaeus
|
||||
/usr/share/oh-my-zsh/tools/install.sh
|
||||
#+end_src
|
||||
|
||||
ZSH initial Config
|
||||
#+begin_src conf
|
||||
export ZSH="/home/jaeus/.oh-my-zsh"
|
||||
ZSH_THEME="agnoster"
|
||||
plugins=(git)
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
prompt_context(){}
|
||||
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||
alias vi=nvim
|
||||
#+end_src
|
||||
|
||||
** 한글 입력
|
||||
#+begin_src shell
|
||||
paru -S fcitx-hangul fcitx-configtool
|
||||
#+end_src
|
||||
|
||||
#+begin_src shell :tangle ~/.profile
|
||||
export GTK_IM_MODULE=fcitx
|
||||
export QT_IM_MODULE=fcitx
|
||||
export XMODIFIERS="@im=fcitx"
|
||||
#+end_src
|
||||
|
||||
** Alacritty
|
||||
#+begin_src conf :tangle ~/.config/alacritty/alacritty.yml :mkdirp yes
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
|
||||
window:
|
||||
padding:
|
||||
x: 6
|
||||
y: 6
|
||||
title: Alacritty
|
||||
class:
|
||||
instance: Alacritty
|
||||
general: Alacritty
|
||||
|
||||
scrolling:
|
||||
history: 10000
|
||||
font:
|
||||
normal:
|
||||
family: Mononoki Nerd Font
|
||||
style: Regular
|
||||
bold:
|
||||
family: Mononoki Nerd Font
|
||||
style: Bold
|
||||
italic:
|
||||
family: Mononoki Nerd Font
|
||||
style: Italic
|
||||
bold_italic:
|
||||
family: Mononoki Nerd Font
|
||||
style: Bold Italic
|
||||
# Point size
|
||||
size: 11.0
|
||||
offset:
|
||||
x: 0
|
||||
y: 1
|
||||
draw_bold_text_with_bright_colors: true
|
||||
colors:
|
||||
primary:
|
||||
background: '0x282c34'
|
||||
foreground: '0xbbc2cf'
|
||||
selection:
|
||||
text: '0xbbc2cf'
|
||||
normal:
|
||||
black: '0x1c1f24'
|
||||
red: '0xff6c6b'
|
||||
green: '0x98be65'
|
||||
yellow: '0xda8548'
|
||||
blue: '0x51afef'
|
||||
magenta: '0xc678dd'
|
||||
cyan: '0x5699af'
|
||||
white: '0x202328'
|
||||
bright:
|
||||
black: '0x5b6268'
|
||||
red: '0xda8548'
|
||||
green: '0x4db5bd'
|
||||
yellow: '0xecbe7b'
|
||||
blue: '0x3071db' # This is 2257a0 in Doom Emacs but I lightened it.
|
||||
magenta: '0xa9a1e1'
|
||||
cyan: '0x46d9ff'
|
||||
white: '0xdfdfdf'
|
||||
background_opacity: 0.9
|
||||
key_bindings:
|
||||
# (Windows, Linux, and BSD only)
|
||||
- { key: V, mods: Control|Shift, action: Paste }
|
||||
- { key: C, mods: Control|Shift, action: Copy }
|
||||
- { key: Insert, mods: Shift, action: PasteSelection }
|
||||
- { key: Key0, mods: Control, action: ResetFontSize }
|
||||
- { key: Equals, mods: Control, action: IncreaseFontSize }
|
||||
- { key: Plus, mods: Control, action: IncreaseFontSize }
|
||||
- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||
- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||
|
||||
- { key: Paste, action: Paste }
|
||||
- { key: Copy, action: Copy }
|
||||
- { key: L, mods: Control, action: ClearLogNotice }
|
||||
- { key: L, mods: Control, chars: "\x0c" }
|
||||
- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt }
|
||||
- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt }
|
||||
- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt }
|
||||
- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt }
|
||||
#+end_src
|
||||
** Login And WindowManager
|
||||
#+begin_src shell
|
||||
paru -S sddm xorg i3 i3status xss-lock
|
||||
reboot
|
||||
#+end_src
|
||||
|
||||
*** I3
|
||||
|
||||
#+begin_src conf :tangle ~/.config/i3/config :mkdirp yes
|
||||
# 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
|
||||
|
||||
# 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 8
|
||||
|
||||
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
||||
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
||||
#font pango:DejaVu Sans Mono 8
|
||||
|
||||
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
|
||||
# they are included here as an example. Modify as you see fit.
|
||||
|
||||
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
|
||||
# screen before suspend. Use loginctl lock-session to lock your screen.
|
||||
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
|
||||
|
||||
# NetworkManager is the most popular way to manage wireless networks on Linux,
|
||||
# and nm-applet is a desktop environment-independent system tray GUI for it.
|
||||
exec --no-startup-id nm-applet
|
||||
exec --no-startup-id picom -b --config ~/.config/i3/picom.conf
|
||||
exec --no-startup-id dwall -s colony
|
||||
exec --no-startup-id fcitx
|
||||
exec --no-startup-id seafile-applet
|
||||
exec --no-startup-id blueberry-tray
|
||||
exec --no-startup-id volumeicon
|
||||
exec --no-startup-id enpass
|
||||
exec --no-startup-id green-tunnel -s
|
||||
|
||||
# Use pactl to adjust volume in PulseAudio.
|
||||
set $refresh_i3status killall -SIGUSR1 i3status
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
|
||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
|
||||
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
|
||||
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec i3-sensible-terminal
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# start dmenu (a program launcher)
|
||||
bindsym $mod+d exec --no-startup-id dmenu_run
|
||||
# A more modern dmenu replacement is rofi:
|
||||
# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
|
||||
# There also is i3-dmenu-desktop which only displays applications shipping a
|
||||
# .desktop file. It is a wrapper around dmenu, so you need that installed.
|
||||
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
|
||||
|
||||
# change focus
|
||||
bindsym $mod+j focus left
|
||||
bindsym $mod+k focus down
|
||||
bindsym $mod+l focus up
|
||||
bindsym $mod+semicolon 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+j move left
|
||||
bindsym $mod+Shift+k move down
|
||||
bindsym $mod+Shift+l move up
|
||||
bindsym $mod+Shift+semicolon 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 number $ws1
|
||||
bindsym $mod+2 workspace number $ws2
|
||||
bindsym $mod+3 workspace number $ws3
|
||||
bindsym $mod+4 workspace number $ws4
|
||||
bindsym $mod+5 workspace number $ws5
|
||||
bindsym $mod+6 workspace number $ws6
|
||||
bindsym $mod+7 workspace number $ws7
|
||||
bindsym $mod+8 workspace number $ws8
|
||||
bindsym $mod+9 workspace number $ws9
|
||||
bindsym $mod+0 workspace number $ws10
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace number $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace number $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace number $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace number $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace number $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace number $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace number $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace number $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace number $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace number $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)
|
||||
mode "resize" {
|
||||
# These bindings trigger as soon as you enter the resize mode
|
||||
|
||||
# Pressing left will shrink the window’s width.
|
||||
# Pressing right will grow the window’s width.
|
||||
# Pressing up will shrink the window’s height.
|
||||
# Pressing down will grow the window’s height.
|
||||
bindsym j resize shrink width 10 px or 10 ppt
|
||||
bindsym k resize grow height 10 px or 10 ppt
|
||||
bindsym l resize shrink height 10 px or 10 ppt
|
||||
bindsym semicolon resize grow width 10 px or 10 ppt
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
# back to normal: Enter or Escape or $mod+r
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym $mod+r mode "default"
|
||||
}
|
||||
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||
# finds out, if available)
|
||||
bar {
|
||||
status_command i3status
|
||||
}
|
||||
#+end_src
|
||||
*** PICOM
|
||||
#+begin_src conf :tangle ~/.config/i3/picom.conf :mkdirp yes
|
||||
#################################
|
||||
# Shadows #
|
||||
#################################
|
||||
|
||||
|
||||
# Enabled client-side shadows on windows. Note desktop windows
|
||||
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
|
||||
# unless explicitly requested using the wintypes option.
|
||||
#
|
||||
# shadow = false
|
||||
shadow = true;
|
||||
|
||||
# The blur radius for shadows, in pixels. (defaults to 12)
|
||||
# shadow-radius = 12
|
||||
shadow-radius = 7;
|
||||
|
||||
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
||||
# shadow-opacity = .75
|
||||
|
||||
# The left offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-x = -15
|
||||
shadow-offset-x = -7;
|
||||
|
||||
# The top offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-y = -15
|
||||
shadow-offset-y = -7;
|
||||
|
||||
# Avoid drawing shadows on dock/panel windows. This option is deprecated,
|
||||
# you should use the *wintypes* option in your config file instead.
|
||||
#
|
||||
# no-dock-shadow = false
|
||||
|
||||
# Don't draw shadows on drag-and-drop windows. This option is deprecated,
|
||||
# you should use the *wintypes* option in your config file instead.
|
||||
#
|
||||
# no-dnd-shadow = false
|
||||
|
||||
# Red color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-red = 0
|
||||
|
||||
# Green color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-green = 0
|
||||
|
||||
# Blue color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-blue = 0
|
||||
|
||||
# Do not paint shadows on shaped windows. Note shaped windows
|
||||
# here means windows setting its shape through X Shape extension.
|
||||
# Those using ARGB background is beyond our control.
|
||||
# Deprecated, use
|
||||
# shadow-exclude = 'bounding_shaped'
|
||||
# or
|
||||
# shadow-exclude = 'bounding_shaped && !rounded_corners'
|
||||
# instead.
|
||||
#
|
||||
# shadow-ignore-shaped = ''
|
||||
|
||||
# Specify a list of conditions of windows that should have no shadow.
|
||||
#
|
||||
# examples:
|
||||
# shadow-exclude = "n:e:Notification";
|
||||
#
|
||||
# shadow-exclude = []
|
||||
shadow-exclude = [
|
||||
"name = 'Notification'",
|
||||
"class_g ?= 'Notify-osd'",
|
||||
"name = 'Plank'",
|
||||
"name = 'Docky'",
|
||||
"name = 'Kupfer'",
|
||||
"name = 'xfce4-notifyd'",
|
||||
"name *= 'VLC'",
|
||||
"name *= 'compton'",
|
||||
"name *= 'Chromium'",
|
||||
"name *= 'Chrome'",
|
||||
"class_g = 'Firefox' && argb",
|
||||
"class_g = 'Conky'",
|
||||
"class_g = 'Kupfer'",
|
||||
"class_g = 'Synapse'",
|
||||
"class_g ?= 'Notify-osd'",
|
||||
"class_g ?= 'Cairo-dock'",
|
||||
"class_g = 'Cairo-clock'",
|
||||
"class_g ?= 'Xfce4-notifyd'",
|
||||
"class_g ?= 'Xfce4-power-manager'",
|
||||
"_GTK_FRAME_EXTENTS@:c",
|
||||
];
|
||||
|
||||
# Add this one too for ...
|
||||
# "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
|
||||
# Add this one above to the list to have no shadow in Openbox menu
|
||||
# "! name~=''",
|
||||
|
||||
# Specify a X geometry that describes the region in which shadow should not
|
||||
# be painted in, such as a dock window region. Use
|
||||
# shadow-exclude-reg = "x10+0+0"
|
||||
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
|
||||
#
|
||||
# shadow-exclude-reg = ""
|
||||
|
||||
# Crop shadow of a window fully on a particular Xinerama screen to the screen.
|
||||
# xinerama-shadow-crop = false
|
||||
|
||||
|
||||
#################################
|
||||
# Fading #
|
||||
#################################
|
||||
|
||||
|
||||
# Fade windows in/out when opening/closing and when opacity changes,
|
||||
# unless no-fading-openclose is used.
|
||||
# fading = false
|
||||
fading = false
|
||||
|
||||
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
|
||||
# fade-in-step = 0.028
|
||||
fade-in-step = 0.03;
|
||||
|
||||
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
|
||||
# fade-out-step = 0.03
|
||||
fade-out-step = 0.03;
|
||||
|
||||
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
|
||||
# fade-delta = 10
|
||||
|
||||
# Specify a list of conditions of windows that should not be faded.
|
||||
# fade-exclude = []
|
||||
|
||||
# Do not fade on window open/close.
|
||||
# no-fading-openclose = false
|
||||
|
||||
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
|
||||
# no-fading-destroyed-argb = false
|
||||
|
||||
|
||||
#################################
|
||||
# Transparency / Opacity #
|
||||
#################################
|
||||
|
||||
|
||||
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
||||
# inactive-opacity = 1
|
||||
inactive-opacity = 1;
|
||||
|
||||
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
||||
# frame-opacity = 1.0
|
||||
frame-opacity = 1;
|
||||
|
||||
# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
|
||||
# menu-opacity = 1.0
|
||||
|
||||
# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
|
||||
# inactive-opacity-override = true
|
||||
inactive-opacity-override = false;
|
||||
|
||||
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
|
||||
# active-opacity = 1.0
|
||||
|
||||
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
|
||||
# inactive-dim = 0.0
|
||||
|
||||
# Specify a list of conditions of windows that should always be considered focused.
|
||||
# focus-exclude = []
|
||||
focus-exclude = [ "class_g = 'Cairo-clock'" ];
|
||||
|
||||
# Use fixed inactive dim value, instead of adjusting according to window opacity.
|
||||
# inactive-dim-fixed = 1.0
|
||||
|
||||
# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
|
||||
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
|
||||
# Note we don't make any guarantee about possible conflicts with other
|
||||
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
|
||||
# example:
|
||||
# opacity-rule = [ "80:class_g = 'URxvt'" ];
|
||||
#
|
||||
opacity-rule = [ "80:class_g = 'Alacritty'" ];
|
||||
|
||||
|
||||
#################################
|
||||
# Background-Blurring #
|
||||
#################################
|
||||
|
||||
|
||||
# Parameters for background blurring, see the *BLUR* section for more information.
|
||||
# blur-method =
|
||||
# blur-size = 12
|
||||
#
|
||||
# blur-deviation = false
|
||||
|
||||
# Blur background of semi-transparent / ARGB windows.
|
||||
# Bad in performance, with driver-dependent behavior.
|
||||
# The name of the switch may change without prior notifications.
|
||||
#
|
||||
# blur-background = false
|
||||
|
||||
# Blur background of windows when the window frame is not opaque.
|
||||
# Implies:
|
||||
# blur-background
|
||||
# Bad in performance, with driver-dependent behavior. The name may change.
|
||||
#
|
||||
# blur-background-frame = false
|
||||
|
||||
|
||||
# Use fixed blur strength rather than adjusting according to window opacity.
|
||||
# blur-background-fixed = false
|
||||
|
||||
|
||||
# Specify the blur convolution kernel, with the following format:
|
||||
# example:
|
||||
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
|
||||
#
|
||||
# blur-kern = ''
|
||||
blur-kern = "3x3box";
|
||||
|
||||
|
||||
# Exclude conditions for background blur.
|
||||
# blur-background-exclude = []
|
||||
blur-background-exclude = [
|
||||
"window_type = 'dock'",
|
||||
"window_type = 'desktop'",
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
];
|
||||
|
||||
#################################
|
||||
# General Settings #
|
||||
#################################
|
||||
|
||||
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
|
||||
# daemon = false
|
||||
|
||||
# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
|
||||
# `xrender` is the default one.
|
||||
#
|
||||
# backend = 'glx'
|
||||
backend = "xrender";
|
||||
|
||||
# Enable/disable VSync. Set to false for transparency in VirtualBox.
|
||||
# vsync = false
|
||||
vsync = true
|
||||
|
||||
# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
|
||||
# dbus = false
|
||||
|
||||
# Try to detect WM windows (a non-override-redirect window with no
|
||||
# child that has 'WM_STATE') and mark them as active.
|
||||
#
|
||||
# mark-wmwin-focused = false
|
||||
mark-wmwin-focused = true;
|
||||
|
||||
# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
|
||||
# mark-ovredir-focused = false
|
||||
mark-ovredir-focused = true;
|
||||
|
||||
# Try to detect windows with rounded corners and don't consider them
|
||||
# shaped windows. The accuracy is not very high, unfortunately.
|
||||
#
|
||||
# detect-rounded-corners = false
|
||||
detect-rounded-corners = true;
|
||||
|
||||
# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
|
||||
# not passing '_NET_WM_OPACITY' of client windows to frame windows.
|
||||
#
|
||||
# detect-client-opacity = false
|
||||
detect-client-opacity = true;
|
||||
|
||||
# Specify refresh rate of the screen. If not specified or 0, picom will
|
||||
# try detecting this with X RandR extension.
|
||||
#
|
||||
# refresh-rate = 60
|
||||
refresh-rate = 0
|
||||
|
||||
# Limit picom to repaint at most once every 1 / 'refresh_rate' second to
|
||||
# boost performance. This should not be used with
|
||||
# vsync drm/opengl/opengl-oml
|
||||
# as they essentially does sw-opti's job already,
|
||||
# unless you wish to specify a lower refresh rate than the actual value.
|
||||
#
|
||||
# sw-opti =
|
||||
|
||||
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
|
||||
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
|
||||
# provided that the WM supports it.
|
||||
#
|
||||
# use-ewmh-active-win = false
|
||||
|
||||
# Unredirect all windows if a full-screen opaque window is detected,
|
||||
# to maximize performance for full-screen windows. Known to cause flickering
|
||||
# when redirecting/unredirecting windows.
|
||||
#
|
||||
# unredir-if-possible = false
|
||||
|
||||
# Delay before unredirecting the window, in milliseconds. Defaults to 0.
|
||||
# unredir-if-possible-delay = 0
|
||||
|
||||
# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
|
||||
# unredir-if-possible-exclude = []
|
||||
|
||||
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
|
||||
# in the same group focused at the same time.
|
||||
#
|
||||
# detect-transient = false
|
||||
detect-transient = true
|
||||
|
||||
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
|
||||
# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if
|
||||
# detect-transient is enabled, too.
|
||||
#
|
||||
# detect-client-leader = false
|
||||
detect-client-leader = true
|
||||
|
||||
# Resize damaged region by a specific number of pixels.
|
||||
# A positive value enlarges it while a negative one shrinks it.
|
||||
# If the value is positive, those additional pixels will not be actually painted
|
||||
# to screen, only used in blur calculation, and such. (Due to technical limitations,
|
||||
# with use-damage, those pixels will still be incorrectly painted to screen.)
|
||||
# Primarily used to fix the line corruption issues of blur,
|
||||
# in which case you should use the blur radius value here
|
||||
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
|
||||
# with a 5x5 one you use `--resize-damage 2`, and so on).
|
||||
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
|
||||
#
|
||||
# resize-damage = 1
|
||||
|
||||
# Specify a list of conditions of windows that should be painted with inverted color.
|
||||
# Resource-hogging, and is not well tested.
|
||||
#
|
||||
# invert-color-include = []
|
||||
|
||||
# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
|
||||
# Might cause incorrect opacity when rendering transparent content (but never
|
||||
# practically happened) and may not work with blur-background.
|
||||
# My tests show a 15% performance boost. Recommended.
|
||||
#
|
||||
# glx-no-stencil = false
|
||||
|
||||
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||
# Probably could improve performance on rapid window content changes,
|
||||
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
|
||||
# Recommended if it works.
|
||||
#
|
||||
# glx-no-rebind-pixmap = false
|
||||
|
||||
# Disable the use of damage information.
|
||||
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
|
||||
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
|
||||
# The opposing option is use-damage
|
||||
#
|
||||
# no-use-damage = false
|
||||
use-damage = true
|
||||
|
||||
# Use X Sync fence to sync clients' draw calls, to make sure all draw
|
||||
# calls are finished before picom starts drawing. Needed on nvidia-drivers
|
||||
# with GLX backend for some users.
|
||||
#
|
||||
# xrender-sync-fence = false
|
||||
|
||||
# GLX backend: Use specified GLSL fragment shader for rendering window contents.
|
||||
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
|
||||
# in the source tree for examples.
|
||||
#
|
||||
# glx-fshader-win = ''
|
||||
|
||||
# Force all windows to be painted with blending. Useful if you
|
||||
# have a glx-fshader-win that could turn opaque pixels transparent.
|
||||
#
|
||||
# force-win-blend = false
|
||||
|
||||
# Do not use EWMH to detect fullscreen windows.
|
||||
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
|
||||
#
|
||||
# no-ewmh-fullscreen = false
|
||||
|
||||
# Dimming bright windows so their brightness doesn't exceed this set value.
|
||||
# Brightness of a window is estimated by averaging all pixels in the window,
|
||||
# so this could comes with a performance hit.
|
||||
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
|
||||
#
|
||||
# max-brightness = 1.0
|
||||
|
||||
# Make transparent windows clip other windows like non-transparent windows do,
|
||||
# instead of blending on top of them.
|
||||
#
|
||||
# transparent-clipping = false
|
||||
|
||||
# Set the log level. Possible values are:
|
||||
# "trace", "debug", "info", "warn", "error"
|
||||
# in increasing level of importance. Case doesn't matter.
|
||||
# If using the "TRACE" log level, it's better to log into a file
|
||||
# using *--log-file*, since it can generate a huge stream of logs.
|
||||
#
|
||||
# log-level = "debug"
|
||||
log-level = "warn";
|
||||
|
||||
# Set the log file.
|
||||
# If *--log-file* is never specified, logs will be written to stderr.
|
||||
# Otherwise, logs will to written to the given file, though some of the early
|
||||
# logs might still be written to the stderr.
|
||||
# When setting this option from the config file, it is recommended to use an absolute path.
|
||||
#
|
||||
# log-file = '~/.config/compton.log'
|
||||
|
||||
# Show all X errors (for debugging)
|
||||
# show-all-xerrors = false
|
||||
|
||||
# Write process ID to a file.
|
||||
# write-pid-path = '/path/to/your/log/file'
|
||||
|
||||
# Window type settings
|
||||
#
|
||||
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
|
||||
# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
|
||||
# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
|
||||
# "tooltip", "notification", "combo", and "dnd".
|
||||
#
|
||||
# Following per window-type options are available: ::
|
||||
#
|
||||
# fade, shadow:::
|
||||
# Controls window-type-specific shadow and fade settings.
|
||||
#
|
||||
# opacity:::
|
||||
# Controls default opacity of the window type.
|
||||
#
|
||||
# focus:::
|
||||
# Controls whether the window of this type is to be always considered focused.
|
||||
# (By default, all window types except "normal" and "dialog" has this on.)
|
||||
#
|
||||
# full-shadow:::
|
||||
# Controls whether shadow is drawn under the parts of the window that you
|
||||
# normally won't be able to see. Useful when the window has parts of it
|
||||
# transparent, and you want shadows in those areas.
|
||||
#
|
||||
# redir-ignore:::
|
||||
# Controls whether this type of windows should cause screen to become
|
||||
# redirected again after been unredirected. If you have unredir-if-possible
|
||||
# set, and doesn't want certain window to cause unnecessary screen redirection,
|
||||
# you can set this to `true`.
|
||||
#
|
||||
wintypes:
|
||||
{
|
||||
tooltip = { fade = true; shadow = true; opacity = 0.9; focus = true; full-shadow = false; };
|
||||
dock = { shadow = false; }
|
||||
dnd = { shadow = false; }
|
||||
popup_menu = { opacity = 0.9; }
|
||||
dropdown_menu = { opacity = 0.9; }
|
||||
};
|
||||
#+end_src
|
||||
|
||||
** Audio related.
|
||||
*** PulseAudio
|
||||
#+begin_src shell
|
||||
paru -S pulseaudio pavucontrol-qt volumeicon
|
||||
#+end_src
|
||||
volumeicon은 i3config에 추가
|
||||
volumeicon을 이용해 pavucontrol-qt연결.
|
||||
|
||||
*** Bluetooth
|
||||
#+begin_src shell
|
||||
paru -S blueberry pulseaudio-bluetooth
|
||||
sudo systemctl enable bluetooth
|
||||
#+end_src
|
||||
Tray는 i3config에 추가.
|
||||
|
||||
|
||||
** Dynamic Wallpaper
|
||||
#+begin_src shell
|
||||
paru -S xorg-xrandr feh cronie
|
||||
cd ~
|
||||
git clone https://github.com/adi1090x/dynamic-wallpaper.git
|
||||
cd dynamic-wallpaper
|
||||
chmod +x install.sh
|
||||
./install.sh
|
||||
#+end_src
|
||||
i3에 추가.
|
||||
|
||||
** Enpass
|
||||
#+begin_src shell
|
||||
paru -S enpass
|
||||
#+end_src
|
||||
** Seafile-client
|
||||
#+begin_src shell
|
||||
paru -S seafile-client
|
||||
#+end_src
|
||||
|
||||
** Green-tunnel
|
||||
proxy redirect
|
||||
#+begin_src shell
|
||||
sudo npm install -g green-tunnel
|
||||
#+end_src
|
||||
** Fonts
|
||||
#+begin_src shell
|
||||
paru -S ttf-fira-code ttf-nanum nerd-fonts-mononoki
|
||||
#+end_src
|
||||
|
||||
** FileManager
|
||||
|
||||
*** TODO smb연동하는법 까먹음.
|
||||
#+begin_src shell
|
||||
paru -S thunar thunar-volman thunar-shares-plugin gvfs gvfs-smb sshfs
|
||||
#+end_src
|
||||
|
||||
** MPV
|
||||
#+begin_src shell
|
||||
paru -S mpv
|
||||
#+end_src
|
||||
|
||||
** Virtual Desktop
|
||||
*** QEMU
|
||||
#+begin_src shell
|
||||
paru -S qemu qemu-arch-extra ovmf bridge-utils dnsmasq vde2 openbsd-netcat ebtables iptables
|
||||
systemctl enable libvirtd
|
||||
systemctl start libvirtd
|
||||
#+end_src
|
||||
- ovmf helps to do the UEFI Bios and Secure Boot setups.
|
||||
- bridge-utils for network bridge needed for VMs
|
||||
- vde2 for QEMU distributed ethernet emulation
|
||||
- dnsmasq the DNS forwarder and DHCP server
|
||||
- openbsd-netcat network testing tool (Optional)
|
||||
- ebtables and iptables to create packet routing and firewalls
|
||||
|
||||
#+begin_src shell
|
||||
paru -S virt-manager virt-viewer
|
||||
#+end_src
|
||||
|
||||
#+begin_src shell
|
||||
# Enable Auto-Start of the Service
|
||||
|
||||
# optional
|
||||
# sudo systemctl enable libvirtd.service
|
||||
# Start the Service Right now
|
||||
sudo systemctl start libvirtd.service
|
||||
#+end_src
|
||||
89
Note/HyperV.org
Normal file
89
Note/HyperV.org
Normal file
@ -0,0 +1,89 @@
|
||||
#+TITLE: Hyper V
|
||||
|
||||
ArcoLinux B Xmonad 기반으로 작성되었음.
|
||||
https://wiki.archlinux.org/index.php/Hyper-V : Arch Wiki 참고
|
||||
Window Manager(Xmonad)와 Emacs구동이 목적임.
|
||||
|
||||
* Hyper V enable
|
||||
|
||||
Windows Home에서 기능 추가
|
||||
#+begin_src shell
|
||||
pushd "%~dp0"
|
||||
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
|
||||
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
|
||||
del hyper-v.txt
|
||||
#+end_src
|
||||
|
||||
Appwiz.cpl에서 enable 또는 다음 커멘드 입력.
|
||||
#+begin_src shell
|
||||
Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
|
||||
#+end_src
|
||||
|
||||
* 가상머신 생성
|
||||
1. Hyper-V 2세대
|
||||
2. 보안부팅 해제
|
||||
3. Arcolinux 설치 및 업데이트
|
||||
* 모니터 해상도
|
||||
/etc/default/grub에서
|
||||
GRUB_CMDLINE_LINUX_DEFAULT에 "splash video=hyperv_fb:1920x1080"
|
||||
|
||||
update-grub
|
||||
|
||||
* AUR Manager의 설치(Paru)
|
||||
#+begin_src shell
|
||||
sudo pacman -S --needed base-devel
|
||||
git clone https://aur.archlinux.org/paru.git
|
||||
cd paru
|
||||
makepkg -si
|
||||
#+end_src
|
||||
|
||||
* Hyper-V Extension
|
||||
#+begin_src shell
|
||||
paru -S hyperv
|
||||
sudo systemctl enable hv_fcopy_daemon.service
|
||||
sudo systemctl enable hv_kvp_daemon.service
|
||||
sudo systemctl enable hv_vss_daemon.service
|
||||
#+end_src
|
||||
|
||||
* 공유폴더 기능
|
||||
윈도우에서 로컬계정을 추가하여 공유폴더 설정, 폴더권한을 추가한다.
|
||||
CIFS 네트워크 공유방법이다.
|
||||
#+begin_src shell
|
||||
mkdir -p /mnt/HV
|
||||
sudo mount -t cifs //192.168.0.10/d /mnt/HV -o username=HV-User
|
||||
#+end_src
|
||||
자동 마운트를 위해
|
||||
/etc/fstab에 다음 내용 추가
|
||||
#+begin_src unix-conf
|
||||
//SERVER/sharename /mnt/mountpoint cifs _netdev,nofail,username=myuser,password=mypass 0 0
|
||||
#+end_src
|
||||
|
||||
* 고급 세션기능
|
||||
#+begin_src shell
|
||||
git clone https://github.com/Microsoft/linux-vm-tools
|
||||
cd linux-vm-tools/arch
|
||||
./makepkg.sh
|
||||
sudo ./install-config.sh
|
||||
#+end_src
|
||||
|
||||
이러면 RDP가 활성화 되는데, RDP를 이용하여 접속을 해야만 고급세션기능이 활성화 된다.
|
||||
마우스 반응 속도 및 클립보드 공유기능이 사용가능하다.
|
||||
|
||||
일단 접속방식을 소켓으로 변경한다.
|
||||
powershell에서 다음을 입력한다.
|
||||
#+begin_src shell
|
||||
Set-VM -VMName Arch-HV -EnhancedSessionTransportType HvSocket
|
||||
#+end_src
|
||||
|
||||
그리고 xrdp 로그인시, xinitrc로 초기화 되므로 윈도우 메니저 진입점을 설정한다.
|
||||
** XMONAD
|
||||
TODO: 내용 추가 바람. 기존에 EXWM으로 해봣었음.
|
||||
|
||||
** EXWM 사용시
|
||||
#+begin_src unix-conf
|
||||
exec dbus-launch --exit-with-session emacs -mm -debug-init
|
||||
#+end_src
|
||||
|
||||
|
||||
* Emacs 설치
|
||||
Emacs.org의 내용을 참고
|
||||
267
Note/Linux.org
Normal file
267
Note/Linux.org
Normal file
@ -0,0 +1,267 @@
|
||||
#+TITLE: Linux
|
||||
|
||||
* Linux 초기설정 정리
|
||||
Arcolinux-xmonad 기준
|
||||
** Init
|
||||
mirrorlist to korea
|
||||
#+begin_src shell
|
||||
pacman -Syu
|
||||
#+end_src
|
||||
** AUR Manager
|
||||
#+begin_src shell
|
||||
sudo pacman -S --needed base-devel
|
||||
git clone https://aur.archlinux.org/paru.git
|
||||
cd paru
|
||||
makepkg -si
|
||||
#+end_src
|
||||
** GIT
|
||||
#+begin_src shell
|
||||
git config --global user.name "JaeYoo-Im"
|
||||
git config --global user.email "cpu3792@gmail.com"
|
||||
#+end_src
|
||||
** ZSH
|
||||
*** Install
|
||||
#+begin_src shell
|
||||
paru -S zsh oh-my-zsh-git zsh-syntax-highlighting zsh-autosuggestions
|
||||
chsh -s /usr/bin/zsh jaeus
|
||||
/usr/share/oh-my-zsh/tools/install.sh
|
||||
#+end_src
|
||||
|
||||
*** modifiy zshrc
|
||||
theme to (agnoster or random)
|
||||
|
||||
after =source $ZSH/oh-my-zsh.sh=
|
||||
#+begin_src shell
|
||||
prompt_context(){}
|
||||
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||
#+end_src
|
||||
|
||||
** TMUX
|
||||
#+begin_src shell
|
||||
paru -S tmux
|
||||
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
||||
#+end_src
|
||||
|
||||
Configuration(~/.tmux.conf)
|
||||
#+begin_src shell :tangle ./.tmux.conf
|
||||
set -g default-terminal "screen-256color"
|
||||
set -g mouse on
|
||||
|
||||
# utf8 is on
|
||||
# set -g utf8 on
|
||||
# set -g status-utf8 on
|
||||
|
||||
# address vim mode switching delay (http://superuser.com/a/252717/65504)
|
||||
set -s escape-time 0
|
||||
|
||||
# scrollback buffer size increase
|
||||
set -g history-limit 100000
|
||||
|
||||
# List of plugins
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||
|
||||
# Other examples:
|
||||
# set -g @plugin 'github_username/plugin_name'
|
||||
# set -g @plugin 'git@github.com/user/plugin'
|
||||
# set -g @plugin 'git@bitbucket.com/user/plugin'
|
||||
|
||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||
run -b '~/.tmux/plugins/tpm/tpm'
|
||||
#+end_src
|
||||
|
||||
.tmux.conf파일을 위치시킨 후에.
|
||||
#+begin_src shell
|
||||
TMUX_PLUGIN_MANAGER_PATH=~/.config/tmux/plugins/tpm ~/.tmux/plugins/tpm/scripts/install_plugins.sh
|
||||
TMUX_PLUGIN_MANAGER_PATH=~/.config/tmux/plugins/tpm ~/.tmux/plugins/tpm/bin/update_plugins all
|
||||
#+end_src
|
||||
|
||||
tmux를 항시 실행하기 위해 .zshrc에 다음 내용 추가
|
||||
#+begin_src shell
|
||||
printf "if command -v tmux &> /dev/null && [ -z \"\$TMUX\" ]; then\ntmux\n fi\n" >> ~/.zshrc
|
||||
#+end_src
|
||||
** Fonts
|
||||
#+begin_src shell
|
||||
paru -S ttf-fira-code ttf-nanum nerd-fonts-mononoki
|
||||
#+end_src
|
||||
** 한글 입력문제
|
||||
#+begin_src shell
|
||||
paru -S fcitx-hangul fcitx-configtool
|
||||
#+end_src
|
||||
in ~/.profile
|
||||
#+begin_src shell
|
||||
export GTK_IM_MODULE=fcitx
|
||||
export QT_IM_MODULE=fcitx
|
||||
export XMODIFIERS="@im=fcitx"
|
||||
#+end_src
|
||||
|
||||
in ~/.xmonad/scripts/autostart.sh
|
||||
#+begin_src shell
|
||||
run fcitx &
|
||||
#+end_src
|
||||
|
||||
** Enpass
|
||||
#+begin_src shell
|
||||
paru -S enpass
|
||||
#+end_src
|
||||
|
||||
in ~/.xmonad/scripts/autostart.sh
|
||||
#+begin_src shell
|
||||
run enpass &
|
||||
#+end_src
|
||||
|
||||
** EMACS
|
||||
*** Install
|
||||
#+begin_src shell
|
||||
paru -S ripgrep emacs
|
||||
|
||||
git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d
|
||||
~/.emacs.d/bin/doom -y install
|
||||
echo "alias doomsync=\"~/.emacs.d/bin/doom sync\"" >> ~/.zshrc
|
||||
#+end_src
|
||||
|
||||
Latex 지원
|
||||
#+begin_src shell
|
||||
paru -S auctex texlive-most texlive-lang
|
||||
#+end_src
|
||||
|
||||
|
||||
in ~/.xmonad/scripts/autostart.sh
|
||||
#+begin_src shell
|
||||
run emacs --daemon
|
||||
#+end_src
|
||||
** Libre-office
|
||||
Libre-office를 깔면 Emacs에서도 그 파일이 열림.
|
||||
#+begin_src shell
|
||||
paru -S libreoffice
|
||||
#+end_src
|
||||
** Alacritty
|
||||
*** Install
|
||||
#+begin_src shell
|
||||
paru -S alacritty
|
||||
#+end_src
|
||||
|
||||
*** Configuration
|
||||
#+begin_src shell :tangle ~/.config/alacritty/alacritty.yml :mkdirp yes
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
|
||||
window:
|
||||
padding:
|
||||
x: 6
|
||||
y: 6
|
||||
title: Alacritty
|
||||
class:
|
||||
instance: Alacritty
|
||||
general: Alacritty
|
||||
|
||||
scrolling:
|
||||
history: 10000
|
||||
font:
|
||||
normal:
|
||||
family: Mononoki Nerd Font
|
||||
style: Regular
|
||||
bold:
|
||||
family: Mononoki Nerd Font
|
||||
style: Bold
|
||||
italic:
|
||||
family: Mononoki Nerd Font
|
||||
style: Italic
|
||||
bold_italic:
|
||||
family: Mononoki Nerd Font
|
||||
style: Bold Italic
|
||||
# Point size
|
||||
size: 11.0
|
||||
offset:
|
||||
x: 0
|
||||
y: 1
|
||||
draw_bold_text_with_bright_colors: true
|
||||
colors:
|
||||
primary:
|
||||
background: '0x282c34'
|
||||
foreground: '0xbbc2cf'
|
||||
selection:
|
||||
text: '0xbbc2cf'
|
||||
normal:
|
||||
black: '0x1c1f24'
|
||||
red: '0xff6c6b'
|
||||
green: '0x98be65'
|
||||
yellow: '0xda8548'
|
||||
blue: '0x51afef'
|
||||
magenta: '0xc678dd'
|
||||
cyan: '0x5699af'
|
||||
white: '0x202328'
|
||||
bright:
|
||||
black: '0x5b6268'
|
||||
red: '0xda8548'
|
||||
green: '0x4db5bd'
|
||||
yellow: '0xecbe7b'
|
||||
blue: '0x3071db' # This is 2257a0 in Doom Emacs but I lightened it.
|
||||
magenta: '0xa9a1e1'
|
||||
cyan: '0x46d9ff'
|
||||
white: '0xdfdfdf'
|
||||
background_opacity: 0.9
|
||||
key_bindings:
|
||||
# (Windows, Linux, and BSD only)
|
||||
- { key: V, mods: Control|Shift, action: Paste }
|
||||
- { key: C, mods: Control|Shift, action: Copy }
|
||||
- { key: Insert, mods: Shift, action: PasteSelection }
|
||||
- { key: Key0, mods: Control, action: ResetFontSize }
|
||||
- { key: Equals, mods: Control, action: IncreaseFontSize }
|
||||
- { key: Plus, mods: Control, action: IncreaseFontSize }
|
||||
- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||
- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||
|
||||
- { key: Paste, action: Paste }
|
||||
- { key: Copy, action: Copy }
|
||||
- { key: L, mods: Control, action: ClearLogNotice }
|
||||
- { key: L, mods: Control, chars: "\x0c" }
|
||||
- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt }
|
||||
- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt }
|
||||
- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt }
|
||||
- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt }
|
||||
#+end_src
|
||||
** Green-tunnel
|
||||
proxy redirect
|
||||
#+begin_src shell
|
||||
npm install green-tunnel
|
||||
#+end_src
|
||||
* Proxy
|
||||
#+begin_src shell
|
||||
export proxy_addr="http://192.168.1.168:3128"
|
||||
#+end_src
|
||||
|
||||
|
||||
** Global
|
||||
#+begin_src shell
|
||||
echo export http_proxy=$proxy_addr >> ~/.zshrc
|
||||
echo export HTTP_PROXY=$proxy_addr >> ~/.zshrc
|
||||
echo export https_proxy=$proxy_addr >> ~/.zshrc
|
||||
echo export HTTPS_PROXY=$proxy_addr >> ~/.zshrc
|
||||
echo export ftp_proxy=$proxy_addr >> ~/.zshrc
|
||||
echo export FTP_PROXY=$proxy_addr >> ~/.zshrc
|
||||
echo export rsync_proxy=$proxy_addr >> ~/.zshrc
|
||||
echo export RSYNC_PROXY=$proxy_addr >> ~/.zshrc
|
||||
#+end_src
|
||||
|
||||
Sudo 명령어에 proxy 환경변수 통과
|
||||
#+begin_src shell
|
||||
echo "Defaults env_keep += \"*_proxy *_PROXY\"" > ./05_proxy
|
||||
sudo mv 05_proxy /etc/sudoers.d
|
||||
sudo chown root:root /etc/sudoers.d/05_proxy
|
||||
#+end_src
|
||||
|
||||
가끔 PGP키를 못받을때
|
||||
#+begin_src shell
|
||||
sudo killall dirmngr
|
||||
gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 \
|
||||
--keyserver-options "timeout=40 http-proxy=$http_proxy" \
|
||||
--recv-keys B0F4253373F8F6F510D42178520A9993A1C052F8
|
||||
#+end_src
|
||||
** Git
|
||||
#+begin_src shell
|
||||
git config --global http.proxy $proxy_addr
|
||||
git config --global https.proxy $proxy_addr
|
||||
#+end_src
|
||||
225
Note/WSL.org
Normal file
225
Note/WSL.org
Normal file
@ -0,0 +1,225 @@
|
||||
#+TITLE: Wsl
|
||||
|
||||
Arch 리눅스 기반으로 작성되었음.
|
||||
WSL1 기반임. WSL2는 네트워크가 불안정해보임.
|
||||
|
||||
* WSL Installation (Powershell)
|
||||
** Windows Function Enable
|
||||
Windows Function enable ()
|
||||
#+begin_src shell
|
||||
# WSL
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
|
||||
# Windows Sandbox (optional)
|
||||
Enable-WindowsOptionalFeature -FeatureName "Containers-DisposableClientVM" -All -Online
|
||||
#+end_src
|
||||
|
||||
** Download and Installation
|
||||
#+begin_src shell
|
||||
$Arch_instDir = "c:/Archlinux"
|
||||
mkdir -p $Arch_instDir
|
||||
pushd $Arch_instDir
|
||||
wget https://github.com/yuk7/ArchWSL/releases/latest/download/Arch.zip -OutFile Arch.zip
|
||||
unzip ./Arch.zip
|
||||
./Arch.exe
|
||||
#+end_src
|
||||
|
||||
** Terminal Emulator Installation
|
||||
*** Installation
|
||||
|
||||
vcxsrv는 X windows 기반 앱사용시 설치.
|
||||
#+begin_src shell
|
||||
choco install wsltty vcxsrv -y
|
||||
pushd 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs'
|
||||
& '.\WSL Generate Shortcuts.lnk'
|
||||
popd
|
||||
#+end_src
|
||||
|
||||
시작 폴더 =shell:startup= 에 다음의 config.xlaunch 넣으면 좋은듯?
|
||||
#+begin_src shell
|
||||
cp $HOME/.dotfiles/Note/WSL/config.xlaunch $HOME/AppData/Roaming/Microsoft/Windows/"Start Menu"/Programs/Startup/
|
||||
#+end_src
|
||||
|
||||
*** Icon Change
|
||||
[[file:./images/screenshot-02.png]]
|
||||
|
||||
#+begin_src shell
|
||||
$Shell = New-Object -ComObject ("WScript.Shell")
|
||||
$ShortcutPath = [Environment]::GetFolderPath("Desktop") + "/WSL Terminal.lnk"
|
||||
$Shortcut = $Shell.CreateShortcut($ShortcutPath);
|
||||
$Shortcut.IconLocation = "$Arch_instDir/arch.exe, 0"
|
||||
$Shortcut.Save()
|
||||
#+end_src
|
||||
|
||||
*** Add Context Menu
|
||||
[[file:./images/screenshot-03.png]]
|
||||
#+begin_src shell
|
||||
reg add "HKEY_CLASSES_ROOT\Directory\Background\shell\wsltty" /t REG_SZ /d "Open in WSLtty..." /f
|
||||
reg add "HKEY_CLASSES_ROOT\Directory\Background\shell\wsltty" /v Icon /t REG_SZ /d "$Arch_instDir/arch.exe" /f
|
||||
$mintty_cmd = $HOME + "\AppData\Local\wsltty\bin\mintty.exe --WSL= --configdir=" + $HOME + "\AppData\Roaming\wsltty"
|
||||
reg add "HKEY_CLASSES_ROOT\Directory\Background\shell\wsltty\Command" /t REG_SZ /d $mintty_cmd /f
|
||||
#+end_src
|
||||
*** Minttyrc
|
||||
wsltty는 mintty기반이므로 .minttyrc의 설정값을 따른다.
|
||||
=$HOME= Directory에 위치시키자
|
||||
#+begin_src shell
|
||||
cp $HOME/.dotfiles/.minttyrc $HOME/
|
||||
#+end_src
|
||||
|
||||
* WSL Initialization (in WSL)
|
||||
** Locale
|
||||
#+begin_src shell
|
||||
echo ko_KR.UTF-8 UTF-8 >> /etc/locale.gen
|
||||
locale-gen
|
||||
echo LANG=ko_KR.UTF-8 > /etc/locale.conf
|
||||
echo [network] > /etc/wsl.conf
|
||||
echo generateHosts = false >> /etc/wsl.conf
|
||||
pacman-key --init
|
||||
pacman-key --populate archlinux
|
||||
|
||||
#+end_src
|
||||
|
||||
** Pacman Mirror List
|
||||
WSL1 glibc-2-33-4 이슈가 있음. 마이크로소프트의 WSL1 커널 업데이트를 기대하기 힘든 상황이므로 WSL2를 사용하던지 Update Repo를 2월 14일자로 고정해 놓고 glibc를 업데이트 하면 glibc-2-33-3으로 업데이트됨.
|
||||
#+begin_src shell
|
||||
echo "Server = https://archive.archlinux.org/repos/2021/02/14/\$repo/os/\$arch" > etc/pacman.d/mirrorlist
|
||||
pacman -Sy archlinux-keyring
|
||||
pacman -S glibc
|
||||
#+end_src
|
||||
|
||||
그후 =/etc/pacman.conf= 의 IgnorePkg에 glibc 추가하여 업데이트가 진행되지 않도록 한후 mirrorlist를 최신으로 돌림.
|
||||
#+begin_src config
|
||||
IgnorePkg = fakeroot glibc
|
||||
#+end_src
|
||||
|
||||
한국 서버 우선.
|
||||
#+begin_src shell
|
||||
echo "Server = http://ftp.harukasan.org/archlinux/\$repo/os/\$arch" > /etc/pacman.d/mirrorlist
|
||||
echo "Server = https://ftp.harukasan.org/archlinux/\$repo/os/\$arch" >> /etc/pacman.d/mirrorlist
|
||||
echo "Server = http://ftp.lanet.kr/archlinux/\$repo/os/\$arch" >> /etc/pacman.d/mirrorlist
|
||||
echo "Server = https://ftp.lanet.kr/archlinux/\$repo/os/\$arch" >> /etc/pacman.d/mirrorlist
|
||||
echo "Server = http://mirror.premi.st/archlinux/\$repo/os/\$arch" >> /etc/pacman.d/mirrorlist
|
||||
pacman -Syu man wget
|
||||
#+end_src
|
||||
|
||||
** User Addition
|
||||
#+begin_src shell
|
||||
EDITOR=vim visudo # uncomment %wheel ALL=(ALL) ALL
|
||||
useradd -m -g users -G wheel -s /bin/bash jaeus
|
||||
passwd jaeus
|
||||
#+end_src
|
||||
|
||||
Arch.exe 실행파일 있는곳에서 실행. (in powershell)
|
||||
#+begin_src shell
|
||||
./arch.exe config --default-user jaeus
|
||||
#+end_src
|
||||
** Git
|
||||
#+begin_src shell
|
||||
sudo pacman -S git
|
||||
git config --global user.name "JaeYoo,Im"
|
||||
git config --global user.email "cpu3792@gmail.com"
|
||||
#+end_src
|
||||
|
||||
** Paru (AUR Manager)
|
||||
WSL1에서는 fakeroot-tcp를 사용해야 한다.
|
||||
#+begin_src shell
|
||||
sudo pacman -S base-devel # don't install fakeroot
|
||||
cd ~
|
||||
git clone https://aur.archlinux.org/paru.git
|
||||
cd paru
|
||||
makepkg -si
|
||||
#+end_src
|
||||
** Application
|
||||
#+begin_src shell
|
||||
paru -S openssh python inetutils
|
||||
#+end_src
|
||||
*** Copy Configuration
|
||||
#+begin_src shell
|
||||
paru -S stow
|
||||
rm ~/.zshrc
|
||||
rm ~/.bashrc
|
||||
git clone https://github.com/JaeYoo-Im/myDots.git ~/.dotfiles
|
||||
cd ~/.dotfiles
|
||||
stow .
|
||||
#+end_src
|
||||
*** ZSH
|
||||
#+begin_src shell
|
||||
paru -S zsh oh-my-zsh-git zsh-syntax-highlighting zsh-autosuggestions
|
||||
chsh -s /bin/zsh jaeus
|
||||
/usr/share/oh-my-zsh/tools/install.sh
|
||||
mv ~/.zshrc.* ~/.zshrc # overwrite configuration
|
||||
#+end_src
|
||||
|
||||
*** TMUX
|
||||
#+begin_src shell
|
||||
paru -S tmux
|
||||
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
||||
TMUX_PLUGIN_MANAGER_PATH=~/.config/tmux/plugins/tpm ~/.tmux/plugins/tpm/scripts/install_plugins.sh
|
||||
TMUX_PLUGIN_MANAGER_PATH=~/.config/tmux/plugins/tpm ~/.tmux/plugins/tpm/bin/update_plugins all
|
||||
#+end_src
|
||||
|
||||
*** EMACS
|
||||
GUI를 사용하기 위해 DISPLAY환경변수 추가.
|
||||
#+begin_src shell
|
||||
paru -S ripgrep emacs ttf-fira-code ttf-nanum
|
||||
|
||||
# WSL1
|
||||
#echo export DISPLAY=:10.0 >> ~/.zshrc
|
||||
# WSL2
|
||||
VETHER_IP=$(/bin/grep nameserver /etc/resolv.conf 2> /dev/null | /bin/tr -s ' ' | /bin/cut -d' ' -f2)
|
||||
export DISPLAY=$VETHER_IP:0.0
|
||||
#+end_src
|
||||
|
||||
Latex 지원
|
||||
#+begin_src shell
|
||||
paru -S auctex texlive-most texlive-lang
|
||||
#+end_src
|
||||
|
||||
Emacs Windows shortcut
|
||||
=c:\windows\system32\bash.exe= 를 이용하며,
|
||||
실행시 cmd창이 자꾸 뜨기 때문에 runs.exe프로그램을 이용한다.
|
||||
|
||||
in wsl.
|
||||
#+begin_src shell
|
||||
cp ~/.dotfiles/Note/WSL/run_emacs.sh ~/.run_emacs.sh
|
||||
#+end_src
|
||||
in Powershell.
|
||||
#+begin_src shell
|
||||
unzip $HOME/.dotfiles/Note/WSL/usr_cmd.zip -d $HOME/usr_cmd
|
||||
#+end_src
|
||||
[[./WSL/usr_cmd.zip]] 파일의 내용을 Windows의 =$HOME/usr_cmd= 에 넣는다.
|
||||
|
||||
*** Libre-office
|
||||
Libre-office를 깔면 Emacs에서도 그 파일이 열림.
|
||||
#+begin_src shell
|
||||
paru -S libreoffice
|
||||
#+end_src
|
||||
|
||||
* Proxy
|
||||
#+begin_src shell
|
||||
export proxy_addr="http://192.168.1.168:3128"
|
||||
#+end_src
|
||||
|
||||
|
||||
** Global
|
||||
#+begin_src shell
|
||||
echo export http_proxy=$proxy_addr >> ~/.zshrc
|
||||
echo export HTTP_PROXY=$proxy_addr >> ~/.zshrc
|
||||
echo export https_proxy=$proxy_addr >> ~/.zshrc
|
||||
echo export HTTPS_PROXY=$proxy_addr >> ~/.zshrc
|
||||
echo export ftp_proxy=$proxy_addr >> ~/.zshrc
|
||||
echo export FTP_PROXY=$proxy_addr >> ~/.zshrc
|
||||
echo export rsync_proxy=$proxy_addr >> ~/.zshrc
|
||||
echo export RSYNC_PROXY=$proxy_addr >> ~/.zshrc
|
||||
#+end_src
|
||||
|
||||
Sudo 명령어에 proxy 환경변수 통과
|
||||
#+begin_src shell
|
||||
echo "Defaults env_keep += \"*_proxy *_PROXY\"" > ./05_proxy
|
||||
sudo mv 05_proxy /etc/sudoers.d
|
||||
sudo chown root:root /etc/sudoers.d/05_proxy
|
||||
#+end_src
|
||||
** Git
|
||||
#+begin_src shell
|
||||
git config --global http.proxy $proxy_addr
|
||||
git config --global https.proxy $proxy_addr
|
||||
#+end_src
|
||||
2
Note/WSL/config.xlaunch
Normal file
2
Note/WSL/config.xlaunch
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<XLaunch WindowMode="MultiWindow" ClientMode="NoClient" LocalClient="False" Display="10" LocalProgram="xcalc" RemoteProgram="xterm" RemotePassword="" PrivateKey="" RemoteHost="" RemoteUser="" XDMCPHost="" XDMCPBroadcast="False" XDMCPIndirect="False" Clipboard="True" ClipboardPrimary="True" ExtraParams="" Wgl="True" DisableAC="True" XDMCPTerminate="False"/>
|
||||
8
Note/WSL/run_emacs.sh
Executable file
8
Note/WSL/run_emacs.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
VETHER_IP=$(/bin/grep nameserver /etc/resolv.conf 2> /dev/null | /bin/tr -s ' ' | /bin/cut -d' ' -f2)
|
||||
export DISPLAY=$VETHER_IP:10.0
|
||||
|
||||
emacs
|
||||
|
||||
disown
|
||||
exit
|
||||
BIN
Note/WSL/usr_cmd.zip
Executable file
BIN
Note/WSL/usr_cmd.zip
Executable file
Binary file not shown.
275
Note/WindowEnv.org
Normal file
275
Note/WindowEnv.org
Normal file
@ -0,0 +1,275 @@
|
||||
#+TITLE: Window Env
|
||||
|
||||
* Windows Environment
|
||||
모든 명령어는 Powershell에서 수행된다.
|
||||
** 사전준비
|
||||
*** 환경변수
|
||||
#+begin_src shell
|
||||
$git_username = "JaeYoo-Im"
|
||||
$git_email = "cpu3792@gmail.com"
|
||||
#+end_src
|
||||
*** CapsLock키 비활성화
|
||||
#+begin_src shell
|
||||
# Change KeyMap (Capslock to ctrl key)
|
||||
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /v "Scancode Map" /t REG_BINARY /d 0000000000000000020000001d003a0000000000 /f
|
||||
#+end_src
|
||||
*** Chocolatey 설치
|
||||
#+begin_src shell
|
||||
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
|
||||
#+end_src
|
||||
|
||||
** Application
|
||||
*** Base Apps
|
||||
#+begin_src shell
|
||||
choco install firefox -y
|
||||
choco install git -y
|
||||
choco install git-fork -y
|
||||
choco install dejavufonts -y
|
||||
choco install firacode -y
|
||||
choco install enpass.install -y
|
||||
#+end_src
|
||||
|
||||
windows에서 기본으로 제공하는 openssh는 proxycommand등의 기능이 지원되지 않는다.
|
||||
삭제후 Git을 설치하면 같이 설치되는 ssh를 사용한다.
|
||||
[[./images/screenshot-04.png]]
|
||||
[[./images/screenshot-05.png]]
|
||||
|
||||
개인적으로 =%HOME%/usr_cmd= 를 환경변수에 추가하여 스크립트들을 넣어 사용한다.
|
||||
#+begin_src shell
|
||||
[Environment]::SetEnvironmentVariable("HOME", $HOME, "Machine")
|
||||
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";" + $HOME + "\usr_cmd;c:\Program Files\Git\bin;c:\Program Files\Git\usr\bin", "Machine")
|
||||
$env:Path = [Environment]::GetEnvironmentVariable("Path", "Machine")
|
||||
|
||||
git config --global user.name $git_username
|
||||
git config --global user.email $git_email
|
||||
|
||||
git clone https://github.com/JaeYoo-Im/myDots.git $HOME/.dotfiles
|
||||
#+end_src
|
||||
|
||||
*** Neovim
|
||||
#+begin_src shell
|
||||
choco install neovim -y
|
||||
choco install ctags -y
|
||||
cp -r $HOME/.dotfiles/.config/nvim $HOME/AppData/Local
|
||||
#+end_src
|
||||
|
||||
Context 메뉴 추가
|
||||
|
||||
|
||||
[[./images/screenshot-06.png]]
|
||||
#+begin_src shell
|
||||
# Edit with neovim context menu
|
||||
reg add HKEY_CLASSES_ROOT\*\shell\NeoVim /t REG_SZ /d "Edit with NeoVim..." /f
|
||||
reg add HKEY_CLASSES_ROOT\*\shell\NeoVim /v Icon /t REG_SZ /d "C:\tools\neovim\Neovim\bin\nvim-qt.exe" /f
|
||||
reg add HKEY_CLASSES_ROOT\*\shell\NeoVim\Command /t REG_SZ /d "C:\tools\neovim\Neovim\bin\nvim-qt.exe """"%1""""" /f
|
||||
#+end_src
|
||||
|
||||
Plugin Manager 설치
|
||||
#+begin_src shell
|
||||
|
||||
md ~\AppData\Local\nvim\autoload
|
||||
$uri = 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
|
||||
(New-Object Net.WebClient).DownloadFile(
|
||||
$uri,
|
||||
$ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath(
|
||||
"~\AppData\Local\nvim\autoload\plug.vim"
|
||||
)
|
||||
)
|
||||
#+end_src
|
||||
|
||||
*** Networking
|
||||
#+begin_src shell
|
||||
choco install angryip -y
|
||||
choco install wireshark -y
|
||||
choco install putty.install -y
|
||||
#+end_src
|
||||
*** Media
|
||||
#+begin_src shell
|
||||
choco install handbrake.install -y
|
||||
choco install potplayer -y
|
||||
choco install reaper -y
|
||||
choco install gimp -y
|
||||
choco install inkscape -y
|
||||
#choco install blender -y
|
||||
#+end_src
|
||||
*** Gaming
|
||||
#+begin_src shell
|
||||
choco install goggalaxy -y
|
||||
choco install msiafterburner -y
|
||||
choco install steam -y
|
||||
choco install epicgameslauncher -y
|
||||
choco install discord -y
|
||||
#+end_src
|
||||
*** Programming
|
||||
#+begin_src shell
|
||||
choco install visualstudio2019buildtools -y
|
||||
#+end_src
|
||||
|
||||
**** Clang
|
||||
#+begin_src shell
|
||||
choco install llvm -y
|
||||
choco install cmake -y
|
||||
#+end_src
|
||||
|
||||
**** Rust
|
||||
Rust는 build tools 설치후 진행.
|
||||
#+begin_src shell
|
||||
wget https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe -OutFile rustup-init.exe
|
||||
./rustup-init.exe
|
||||
$env:Path += ";$HOME/.cargo/bin"
|
||||
rustup component add rls
|
||||
rustup component add rust-src
|
||||
rustup component add rust-analysis
|
||||
rm ./rustup-init.exe
|
||||
#+end_src
|
||||
|
||||
**** Python Packages
|
||||
#+begin_src shell
|
||||
choco install python -y
|
||||
$env:Path += ";C:/Python39/Scripts"
|
||||
python -m pip install --upgrade pip
|
||||
#pip install wheel
|
||||
#pip install six
|
||||
#pip uninstall pygls
|
||||
#pip install pygls==0.9.1 # hdl_checker dependency
|
||||
#pip install hdl_checker #neovim / modelsim 연동
|
||||
pip install numpy
|
||||
pip install matplotlib
|
||||
#+end_src
|
||||
|
||||
**** Julia
|
||||
#+begin_src shell
|
||||
choco install julia atom -y
|
||||
#+end_src
|
||||
|
||||
***** Package Install
|
||||
Julia 실행후
|
||||
#+begin_src julia
|
||||
] #package 관리자 진입
|
||||
add Plots
|
||||
add FFTW
|
||||
#+end_src
|
||||
|
||||
***** ATOM
|
||||
=Ctrl+,= 입력하여 설정창 띄운후 uber-juno 설치.
|
||||
*** Latex
|
||||
예전에 사용하던 방법인데 남겨놓는다. 최근에는 WSL의 EMACS에서 AUCTEX를 이용해서 사용하고자 하고 있음.
|
||||
**** Texlive 사용방법
|
||||
#+begin_src shell
|
||||
wget http://mirror.navercorp.com/CTAN/systems/texlive/Images/texlive.iso -OutFile texlive.iso
|
||||
$image_path = (Get-Location).path + "\texlive.iso"
|
||||
$mountResult = Mount-DiskImage -ImagePath $image_path -PassThru
|
||||
$driveLetter = ($mountResult | Get-Volume).DriveLetter + ":"
|
||||
Push-Location $driveLetter
|
||||
.\install-tl-windows.bat
|
||||
Pop-Location
|
||||
Dismount-DiskImage -ImagePath $image_path
|
||||
|
||||
choco install texstudio -y
|
||||
|
||||
rm ./texlive.iso
|
||||
#+end_src
|
||||
Context Menu
|
||||
#+begin_src shell
|
||||
reg add "HKEY_CLASSES_ROOT\tex File\shell\pdfLatex" /t REG_SZ /d "Generate PDF..." /f
|
||||
$texlive_context_cmd = $texlive_inst_dir + "/bin/win32/pdflatex.exe -synctex=1 -interaction=nonstopmode ""%1"""
|
||||
reg add "HKEY_CLASSES_ROOT\tex File\shell\pdfLatex\Command" /t REG_SZ /d $texlive_context_cmd /f
|
||||
#+end_src
|
||||
|
||||
**** Miktex 사용방법
|
||||
#+begin_src shell
|
||||
choco install miktex -y
|
||||
choco install texmaker -y
|
||||
choco install graphviz -y
|
||||
choco install gnuplot -y
|
||||
#+end_src
|
||||
|
||||
*** Others
|
||||
#+begin_src shell
|
||||
choco install bandizip -y
|
||||
choco install everything -y
|
||||
choco install sumatrapdf.install -y
|
||||
choco install filezilla -y
|
||||
choco install transgui -y
|
||||
choco install honeyview -y
|
||||
choco install rufus -y
|
||||
choco install pdfsam.install -y
|
||||
|
||||
choco install dotnetcore-sdk -y
|
||||
choco install powertoys -y
|
||||
#+end_src
|
||||
* Proxy
|
||||
프록시를 이용하여 특정앱을 업데이트하거나 특정앱의 인터넷접속을 할때 쓰던 방식이다.
|
||||
|
||||
환경변수는 아래와 같다.
|
||||
#+begin_src shell
|
||||
$proxy_addr = "192.168.1.168:3128"
|
||||
#+end_src
|
||||
|
||||
** Global Proxy
|
||||
앞서 usr_cmd를 환경변수에 추가하였기에 여기에 =proxy.bat= 파일을 생성하여 =Win-R= 실행창에서 빠르게 프록시를 켜고 끌수 있게 하였다.
|
||||
1. Proxy 0 프록시 끄기
|
||||
2. Proxy 1 프록시 켜기
|
||||
#+begin_src shell
|
||||
$proxy_bat_file = $HOME + "\usr_cmd\proxy.bat"
|
||||
Add-Content -Path $proxy_bat_file -Value ("set PROXY_ADDR=" + $proxy_addr)
|
||||
Add-Content -Path $proxy_bat_file -Value (Get-Content "./proxy_base.txt")
|
||||
#+end_src
|
||||
|
||||
여기서 proxy_base.txt 파일의 내용은 다음과 같다.
|
||||
이상하게 Internet Explorer를 켜고 꺼야 적용이 되더라.
|
||||
#+begin_src shell
|
||||
@echo off
|
||||
|
||||
taskkill /IM iexplore.exe
|
||||
set argc=0
|
||||
for %%x in (%*) do Set /A argc+=1
|
||||
|
||||
echo argc : %argc%
|
||||
|
||||
if %argc% == 1 goto START_BAT
|
||||
echo Argument is needed.
|
||||
goto END_BAT
|
||||
|
||||
:START_BAT
|
||||
|
||||
if /i %1 == 0 goto DISABLE
|
||||
goto ENABLE
|
||||
|
||||
goto DISABLE
|
||||
|
||||
:ENABLE
|
||||
@%SystemRoot%\system32\reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d %PROXY_ADDR% /f
|
||||
@%SystemRoot%\system32\reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f
|
||||
start iexplore.exe
|
||||
sleep 2
|
||||
taskkill /IM iexplore.exe
|
||||
goto END_BAT
|
||||
|
||||
:DISABLE
|
||||
@%SystemRoot%\system32\reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d 0.0.0.0:80 /f
|
||||
@%SystemRoot%\system32\reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f
|
||||
start iexplore.exe
|
||||
sleep 2
|
||||
taskkill /IM iexplore.exe
|
||||
goto END_BAT
|
||||
|
||||
:END_BAT
|
||||
#+end_src
|
||||
|
||||
** Chocolatey
|
||||
#+begin_src shell
|
||||
choco config set proxy http://$proxy_addr
|
||||
#+end_src
|
||||
** Git
|
||||
#+begin_src shell
|
||||
git config --global http.proxy http://$proxy_addr
|
||||
git config --global https.proxy https://$proxy_addr
|
||||
#+end_src
|
||||
|
||||
** Powershell에서 임시 활성화
|
||||
#+begin_src shell
|
||||
$proxy='http://'+$proxy_addr
|
||||
$ENV:HTTP_PROXY=$proxy
|
||||
$ENV:HTTPS_PROXY=$proxy
|
||||
#+end_src
|
||||
BIN
Note/images/screenshot-01.png
Normal file
BIN
Note/images/screenshot-01.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.8 KiB |
BIN
Note/images/screenshot-02.png
Normal file
BIN
Note/images/screenshot-02.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.7 KiB |
BIN
Note/images/screenshot-03.png
Normal file
BIN
Note/images/screenshot-03.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
BIN
Note/images/screenshot-04.png
Executable file
BIN
Note/images/screenshot-04.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 198 KiB |
BIN
Note/images/screenshot-05.png
Executable file
BIN
Note/images/screenshot-05.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
BIN
Note/images/screenshot-06.png
Executable file
BIN
Note/images/screenshot-06.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 6.9 KiB |
66
Note/virtmanager.org
Normal file
66
Note/virtmanager.org
Normal file
@ -0,0 +1,66 @@
|
||||
#+TITLE: Virt-Manager Configuration
|
||||
|
||||
* Installation
|
||||
#+begin_src shell
|
||||
|
||||
#+end_src
|
||||
|
||||
* Config
|
||||
** =/etc/libvirt/libvirtd.conf=
|
||||
sudo vim /etc/libvirt/libvirtd.conf
|
||||
|
||||
find each of these in the file, or add them if they are not there:
|
||||
|
||||
#unix_sock_group = "libvirt"
|
||||
#unix_sock_rw_perms = "0770"
|
||||
|
||||
|
||||
#log_filters="1:qemu"
|
||||
#log_outputs="1:file:/var/log/libvirt/libvirtd.log"
|
||||
|
||||
change to:
|
||||
|
||||
unix_sock_group = "libvirt"
|
||||
unix_sock_rw_perms = "0770"
|
||||
|
||||
log_filters="1:qemu"
|
||||
log_outputs="1:file:/var/log/libvirt/libvirtd.log"
|
||||
|
||||
if it is not in the file, simply add it. If it is not commented out with #, then just leave it as it is and exit the file.
|
||||
|
||||
Now run the following commands:
|
||||
|
||||
sudo usermod -a -G libvirt $(whoami)
|
||||
sudo systemctl start libvirtd
|
||||
sudo systemctl enable libvirtd
|
||||
|
||||
|
||||
** QEMU configuration
|
||||
edit:
|
||||
|
||||
sudo nano /etc/libvirt/qemu.conf
|
||||
|
||||
find:
|
||||
|
||||
#user = "root"
|
||||
#group = "root"
|
||||
|
||||
change to:
|
||||
|
||||
user = "YOUR USERNAME"
|
||||
group = "YOUR USERNAME"
|
||||
|
||||
Restart Libvirt:
|
||||
|
||||
sudo systemctl restart libvirtd
|
||||
|
||||
sudo usermod -a -G kvm "YOUR USERNAME"
|
||||
sudo usermod -a -G libvirt "YOUR USERNAME"
|
||||
|
||||
** Network Default Switch
|
||||
sudo virsh net-autostart default
|
||||
sudo virsh net-start default
|
||||
|
||||
** 성능향상팁
|
||||
drive는 raw, virtio, cache 모드는 writeback
|
||||
network => virtio
|
||||
@ -1 +0,0 @@
|
||||
First Init
|
||||
23
scripts/hyperv_mount_settings.sh
Executable file
23
scripts/hyperv_mount_settings.sh
Executable file
@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
|
||||
echo "===================================="
|
||||
echo "Share Directory Mount?(y/N)?"
|
||||
echo ${whoami}
|
||||
read val
|
||||
if [ "${val}" == "" ]; then
|
||||
val="N"
|
||||
fi
|
||||
|
||||
if [ "${val}" == "y" ];then
|
||||
echo "address(ex://192.168.1.144/d)?"
|
||||
read addr
|
||||
echo "user(ex:JaeUs-HV)?"
|
||||
read user
|
||||
echo "password?"
|
||||
read pass
|
||||
echo "mount point(ex:/home/jaeus/mnt)?"
|
||||
read mpoint
|
||||
|
||||
sudo echo "${addr} ${mpoint} cifs _netdev,nofail,username=${user},password=${pass},uid=jaeus,gid=jaeus 0 0" >> /etc/fstab
|
||||
fi
|
||||
|
||||
56
scripts/init_script_arcolinux.sh
Executable file
56
scripts/init_script_arcolinux.sh
Executable file
@ -0,0 +1,56 @@
|
||||
#!/bin/sh
|
||||
|
||||
sudo pacman -S betterlockscreen
|
||||
sudo pacman -Syu --noconfirm
|
||||
|
||||
git clone https://github.com/JaeYoo-Im/myDots ~/.dotfiles
|
||||
paru -S stow zsh-autosuggestions-git alacritty trayer --noconfirm
|
||||
/usr/share/oh-my-zsh/tools/install.sh
|
||||
rm ~/.zshrc ~/.bashrc ~/.xmonad/xmonad.hs
|
||||
cd ~/.dotfiles
|
||||
stow .
|
||||
|
||||
# neovim
|
||||
paru -S neovim --noconfirm
|
||||
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
|
||||
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
|
||||
|
||||
nvim +PlugInstall +q +q
|
||||
|
||||
# git config
|
||||
git config --global user.name "JaeYoo-Im"
|
||||
git config --global user.email "cpu3792@gmail.com"
|
||||
|
||||
# tmux
|
||||
paru -S tmux --noconfirm
|
||||
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
||||
|
||||
TMUX_PLUGIN_MANAGER_PATH=~/.config/tmux/plugins/tpm ~/.tmux/plugins/tpm/scripts/install_plugins.sh
|
||||
TMUX_PLUGIN_MANAGER_PATH=~/.config/tmux/plugins/tpm ~/.tmux/plugins/tpm/bin/update_plugins all
|
||||
|
||||
# Dynamic wallpaper
|
||||
paru -S cronie --noconfirm
|
||||
git clone https://github.com/adi1090x/dynamic-wallpaper.git ~/dynamic-wallpaper
|
||||
cd dynamic-wallpaper
|
||||
./install.sh
|
||||
|
||||
# font
|
||||
paru -S ttf-fira-code ttf-nanum nerd-fonts-mononoki --noconfirm
|
||||
|
||||
# hangul
|
||||
paru -S fcitx-hangul fcitx-configtool --noconfirm
|
||||
|
||||
# enpass
|
||||
paru -S enpass --noconfirm
|
||||
|
||||
paru -S green-tunnel --noconfirm
|
||||
|
||||
#emacs
|
||||
paru -S ripgrep emacs --noconfirm
|
||||
paru -S auctex texlive-most texlive-lang --noconfirm
|
||||
|
||||
#seafile
|
||||
paru -S seadrive-gui --noconfirm
|
||||
|
||||
# etc
|
||||
paru -S figlet --noconfirm
|
||||
15
scripts/init_script_hyperv.sh
Executable file
15
scripts/init_script_hyperv.sh
Executable file
@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
paru -S hyperv --noconfirm
|
||||
|
||||
sudo systemctl enable hv_fcopy_daemon.service
|
||||
sudo systemctl enable hv_kvp_daemon.service
|
||||
sudo systemctl enable hv_vss_daemon.service
|
||||
|
||||
git clone https://github.com/Microsoft/linux-vm-tools
|
||||
cd linux-vm-tools/arch
|
||||
./makepkg.sh
|
||||
sudo ./install-config.sh
|
||||
|
||||
echo "type ""Set-VM -VMName Arch-HV -EnhancedSessionTransportType HvSocket"" in powershell"
|
||||
|
||||
echo xmonad >> ~/.xinitrc
|
||||
39
scripts/set_proxy.sh
Executable file
39
scripts/set_proxy.sh
Executable file
@ -0,0 +1,39 @@
|
||||
|
||||
echo "===================================="
|
||||
echo "Proxy Setting enable(y/N)?"
|
||||
read val
|
||||
|
||||
if [ "${val}" == "" ]; then
|
||||
echo $val
|
||||
fi
|
||||
|
||||
if [ "${val}" == "y" ];then
|
||||
echo "address(ex:192.168.1.168)?"
|
||||
read ip
|
||||
echo "port(ex:3128)"
|
||||
read port
|
||||
proxy_addr="http://${ip}:${port}"
|
||||
echo proxy address is $proxy_addr
|
||||
|
||||
# zsh
|
||||
echo export http_proxy=$proxy_addr >> ~/.zshrc
|
||||
echo export HTTP_PROXY=$proxy_addr >> ~/.zshrc
|
||||
echo export https_proxy=$proxy_addr >> ~/.zshrc
|
||||
echo export HTTPS_PROXY=$proxy_addr >> ~/.zshrc
|
||||
echo export ftp_proxy=$proxy_addr >> ~/.zshrc
|
||||
echo export FTP_PROXY=$proxy_addr >> ~/.zshrc
|
||||
echo export rsync_proxy=$proxy_addr >> ~/.zshrc
|
||||
echo export RSYNC_PROXY=$proxy_addr >> ~/.zshrc
|
||||
|
||||
#sudo
|
||||
echo "Defaults env_keep += \"*_proxy *_PROXY\"" > ./05_proxy
|
||||
sudo mv 05_proxy /etc/sudoers.d
|
||||
sudo chown root:root /etc/sudoers.d/05_proxy
|
||||
|
||||
#git
|
||||
git config --global http.proxy $proxy_addr
|
||||
git config --global https.proxy $proxy_addr
|
||||
fi
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user