리눅스 민트 20 설치 후 개인적으로 한 작업들이다.
허나 남들도 도움이 될만한 게 있을까 해서 글을 남겨본다.

(이 글은 잦은 수정이 있습니다.)

 

앱센터에서 삭제해야 할 것
•Thunderbird Mail
•nano
•Pix
•Redshift
•Onboard
•Celluloid
•Rhythmbox
•Drawing

앱센터에서 설치 해야 할 것
•Terminator
•VLC
•Kolourpaint

만들어야 할 단축키
설정에서  (Keyboard> Shortcuts)를 들어간다.
•창 최대화 단축키는 (Categories>Windows>Maximize windows)에서 (Super+Up)으로 설정한다.
•창 닫기 단축키 추가는(Categories>Windows>Close windows)에서 (Super+X)로 설정한다.
•웹 브라우저 단축키는 (Categories>Launchers>Launch web browser)에서 (Super+E)로 설정한다.

•홈 폴더 단축키는 (Categories>Launchers>Home folder)에서 (Super + F)로 설정한다,
•터미네이터 단축키는 (Categories>Launchers>Custom Shortcuts)에서 (Add custom shortcut)를 누른 뒤 Name 하고 Command를 terminator로 하고 단축키는 (Super+T)로 설정한다.

 

부팅 시 자동실행 명령어 등록

cd /etc/profile.d/ 
sudo vi startup.sh

그 후 본인이 원하는 명령어 쉘 스크립트를 입력한다.

#!/bin/bash

#Thinkpad_trackpoint_speed(빨콩_속도조절)
xinput --set-prop "TPPS/2 Elan TrackPoint" "libinput Accel Speed" -1.0 &
#Disable_bluetooth_on_boot(부팅시_블루투스_비활성화)
rfkill block bluetooth &
#enable_hangul_to_fcitx(fcitx를_이용해서_한글_활성화)
fcitx &

 

Numlock 활성화

sudo apt-get install numlockx

설치 후 Login Window -> Settings에서 Activate numlock 선택하기


git 설치

apt install git

 

크롬 설치

wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt-get update
sudo apt-get install google-chrome-stable
sudo apt install python3-apt
sudo rm -rf /etc/apt/sources.list.d/google.list

 

파이어폭스 삭제

sudo apt-get purge firefox
rm -r .mozilla/firefox/
rm -r /etc/firefox/
rm -r /usr/lib/firefox/
rm -r /usr/lib/firefox-addons/
rm -r .mozilla

 

ppa 지원

sudo apt-get -y install software-properties-common

 

TLP Laptop battery saver 설치

sudo add-apt-repository -y ppa:linrunner/tlp
sudo apt-get install -y tlp tlp-rdw
sudo tlp start

 

axel 설치

sudo apt-get install axel

axel 사용방법 예시는 axel -n x http://~~ .mp4


stdio.h 해더파일 설치

sudo apt-get install libc6-dev

 

나눔폰트 설치

sudo apt-get install fonts-nanum

 

카메라 설치

sudo apt-get install cheese

 

VirtualBox 설치
www.virtualbox.org/wiki/Linux_Downloads 여기서 직접 다운로드하는 게 좋다.

 

NeoVim 설치

sudo apt-get install software-properties-common
sudo apt-get install fuse libfuse2 git python3-pip ack-grep -y
sudo add-apt-repository ppa:neovim-ppa/unstable
sudo apt-get update
sudo apt-get install neovim
pip3 install --user neovim
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

터미널에서 'v' 만으로 nvim을 실행하고 싶으면 ~/.zshrc 에서 마지막 줄에 alias v='nvim' 를 입력하면 된다.

 

NeoVim 설정 & 플러그인
우선 colorscheme 부터 설정하자
(테마는 onedark이다)
(nvim이 아닌 일반 vim의 colorschme 기본 폴더는 /usr/share/vim/vim81/colors 이며 vim81의 숫자는 버전마다 다를 수 있다.)

git clone https://github.com/joshdick/onedark.vim.git
sudo cp ~/onedark.vim/colors/onedark.vim /usr/share/nvim/runtime/colors/
sudo cp ~/onedark.vim/autoload/onedark.vim /usr/share/nvim/runtime/autoload/
sudo rm -r onedark.vim

테마 설정 후에는 잡다한 설정 및 플러그인들을 설치 하자

mkdir ~/.config/nvim
vi .config/nvim/init.vim

우선 init.vim 을 연 뒤에
(nvim이 아닌 일반 vim 사용할 때는 /etc/vim 에 가서 vimrc 파일을 연다.)

