{"id":13574061,"url":"https://github.com/masasam/dotfiles","last_synced_at":"2025-04-04T12:07:01.977Z","repository":{"id":37547909,"uuid":"60175262","full_name":"masasam/dotfiles","owner":"masasam","description":"My dotfiles based on Makefile","archived":false,"fork":false,"pushed_at":"2024-10-29T23:35:52.000Z","size":10149,"stargazers_count":185,"open_issues_count":4,"forks_count":14,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-10-30T01:52:48.304Z","etag":null,"topics":["arch-linux","archlinux","config","dockerfile","dotfile","dotfiles","emacs","makefile","thinkpad","thinkpad-x1-carbon","tmux","zshrc"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/masasam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-06-01T12:31:56.000Z","updated_at":"2024-10-29T23:35:57.000Z","dependencies_parsed_at":"2024-01-05T11:43:37.722Z","dependency_job_id":"42dccc8e-a343-4f24-8338-cc912a4db3ef","html_url":"https://github.com/masasam/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masasam%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masasam%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masasam%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masasam%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/masasam","download_url":"https://codeload.github.com/masasam/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247174407,"owners_count":20896076,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arch-linux","archlinux","config","dockerfile","dotfile","dotfiles","emacs","makefile","thinkpad","thinkpad-x1-carbon","tmux","zshrc"],"created_at":"2024-08-01T15:00:45.846Z","updated_at":"2025-04-04T12:07:01.959Z","avatar_url":"https://github.com/masasam.png","language":"Emacs Lisp","funding_links":[],"categories":["Emacs Lisp"],"sub_categories":[],"readme":"# My dotfiles based on Makefile\n\n## Synopsis\n\n![emacs](https://raw.githubusercontent.com/masasam/image/image/emacs.png)\n\n![mutt](https://raw.githubusercontent.com/masasam/image/image/mutt.png)\n\n## Let's build environment with Makefile\n\nThis dotfiles is for Arch linux.\nSince there is no such as a distribution without make,\nif you make [Makefile](https://github.com/masasam/dotfiles/blob/master/Makefile),\nyou can correspond to any linux distribution.\nLet's make a [Makefile](https://github.com/masasam/dotfiles/blob/master/Makefile) immediately.\n\n### With Makefile, such a good thing\n\nEasy to build development environment with this command.\n\n    make install\n\nI never have to worry about setting my laptop again.\n\n### Deploying dotfiles can be done in a moment\n\nAfter make install you can deploy dotfiles with this command.\n\n    make init\n\n### With Makefile, you will be able to recover your usual environment in 1 hour\n\nYou can see argument on this Makefile with this command.\n\n    make\n\n![make](https://raw.githubusercontent.com/masasam/image/image/make.png)\n\n### Commands for allinstall\n\n\tmake allinstall\n\nYou can install all with this command.\nYou can install anything written after allinstall in the [Makefile](https://github.com/masasam/dotfiles/blob/master/Makefile).\n\n    make backup\n\nThe ArchLinux package list installed by this command is backed up in the archlinux directory.\n\n\tmake allbackup\n\nYou can backup packages all with this command.\n\n\tmake allupdate\n\nYou can update packages all with this command.\n\n## Synchronize backup directory to cloud\n\n[rclone](https://github.com/rclone/rclone) setting\n\n- google drive is [here](https://rclone.org/drive/)\n\n- dropbox is [here](https://rclone.org/dropbox/)\n\nSynchronize the backup directory to your favorite cloud using the [rclone](https://github.com/rclone/rclone).\n\n\trclone sync ${HOME}/backup drive:backup\n\trclone sync ${HOME}/backup dropbox:backup\n\nSynchronize the ~/backup directory to your favorite cloud in this command.\nThis command is a one-way synchronization to the cloud from your laptop or desktop.\nThe following command is a one-way synchronization to your laptop or desktop from the cloud.\n\n\trclone sync drive:backup ${HOME}/backup\n\trclone sync dropbox:backup ${HOME}/backup\n\nSince configuration file of [rclone](https://github.com/rclone/rclone) is encrypted with [git-crypt](https://github.com/AGWA/git-crypt),\nyou install and set up [git-crypt](https://github.com/AGWA/git-crypt) at first step.\nBackup directory sample is [here](https://github.com/masasam/dotfiles/tree/master/backup_sample).\n\n## How to use git-crypt\n\n\tgit-crypt init\n\nSet the name of the file you want to encrypt to .gitattributes\n\n    rclone.conf filter=git-crypt diff=git-crypt\n\nCommit the .gitattributes to git.\n\n\tgit add .gitattributes\n\tgit commit -m 'Add encrypted file config'\n\nSpecify the key used to encrypt.\n\n\tgit-crypt add-gpg-user YOUR_GNUPG_ID\n\nIt is encrypted except in your laptop or desktop after you commit rclone.conf.\n\n\tgit-crypt unlock\n\nAfter cloning a repository with encrypted files, unlock with gnupg at this command.\n\n#### Criteria of things managed by backup directory\n\n- What can not be placed on github\n\n\tscripts that password was written, etc.\n\n- Because it makes a lot of update file, it is troublesome to synchronize with github\n\n    .zsh_history\n\t.mozc\n\n- Those that can not be opened but need to protect data\n\n   Sylpheed configuration file and mail data etc.\n\n# Arch Linux install\n\nWhy Arch linux?\n\n- Unless your laptop breaks, arch linux is a rolling release so you don't have to reinstall it.\n  Even if it gets broken, I made a [Makefile](https://github.com/masasam/dotfiles/blob/master/Makefile) so I can return in 1 hour and it's unbeatable.\n\n- Arch linux is good because it is difficult for my development environment to be old packages.\n\n- I like customization but if customization is done too much, it is not good because it can not receive the benefit of the community. Since Arch linux is unsuitable for excessive customization, it is fit to me.\n  In principle the package of Arch linux is a policy to build from the source of vanilla (Vanilla means that it does not apply its own patch for arch linux).\n  It is good because Arch linux unique problems are unlikely.\n\n- Arch linux is lightweight because there is no extra thing.\n\n![top](https://raw.githubusercontent.com/masasam/image/image/top.png)\n\nNVMe SSD has only 512G, but it is sufficient for the environment that uses arch linux and emacs.\n\n![baobao](https://raw.githubusercontent.com/masasam/image/image/baobao.png)\n\nDownload Arch linux.\n\nhttps://www.archlinux.org/releng/releases/\n\nCreate USB installation media.\nRun the following command, replacing /dev/sdx with your drive, e.g. /dev/sdb. (Do not append a partition number, so do not use something like /dev/sdb1)\n\n\tsudo dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync\n\n#### Boot in USB memory\n\nChange it to boot from usb in BIOS UEFI.\n\n\t[thinkpad x1 carbon gen6]\n\tSecurity \u003e Secure Boot: Disable\n\tConfig -\u003e Sleep State: linux\n\tConfig -\u003e Thunderbolt BIOS Assist Mode: Enabled\n\tSecurity \u003e I/O Port Access \u003e Wireless WAN: Disable(for power save)\n\tSecurity \u003e I/O Port Access \u003e Memory Card Slot: Disable(for power save)\n\tSecurity \u003e I/O Port Access \u003e Fingerprint Reader: Disable(for power save)\n\tConfig -\u003e Network -\u003e Wake On LAN: Disabled(for power save)\n\tConfig -\u003e Network -\u003e Wake On LAN from Dock: Disabled(for power save)\n\n\t[thinkpad x1 carbon gen10]\n\tSecurity \u003e Secure Boot: off\n\tConfig -\u003e Sleep State: linux\n\t\nInstall archlinux\n\n\tsetfont solar24x32.psfu.gz\n\tgdisk /dev/nvme0n1\n\nClear the partition\n\n\tCommand (? for help): o\n\nMake ESP(EFI System Partition).\nBecause I want to do UEFI boot, I make a FAT32 formatted partition.\n\n\tCommand (? for help): n\n\tPermission number: 1\n\tFirst sector     : enter\n\tLast sector      : +512M\n\tHex code or GUID : EF00\n\nMake swap(Since the memory is 16G, allocate more than that to swap).\n\n\tCommand (? for help): n\n\tPartition number (2-128, default 2): enter\n\tFirst sector (34-1953525134, default = 206848) or {+-}size{KMGTP}: enter\n\tLast sector (206848-1953525134, default = 1953525134) or {+-}size{KMGTP}: +20G\n\tHex code or GUID (L to show codes, Enter = 8300): 8200\n\nSet all the rest to / partition\n\t\n\tCommand (? for help): n\n\tPermission number: enter\n\tFirst sector     : enter\n\tLast sector      : enter\n\tHex code or GUID : 8300\n\nFormat and mount with fat32 and ext4\n\n\tmkfs.fat -F32 /dev/nvme0n1p1\n\tmkfs.ext4 /dev/nvme0n1p3\t\n\tmkswap /dev/nvme0n1p2\n\tswapon /dev/nvme0n1p2\n\tmount /dev/nvme0n1p3 /mnt\n\tmkdir /mnt/boot\n\tmount /dev/nvme0n1p1 /mnt/boot\n\tmount | grep /mnt\n\nConnect internet with wifi\n\n\tip link\n\trfkill list\n\trfkill unblock 0\n\tiwctl\n\t[iwd]# station wlan0 scan\n\t[iwd]# station wlan0 get-networks\n\t[iwd]# station wlan0 connect {SSID}\n\nInstall bese bese-devel of arch\n\n\tpacstrap -K /mnt base linux linux-firmware vi\n\nMake sure the nearest mirror is selected.\nComment out the nearest mirror.\n\n\tvi /etc/pacman.d/mirrorlist\n\tServer = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch\n\tpacman -Syuu\n\nGenerate fstab\n\n    genfstab -U /mnt \u003e\u003e /mnt/etc/fstab\n\nMount and log in as bash login shell\n\n    arch-chroot /mnt\n\nSet the host name\n\n    echo thinkpad \u003e /etc/hostname\n\nvi /etc/locale.gen\n\n\ten_US.UTF-8 UTF-8\n\tja_JP.UTF-8 UTF-8\n\nNext execute\n\n    locale-gen\n\nShell is in English environment\n\n    export LANG=C\n\nThis will be UTF-8\n\n    echo LANG=ja_JP.UTF-8 \u003e /etc/locale.conf\n\nTime zone example\n\n\tln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime\n\tln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime\n\tln -sf /usr/share/zoneinfo/US/Pacific /etc/localtime\n\nTime adjustment\n\n    hwclock --systohc\n\nGenerate kernel image\n\n    mkinitcpio -P\n\nGenerate user\n\n    useradd -m -G wheel -s /bin/bash ${USER}\n\nSet password\n\n    passwd ${USER}\n\nSet groups and permissions\n\n\tpacman -S sudo\n    visudo\n\nUncomment comment out following\n\n\tDefaults env_keep += “ HOME ”\n\t%wheel ALL=(ALL) ALL\n\nInstall intel-ucode(install before boot loader)\n\n\tpacman -S intel-ucode\n\nSet boot loader\n\t\n\tpacman -S grub efibootmgr\n\tgrub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB\n\tgrub-mkconfig -o /boot/grub/grub.cfg\n\n#### Prepare drivers and Xorg Gnome\n\nInstall drivers that match your environment\n\n\tlspci | grep VGA\n\tpacman -S intel-media-driver libva-utils\n\tpacman -S xorg-server xorg-apps\n\nGnome can be put as small as necessary\n\n\tpacman -S gnome-backgrounds\n\tpacman -S gnome-control-center\n\tpacman -S gnome-keyring\n\tpacman -S nautilus\n\nTerminal uses [ghostty](https://github.com/ghostty-org/ghostty) and [alacritty](https://github.com/alacritty/alacritty) and [wezterm](https://github.com/wez/wezterm) and [termite](https://github.com/aperezdc/termite)\n\n\tpacman -S ghostty alacritty wezterm\n\nEnable graphical login with gdm\n\n\tpacman -S gdm\n\tsystemctl enable gdm.service\n\nPreparing the net environment\n\n\tpacman -S networkmanager\n\tsystemctl enable NetworkManager.service\n\tpacman -S otf-ipafont\n\nAudio setting\n\n\tpacman -S pipewire-pulse\n\texit\n\treboot\n\nFor thinkpad x1 carbon gen10\n\n\tpacman -S sof-firmware fprintd\n\n#### Login with ${USER} to arrange home directory\n\nTurn off autosuspend at config\n\n\tsudo pacman -S xdg-user-dirs\n\tLANG=C xdg-user-dirs-update --force\n\tsudo pacman -S zsh git base-devel\n\tsudo pacman -S noto-fonts noto-fonts-cjk\n\nInstall yay\n\n\tmkdir -p ~/src/github.com\n\tcd src/github.com\n\tgit clone https://aur.archlinux.org/yay.git\n\tcd yay\n\tmakepkg -si\n\tyay -S termite\n\n#### Preparing dotfiles\n\n\tsudo pacman -S gvfs gvfs-smb git-crypt gnupg openssh\n\nImport the gpg key that has been backed up.\n\n\tgpg --import /path/to/private.key\n\tgpg --import /path/to/public.key\n\tgpg --edit-key masasam@users.noreply.github.com\n\tgpg\u003e trust\n\nImport the ssh key that has been backed up.\n\n\tchmod 600 /path/to/private.key\n\nRun the following after set the ssh key\n\n    mkdir -p ~/src/github.com/masasam\n    cd src/github.com/masasam\n\tgit clone git@github.com:masasam/dotfiles.git\n\tcd dotfiles\n\tgit-crypt unlock\n\tmake rclone\n\tmake gnupg\n\tmake ssh\n\trclone sync drive:backup ${HOME}/backup\n\trclone sync dropbox:backup ${HOME}/backup\n\tmake install\n\tmake init\n\tmake chrome\n\n\t# Below is for posting images of github\n\tcd ~/Pictures\n\tgit clone -b image git@github.com:masasam/image.git\n\n### dconf setting\n\n    sudo pacman -S dconf-editor\n\n\tdconf write /org/gnome/desktop/input-sources/xkb-options \"['ctrl:nocaps']\"\n\tdconf write /org/gnome/desktop/interface/gtk-theme \"'Adwaita-dark'\"\n\tdconf write /org/gnome/desktop/interface/gtk-key-theme \"'Emacs'\"\n\tdconf write /org/gnome/desktop/interface/text-scaling-factor 1.25\n\tdconf write /org/gnome/desktop/interface/cursor-size 30\n\tdconf write /org/gnome/desktop/interface/clock-show-date true\n\tdconf write /org/gnome/desktop/interface/clock-show-weekday true\n\tdconf write /org/gnome/desktop/interface/show-battery-percentage true\n\tdconf write /org/gnome/desktop/wm/preferences/num-workspaces 1\n\tdconf write /org/gnome/desktop/wm/keybindings/activate-window-menu \"['']\"\n\tdconf write /org/gnome/desktop/search-providers/disable-external true\n\tdconf write /org/gnome/desktop/privacy/remember-recent-files false\n\tdconf write /org/gnome/shell/keybindings/toggle-overview \"['\u003cAlt\u003espace']\"\n\tdconf write /org/gnome/mutter/dynamic-workspaces false\n\n--------------------------------------\n\nYou can make install from here\n\n--------------------------------------\n\n## Development environment install\n\n#### Install using pacman\n\n    sudo pacman -S firefox firefox-i18n-ja fping xdotool jc\n    sudo pacman -S sylpheed emacs curl xsel tmux eog lhasa\n    sudo pacman -S zsh-completions keychain syncthing lzop\n    sudo pacman -S powertop gimp unrar gnome-screenshot zellij\n    sudo pacman -S file-roller xclip atool evince inkscape\n    sudo pacman -S seahorse the_silver_searcher zeal vimiv\n    sudo pacman -S cups-pdf htop neovim go pkgfile rsync elixir\n\tsudo pacman -S nodejs whois nmap poppler-data ffmpeg gron\n\tsudo pacman -S aspell aspell-en httperf asciidoc sbcl rye uv\n\tsudo pacman -S gdb hub wmctrl gpaste pkgstats ripgrep pnpm\n\tsudo pacman -S linux-docs pwgen gauche screen ipcalc rbw\n\tsudo pacman -S arch-install-scripts ctags parallel opencv\n\tsudo pacman -S pandoc texlive-langjapanese texlive-latexextra\n\tsudo pacman -S shellcheck cscope typescript packer eza\n\tsudo pacman -S noto-fonts-cjk arc-gtk-theme jq dnsmasq\n\tsudo pacman -S zsh-syntax-highlighting terraform wl-clipboard\n\tsudo pacman -S npm llvm llvm-libs lldb hdparm rxvt-unicode \n\tsudo pacman -S mariadb-clients postgresql-libs tig lsof fzf\n\tsudo pacman -S debootstrap tcpdump pdfgrep sshfs stunnel\n\tsudo pacman -S alsa-utils plocate traceroute hugo mpv jhead\n\tsudo pacman -S nethogs optipng jpegoptim noto-fonts-emoji\n\tsudo pacman -S debian-archive-keyring tree rclone gnome-tweaks\n\tsudo pacman -S mathjax strace valgrind p7zip unace postgresql\n\tsudo pacman -S yarn geckodriver w3m neomutt iperf redis convmv\n\tsudo pacman -S highlight lynx elinks mediainfo cpio flameshot\n\tsudo pacman -S oath-toolkit imagemagick peek sshuttle lshw\n\tsudo pacman -S bookworm ruby ruby-rdoc pacman-contrib ncdu\n\tsudo pacman -S dart sxiv adapta-gtk-theme podman firejail\n\tsudo pacman -S hexedit tokei aria2 discord pv findomain\n\tsudo pacman -S gnome-logs qreator diskus sysprof bat mapnik\n\tsudo pacman -S obs-studio wireshark-cli browserpass-chromium\n\tsudo pacman -S editorconfig-core-c watchexec browserpass-firefox\n\tsudo pacman -S man-db baobab ioping mkcert detox git-lfs xsv\n\tsudo pacman -S guetzli fabric gtop pass github-cli libvterm ruff\n\tsudo pacman -S perl-net-ip hex miller btop diffoscope dust yq\n\tsudo pacman -S sslscan abiword pyright miniserve fdupes deno\n\tsudo pacman -S mold fx httpie bash-language-server sqlitebrowser\n\tsudo pacman -S difftastic ollama ghq gnome-sound-recorder\n\n![activity](https://raw.githubusercontent.com/masasam/image/image/activity.png)\n\n#### Install using yay\n\n\tyay -S beekeeper-studio-bin\n\tyay -S bun-bin\n\tyay -S downgrade\n\tyay -S duckdb-bin\n\tyay -S firebase-tools-bin\n\tyay -S git-secrets\n\tyay -S limbo-bin\n\tyay -S ibus-mozc\n\tyay -S pscale-cli\n\tyay -S rgxg\n\tyay -S rtags\n\tyay -S slack-desktop\n\tyay -S trdsql-bin\n\tyay -S tree-sitter-rust\n\tyay -S turso-cli-bin\n\tyay -S volta-bin\n\tyay -S yay\n\tyay -S zoom\n\n##### Install using global python package\n\n\tsudo pacman -S python-pip python-pipenv python-seaborn python-ipywidgets python-jupyter-client\n\tsudo pacman -S python-prompt_toolkit python-faker python-matplotlib python-nose python-pandas\n\tsudo pacman -S python-numpy python-beautifulsoup4\n\n#### Install using golang\n\n\tmkdir -p ${HOME}/{bin,src}\n\tgo install golang.org/x/tools/cmd/goimports@latest\n\tgo install github.com/kyoshidajp/ghkw@latest\n\tgo install github.com/simeji/jid/cmd/jid@latest\n\tgo install github.com/jmhodges/jsonpp@latest\n\tgo install github.com/mithrandie/csvq@latest\n\n#### Install using global pnpm package\n\n\tpnpm -g add dockerfile-language-server-nodejs\n\tpnpm -g add fx\n\tpnpm -g add indium\n\tpnpm -g add logo.svg\n\tpnpm -g add jshint\n    pnpm -g add @marp-team/marp-cli\n\tpnpm -g add mermaid\n\tpnpm -g add @mermaid-js/mermaid-cli\n\tpnpm -g add netlify-cli\n\tpnpm -g add ngrok\n\tpnpm -g add now\n\n#### Kubernetes\n\ndocker\n\n\tsudo pacman -S docker docker-compose\n\tsudo usermod -aG docker ${USER}\n\tsudo systemctl enable docker.service\n\tsudo systemctl start docker.service\n\nGoogle Kubernetes Engine\n\n\tcurl https://sdk.cloud.google.com | bash\n\ttest -L ${HOME}/.config/gcloud || rm -rf ${HOME}/.config/gcloud\n\tln -vsfn ${HOME}/backup/gcloud   ${HOME}/.config/gcloud\n\tsudo pacman -S kubectl kubectx kustomize helm\n\tyay -S stern-bin\n\nkind(Kubernetes IN Docker)\n\n\tgo install sigs.k8s.io/kind@v0.26.0\n\tsudo sh -c \"kind completion zsh \u003e /usr/share/zsh/site-functions/_kind\"\n\nminikube with kvm2\n\n\tsudo pacman -S minikube libvirt qemu-headless ebtables docker-machine kubectx\n\tyay -S docker-machine-driver-kvm2\n\tsudo usermod -a -G libvirt ${USER}\n\tsudo systemctl start libvirtd.service\n\tsudo systemctl enable libvirtd.service\n\tsudo systemctl start virtlogd.service\n\tsudo systemctl enable virtlogd.service\n\tminikube config set vm-driver kvm2\n\t\n#### rbenv\n\n\tyay -S rbenv\n\tyay -S ruby-build\n\trbenv install 3.1.4\n\n#### Install rust and language server\n\n\tsudo pacman -S rustup\n\trustup default stable\n\trustup component add rls rust-analysis rust-src\n\n# Terminal\n\n![terminal](https://raw.githubusercontent.com/masasam/image/image/tmux.png)\n\nTerminal uses [ghostty](https://github.com/ghostty-org/ghostty) and [alacritty](https://github.com/alacritty/alacritty) and [wezterm](https://github.com/wez/wezterm) and [termite](https://github.com/aperezdc/termite)\n\n# TLP\n\nSetting for power save and to prevent battery deterioration.\n\n\tsudo pacman -S tlp powertop\n\tsudo ln -vsf ${PWD}/etc/tlp.conf /etc/tlp.conf\n\tsystemctl enable tlp.service\n\n![PowerTop](https://raw.githubusercontent.com/masasam/image/image/powertop.png)\n\n# UEFI BIOS update with Linux\n\n\tsudo pacman -S fwupd dmidecode\n\tsudo dmidecode -s bios-version\n\tfwupdmgr refresh\n\tfwupdmgr get-updates\n\tfwupdmgr update\n\n# Enable DNS cache\n\nInstall dnsmasq\n\n\tsudo pacman -S dnsmasq\n\n/etc/NetworkManager/NetworkManager.conf\n\n\t[main]\n\tdns=dnsmasq\n\nWhen restarting NetworkManager, dnsmasq is set to be automatically usable.\n\n\tsudo systemctl restart NetworkManager\n\n![dnsmasq](https://raw.githubusercontent.com/masasam/image/image/dnsmasq.png)\n\n# Mozc\n\nibus-mozc\n\nMake input sources mozc only for region and language.\nMy key setting is based on Kotoeri (closest to emacs key binding).\n\n\u003e「Input before conversion」「Shift+Space」「Disable IME」\n\u003e「Converting」「Shift+Space」「Disable IME」\n\u003e「Direct input」「Shift+Space」「Enable IME」\n\u003e「No input character」「Shift+Space」「Disable IME」\n\u003eDelete other Shift-space entangled shortcuts.\n\u003e「Converting」cansel Ctrl-g\n\nreboot\n\nOnce mozc is set up\n\n    ln -sfn ~/backup/mozc ~/.mozc\n\nAnd set the mozc setting to backup directory.\nWith this it will not have to be set again.\n\n    ibus-setup\n\nOpen the emoji tab\nSince \u003cControl\u003esemicolon is set in the shortcut of emoji ruby, delete it.\n\n## How to test Makefile\n\n#### When using Makefile\n\nTest this [Makefile](https://github.com/masasam/dotfiles/blob/master/Makefile) using docker\n\n\tmake test\n\nTest this [Makefile](https://github.com/masasam/dotfiles/blob/master/Makefile) using docker with backup directory\n\n\tmake testbackup\n\n#### When executing manually\n\n1.Build this Dockerfile\n\n\tdocker build -t dotfiles /home/${USER}/src/github.com/masasam/dotfiles\n\n2.Run 'docker run' mounting the backup directory\n\n\tdocker run -t -i -v /home/${USER}/backup:/home/${USER}/backup:cached --name arch dotfiles /bin/bash\n\n3.Execute the following command in the docker container\n\n\tcd /home/${USER}/src/github.com/masasam/dotfiles\n\tmake install\n\tmake init\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasasam%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmasasam%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasasam%2Fdotfiles/lists"}