This dotfiles describes almost everything in nix except AstroNvim. This dotfiles makes home-manager independent from NixOS Modules. Therefore, the parts managed by home-manager are supposed to be available to all linux users. In addition, some NixOS users can make full use of this dotfiles. This dotfiles has been created for successful setup on the ThinkPad X1 Carbon 7th. It has not been tested on other generations of the X1 Carbon, but users with other generations of the X1 Carbon may also be able to set it up successfully.
Target Hardware | ThinkPad X1 Carbon 7th |
Window Manager | KDE Plasma 6 |
Terminal Emulator | Ghostty |
Shell | zsh |
Vim | NixVim |
Prompt | starship |
Fingerprint | Disable |
Bluetooth | Enable |
KDE connect | Enable |
Docker | Enable |
Japanese Input | skk |
TimeZone | Asia/Tokyo |
i18n | en_US.UTF-8 |
command alias | execute comand |
---|---|
.. | cd ../ |
... | cd ../../ |
.... | cd ../../../ |
ls | eza |
ll | eza -l |
tree | eza --tree |
size | fd --size |
diff | delta --side-by-side |
neofetch | fastfetch |
nix-develop | nix develop -c $SHELL |
hn (for NixOS user) | cd /etc/nixos && nix run home-manager -- switch --flake .#myHomeConfig |
nr (for NixOS user) | sudo nixos-rebuild switch |
gc | nix-collect-garbage |
t | typst watch |
net | speedtest |
mobile | scrcpy -d |
clock | tty-clock -c -s |
g | lazygit |
d | sudo lazydocker |
clone | ghq get |
tdf |
|
tetris | bastet |
cpu | s-tui |
- nl [OPTIONS] [URL] [REV]
[OPTIONS]
-f
... Show and copy to clipboard the hash value
-h
... Show and copy to clipboard complete results
[URL]
URL to the repository to be fetched
[REV]
The revision or reference to be fetched
- copypath
Show and copy pwd results to clickboard
- copyfile [FILE]
Show and copy a file content to clickboard
Warning
Please note that some commands have not been checked for execution results.
access following site: https://nixos.org/download/
select "Minimal ISO image"
dd if=<iso path> of=<install media path> bs=1M
dd sample
dd if=./nixos-minimal-24.05.3444.cf05eeada35e-x86_64-linux.iso of=/dev/sda bs=1M
When you don't know the storage device name of the install media, you can check it with the following command.
lsblk
Insert the install media into the target PC to be set up and boot NixOS from the install media.
When you want to know more about the following commands, please refer to the NixOS Manual.
enter root
sudo -i
Networking in the installer
systemctl start wpa_supplicant
wpa_cli
> add_network
0
> set_network 0 ssid "myhomenetwork"
OK
> set_network 0 psk "mypassword"
OK
> set_network 0 key_mgmt WPA-PSK
OK
> enable_network 0
OK
...
(omitted)
> quit
Editing /etc/resolv.conf
nano /etc/resolv.conf
editing /etc/resolv.conf
following
nameserver 1.1.1.1
options edns0
Checking strage device
This command views available storage devices
In this case, the storage device name is described as nvme0n1
lsblk
Partitioning
parted /dev/nvme0n1 -- mklabel gpt
parted /dev/nvme0n1 -- mkpart root ext4 512MB -8GB
parted /dev/nvme0n1 -- mkpart swap linux-swap -8GB 100%
parted /dev/nvme0n1 -- mkpart ESP fat32 1MB 512MB
parted /dev/nvme0n1 -- set 3 esp on
Formatting
mkfs.ext4 -L nixos /dev/nvme0n1p1
mkswap -L swap /dev/nvme0n1p2
mkfs.fat -F 32 -n boot /dev/nvme0n1p3
Installing
mount /dev/nvme0n1p1 /mnt
mkdir -p /mnt/boot
mount -o umask=077 /dev/nvme0n1p3 /mnt/boot
swapon /dev/nvme0n1p2
Generate configuration files
nixos-generate-config --root /mnt
Setup dotfiles
# install git
nix-env -i git
# Change directory to /etc
cd /etc
# Clone this repository
git clone --recursive https://github.com/Myxogastria0808/dotfiles.git
# Delete the original nixos directory
rm -rf /etc/nixos
# Symlink the dotfiles directory to /etc/nixos
ln -s dotfiles nixos
Edit configuration.nix
if you change initial user password or user name
cf: This dotfiles's initial user password is sakura
cf: This dotfiles's user name is hello
editing flake.nix
following
nano /mnt/etc/nixos/flake.nix
edit flake.nix
to set your username
, GitHub username
, and GitHub email
{
...
(omitted)
outputs =
inputs:
let
# username
username = "hello";
# GitHub username
githubUsername = "Myxogastria0808";
# GitHub email
githubEmail = "r.rstudio.c@gmail.com";
# nixosModules entorypoint
baseModules = [
./nixos/configuration.nix
];
nixosModules = [
./modules/app.nix
];
in
{
## home-manager ##
...
(omitted)
}
Install NixOS
cd /mnt/etc/dotfiles/
nixos-install --flake .#nixos
Reboot
reboot now
setup dotfiles
# Change directory to home
cd $HOME
# Clone dotfiles repository
git clone https://github.com/Myxogastria0808/dotfiles.git
# Change directory to dotfiles
cd dotfiles
# Remove previous nixos settings
sudo rm -rf /etc/nixos
# Symlink dotfiles to /etc/nixos
sudo ln -s $HOME/dotfiles /etc/nixos
# Switch to home-manager configuration
nix run home-manager -- switch --flake .#myHomeConfig
reboot
sudo reboot now
login gitHub
gh auth login
create a directory to be managed by ghq
# Change directory to home
cd $HOME
# Create src directory
src
run tailscale up
Warning
If you are not tailscale user, you have to comment out services.tailscale.enable = true;
(configuration.nix
)
sudo tailscale up
run following command
hm
- clone repository
clone
is alias of ghq get
clone <repository URI>
- move repository directory
type Ctrl + g
on a terminal -> be showed selection menu of repositories.
Warning
The accuracy of the contents of generated deepwiki has not been verified by me.
https://deepwiki.com/Myxogastria0808/dotfiles/
Reference Site
https://nixos.org/manual/nixos/stable/