"================================= onedark ColorScheme 관련된 줄 =================================
" https://www.chrisatmachine.com/Neovim/03-vim-themes  참조 
if (has("autocmd") && !has("gui_running"))
  augroup colorset
    autocmd!
    let s:white = { "gui": "#ABB2BF", "cterm": "145", "cterm16" : "7" }
    autocmd ColorScheme * call onedark#set_highlight("Normal", { "fg": s:white }) 
  augroup END
endif

hi Comment cterm=italic
let g:onedark_hide_endofbuffer=1
let g:onedark_terminal_italics=1
let g:onedark_termcolors=256

syntax on                       " 형식별 구문 강조 표시
colorscheme onedark             " 테마 설정

if (has("termguicolors"))
    set termguicolors
    hi LineNr ctermbg=NONE guibg=NONE
endif

"================================= 일반 설정 =================================
"https://seulcode.tistory.com/272  참조

filetype plugin on              "vim 기본 설정 영역

let g:mapleader = ","           "리더키를 콤마로 설정

set number                      "라인 넘버 표시
set hlsearch                    "검색 시 하이라이트 
set ignorecase                  "검색 시 대소문자 무시하기
"set smartcase                  "검색 시 대소문자 무시하기. set ignorecase 와의 차이점은 검색어에 대문자가 있을 경우 자동으로 대문자만 검색한다.
"set noignorecase               "검색 시 대소문자 구분하기
set showmatch                   "현재 선택된 괄호의 쌍을 표시
set history=1000                "vi 편집기록 기억갯수
set title                       "타이틀바에 현재 편집 중인 파일을 표시
set cursorline                  "커서가 있는 라인을 강조 표시 
"set mouse=a                     "마우스 커서 사용. 'a' to all mode, n, v, i, c to Normal, Visual, Insert, Command mode
set wrap                        "너무 길어서 화면에 전부 표시할 수 없는 줄을 다음줄로 자동으로 줄바꿈을 하여 표시
"set nowrap                     "wrap 해제
set clipboard=unnamed           "시스템의 클립 보드에서 vim 붙여 넣기. 
"set set clipboard=unnamedplus  "set clipboard=unnamed 하고 똑같은 것
set fileencodings=utf8,euc-kr   "한글 사용

"================================= 자동 백업 관련 =====================================
set noswapfile                  "vim에서 스왑 파일 생성 비활성화
set nobackup                    "vim에서 백업 파일 안 생기게 하기

"================================= 들여 쓰기 관련 ======================================
set smartindent                 "스마트한 들여 쓰기 사용
set autoindent                  "자동 들여 쓰기를 사용
set cindent                     "C언어 자동 들여 쓰기
set tabstop=4                   "탭을 4칸으로
set shiftwidth=4                " >> 또는 << 키로 들여 쓰기 할때 스페이스의 갯수. 기본값 8
set expandtab                   "탭을 스페이스로 바꾸기

"================================= Tap & Space ======================================
nmap <leader>l <Esc>:set list!<CR>
highlight SpecialKey cterm=None ctermfg=grey
map <leader>2 <Esc>:retab<CR>:set ts=4<CR>:set noexpandtab<CR>:retab!<CR>:set expandtab<CR>:set ts=2<CR>:set sw=2<CR>:retab!<CR>
map <leader>4 <Esc>:retab<CR>:set ts=2<CR>:set noexpandtab<CR>:retab!<CR>:set expandtab<CR>:set ts=4<CR>:set sw=4<CR>:retab!<CR>
set listchars=tab:>·
set listchars+=trail:·
set listchars+=extends:»
set listchars+=precedes:«
set listchars+=nbsp:·
set listchars+=space:·
set fillchars+=vert:\│          "Make vertical split separator full line

"================================ Auto command ===================================

autocmd InsertEnter * :set nocul                    "Remove cursorline highlight
autocmd InsertLeave * :set cul                      "Add cursorline highlight in normal mode
autocmd FileType html setlocal sw=2 ts=2            "Set indentation to 4 for html, css, scss, js
autocmd FileType css setlocal sw=2 ts=2
autocmd FileType scss setlocal sw=2 ts=2
autocmd FileType js setlocal sw=2 ts=2

"================================= 플러그인 ========================================
"자동 완성 플러그인. 
"Deoplete은 사용자의 입력을 prefix로 처리해서 예상되는 입력값들을 추천해주는 플러그인
call plug#begin('~/.vim/plugged')                   "deoplete 설치
if has('nvim')
  Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
else
  Plug 'Shougo/deoplete.nvim'
  Plug 'roxma/nvim-yarp'
  Plug 'roxma/vim-hug-neovim-rpc'
endif
"-------------------------------- 세부 플러그인 --------------------------------
Plug 'vim-scripts/delimitMate.vim'                 "괄호 자동완성 플러그인
Plug 'Shougo/neco-syntax'                           "vim 구문 파일을 통한 자동완성
Plug 'Shougo/deoplete-clangx'                       "c/c++ 자동완성
Plug 'deoplete-plugins/deoplete-jedi'               "python 자동완성
Plug 'Shougo/neco-vim'                              "CoC로 코드 자동완성
Plug 'davidhalter/jedi-vim'                         "자동완성 라이브러리
Plug 'scrooloose/nerdtree'                          "NERDTree 설치
Plug 'jistr/vim-nerdtree-tabs'                      "NERDTree Tabs 설치
Plug 'jiangmiao/auto-pairs'                         " 따옴표, 괄호, 중괄호, 대괄호 쌍을 자동으로 삭제
Plug 'tpope/vim-fugitive'                           "syntax error
Plug 'joshdick/onedark.vim'                         "onedark ColorScheme 플러그인
Plug 'vim-airline/vim-airline'                      "airline 관련 플러그인
Plug 'vim-airline/vim-airline-themes'               "airline 테마 관련 플러그인
Plug 'mattn/emmet-vim'  							"html:5 를 입력 후 ctrl y 를 누른 뒤 ,를 누르면 html폼이 완성되는 플러그인
Plug 'ap/vim-css-color'                             "css 소스코딩 하는 동안 색상들을 미리 보는 것

call plug#end()

let g:deoplete#enable_at_startup = 1

"----- 유용하지만 설치 안 한 플러그인 -----
" vim-surround                                        "이거 몰라... 알아보자
" Plug 'ryanoasis/vim-devicons'                       "Nerdtree에 예쁜 아이콘을 붙여주는 플러그인
" Plug 'mhinz/vim-startify'                         "https://vimawesome.com/plugin/vim-startify 
" Plug 'nightsense/simplifysimplify'

"================================= Plugins setting ==================================
"----- Nerd Tree -----
let NERDTreeWinPos = "left"
nmap <F7> :NERDTree<CR>
nnoremap <leader>r :NERDTreeFind<CR>

"----- deoplete -----
" use tab to forward cycle
inoremap <silent><expr><tab> pumvisible() ? "\<c-n>" : "\<tab>"" use tab to backward cycle
inoremap <silent><expr><s-tab> pumvisible() ? "\<c-p>" : "\<s-tab>"

" ----- jedi vim -----
let g:jedi#show_call_signatures = "0"   "jedi-vim slowdown

" ----- ale -----
let g:ale_lint_on_save = 1                                                      "Lint when saving a file
let g:ale_sign_error = '✖'                                                      "Lint error sign
let g:ale_sign_warning = '⚠'                                                    "Lint warning sign
let g:ale_statusline_format =[' %d E ', ' %d W ', '']                           "Status line texts
let g:ale_linters = {'javascript': ['eslint']}                                  "Lint js with eslint
let g:ale_fixers = {'javascript': ['prettier', 'eslint']}                       "Fix eslint errors
" ALEFix, ALEFixSuggest로 fix 사용 가능

"----- airline -----
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_sep = ''
let g:airline#extensions#tabline#left_alt_sep = ''
let g:airline#extensions#tabline#right_sep = ''
let g:airline#extensions#tabline#right_alt_sep = ''

let g:airline_powerline_fonts = 1
let g:airline_left_sep = ''
let g:airline_right_sep = ''

let g:airline_theme = 'onedark'

set showtabline=2
set noshowmode

"----- C언어 컴파일 단축키 -----
map <F9> :! gcc % -o %<<CR>
map <F10> :! ./%<<CR>

"----- Emmet 자동완성 단축키 -----
let g:user_emmet_leader_key=','

"이거 복사 붙여넣기 끝난 뒤에는 nvim에서 PlugInstall 하고 UpdateRemotePlugins 입력하기(플러그인 삭제는 PlugClean) 

k복사 붙여넣기 한 뒤에 nvim에서 PlugInstall 하고 UpdateRemotePlugins 를 입력한다.

 

zsh 및 oh-my-zsh 설치

sudo apt-get install zsh
chsh -s /usr/bin/zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
sudo apt install fonts-powerline

 

oh-my-zsh 테마 변경
.zshrc 파일을 열은 뒤에 robbyrussell 테마에서 agnoster 테마로 바꾼다.

ZSH_THEME="robbyrussell"   ==>   ZSH_THEME="agnoster" 

 

zsh 플러그인 설치
.zshrc 파일을 열고 71번째 줄에 plugins=(git)를 다음과 같이 고친다.

plugins=(
    git
    zsh-syntax-highlighting 
    zsh-autosuggestions 
)

그 후 다음과 같이 플러그인을 다운로드하고 설정한다.

# zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

# zsh-autosuggestions
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

 

oh-my-zsh 폰트 깨짐 방지

git clone https://github.com/powerline/fonts.git
cd fonts
./install.sh
sudo rm -r ~/fonts/

 

최종 마무리

apt autoremove -y 
apt autoclean -y