cleared up and touched up on the documentation
This commit is contained in:
parent
7802443ba2
commit
9e09c8e651
@ -1,7 +1,6 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
VERSION = "23.05";
|
VERSION = "23.05";
|
||||||
# HOME-MANAGER = builtins.fetchTarball
|
|
||||||
# "https://github.com/nix-community/home-manager/archive/master.tar.gz";
|
# "https://github.com/nix-community/home-manager/archive/master.tar.gz";
|
||||||
unstable_tarball =
|
unstable_tarball =
|
||||||
builtins.fetchTarball "https://github.com/nixos/nixpkgs/tarball/master";
|
builtins.fetchTarball "https://github.com/nixos/nixpkgs/tarball/master";
|
||||||
@ -21,7 +20,6 @@ in { # Remember to close this bracket at the end of the document
|
|||||||
];
|
];
|
||||||
|
|
||||||
networking.hostName = "workstation";
|
networking.hostName = "workstation";
|
||||||
|
|
||||||
# networking.wireless.enable = true;
|
# networking.wireless.enable = true;
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
@ -123,7 +121,7 @@ in { # Remember to close this bracket at the end of the document
|
|||||||
gimp # the coolest bestest art program to never exist
|
gimp # the coolest bestest art program to never exist
|
||||||
|
|
||||||
lutris # game/emulator manager
|
lutris # game/emulator manager
|
||||||
# grapejuice # roblox manager
|
grapejuice # roblox manager
|
||||||
minecraft # minecraft official launcher
|
minecraft # minecraft official launcher
|
||||||
parsec-bin # remote gaming with friends
|
parsec-bin # remote gaming with friends
|
||||||
protonup-qt # update proton-ge
|
protonup-qt # update proton-ge
|
||||||
@ -160,7 +158,7 @@ in { # Remember to close this bracket at the end of the document
|
|||||||
# bottles # wine prefix manager
|
# bottles # wine prefix manager
|
||||||
obs-studio # screen recorder & streamer
|
obs-studio # screen recorder & streamer
|
||||||
shortwave # listen to world radio
|
shortwave # listen to world radio
|
||||||
nextcloud-client # teehee
|
nextcloud-client # self-hosted google-drive alternative
|
||||||
|
|
||||||
discord # chat
|
discord # chat
|
||||||
google-chrome # web browser with spyware included
|
google-chrome # web browser with spyware included
|
||||||
@ -179,7 +177,7 @@ in { # Remember to close this bracket at the end of the document
|
|||||||
gocryptfs # encrypted filesystem! shhh!!!
|
gocryptfs # encrypted filesystem! shhh!!!
|
||||||
exa # like ls but with colors
|
exa # like ls but with colors
|
||||||
trash-cli # oop! didn't meant to delete that
|
trash-cli # oop! didn't meant to delete that
|
||||||
ffmpeg_5 # coolest video converter!
|
ffmpeg_6 # coolest video converter!
|
||||||
neofetch # use once for brag, never again
|
neofetch # use once for brag, never again
|
||||||
rmlint # probably my favourite app, amazing dupe finder that integrates well with BTRFS
|
rmlint # probably my favourite app, amazing dupe finder that integrates well with BTRFS
|
||||||
tldr # man for retards
|
tldr # man for retards
|
||||||
@ -187,7 +185,6 @@ in { # Remember to close this bracket at the end of the document
|
|||||||
vcsi # video thumbnails for torrents, can I replace it with ^?
|
vcsi # video thumbnails for torrents, can I replace it with ^?
|
||||||
mediainfo # technical info about videos, needed by some of my scripts
|
mediainfo # technical info about videos, needed by some of my scripts
|
||||||
tree-sitter # code parsing, required by Doom emacs
|
tree-sitter # code parsing, required by Doom emacs
|
||||||
xdg-ninja # help declutter $HOME
|
|
||||||
torrenttools # create torrent files from the terminal!
|
torrenttools # create torrent files from the terminal!
|
||||||
lm_sensors # for extension, displays cpu temp
|
lm_sensors # for extension, displays cpu temp
|
||||||
|
|
||||||
@ -216,7 +213,6 @@ in { # Remember to close this bracket at the end of the document
|
|||||||
bashdb # autocomplete
|
bashdb # autocomplete
|
||||||
shellcheck # linting
|
shellcheck # linting
|
||||||
shfmt # a shell parser and formatter
|
shfmt # a shell parser and formatter
|
||||||
# nodePackages.bash-language-server # LSP support
|
|
||||||
file # required by my tasks script?
|
file # required by my tasks script?
|
||||||
gnome.zenity # dependency of my scripts
|
gnome.zenity # dependency of my scripts
|
||||||
xclip # manipulate clipboard from scripts
|
xclip # manipulate clipboard from scripts
|
||||||
@ -299,21 +295,22 @@ in { # Remember to close this bracket at the end of the document
|
|||||||
bass # integrate bash utilities on fish
|
bass # integrate bash utilities on fish
|
||||||
|
|
||||||
]) ++ (with pkgs.gnomeExtensions; [
|
]) ++ (with pkgs.gnomeExtensions; [
|
||||||
appindicator
|
appindicator # applets for open applications
|
||||||
gsconnect
|
gsconnect # sync data and notifications from your phone
|
||||||
freon
|
freon # hardware temperature monitor
|
||||||
panel-scroll
|
panel-scroll # scroll well to change workspaces
|
||||||
reading-strip
|
reading-strip # like putting a finger on every line I read
|
||||||
tactile
|
tactile # window manager
|
||||||
pano
|
pano # clipboard manager
|
||||||
# ]) ++ (with unstable.pkgs.gnomeExtensions; [
|
# ]) ++ (with unstable.pkgs.gnomeExtensions; [
|
||||||
|
|
||||||
]) ++ (with pkgs.nodePackages; [
|
]) ++ (with pkgs.nodePackages; [
|
||||||
dockerfile-language-server-nodejs
|
dockerfile-language-server-nodejs # LSP
|
||||||
pyright
|
bash-language-server # LSP
|
||||||
markdownlint-cli
|
pyright # LSP
|
||||||
prettier
|
markdownlint-cli # Linter
|
||||||
pnpm
|
prettier # Linter
|
||||||
|
pnpm # Package manager
|
||||||
]);
|
]);
|
||||||
}; # <--- end of package list
|
}; # <--- end of package list
|
||||||
|
|
||||||
@ -477,6 +474,7 @@ in { # Remember to close this bracket at the end of the document
|
|||||||
GOPATH = "\${XDG_DATA_HOME}/go";
|
GOPATH = "\${XDG_DATA_HOME}/go";
|
||||||
NPM_CONFIG_USERCONFIG = "\${XDG_CONFIG_HOME}/npm/npmrc";
|
NPM_CONFIG_USERCONFIG = "\${XDG_CONFIG_HOME}/npm/npmrc";
|
||||||
PNPM_HOME = "\${XDG_DATA_HOME}/pnpm";
|
PNPM_HOME = "\${XDG_DATA_HOME}/pnpm";
|
||||||
|
|
||||||
# OPTIONS
|
# OPTIONS
|
||||||
HISTFILE = "\${XDG_STATE_HOME}/bash/history";
|
HISTFILE = "\${XDG_STATE_HOME}/bash/history";
|
||||||
LESSHISTFILE = "-";
|
LESSHISTFILE = "-";
|
||||||
@ -487,6 +485,7 @@ in { # Remember to close this bracket at the end of the document
|
|||||||
WGETRC = "\${XDG_CONFIG_HOME}/wgetrc";
|
WGETRC = "\${XDG_CONFIG_HOME}/wgetrc";
|
||||||
XCOMPOSECACHE = "${XDG_CACHE_HOME}/X11/xcompose";
|
XCOMPOSECACHE = "${XDG_CACHE_HOME}/X11/xcompose";
|
||||||
"_JAVA_OPTIONS" = "-Djava.util.prefs.userRoot=\${XDG_CONFIG_HOME}/java";
|
"_JAVA_OPTIONS" = "-Djava.util.prefs.userRoot=\${XDG_CONFIG_HOME}/java";
|
||||||
|
|
||||||
# NVIDIA
|
# NVIDIA
|
||||||
CUDA_CACHE_PATH = "\${XDG_CACHE_HOME}/nv";
|
CUDA_CACHE_PATH = "\${XDG_CACHE_HOME}/nv";
|
||||||
# GBM_BACKEND = "nvidia-drm";
|
# GBM_BACKEND = "nvidia-drm";
|
||||||
@ -670,9 +669,9 @@ in { # Remember to close this bracket at the end of the document
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
networking.firewall.allowedTCPPorts = [ 25152 80 443 ];
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
networking.firewall.allowedUDPPorts = [ 25152 80 443 ];
|
||||||
networking.firewall.enable = false;
|
# networking.firewall.enable = false;
|
||||||
|
|
||||||
system.copySystemConfiguration = true;
|
system.copySystemConfiguration = true;
|
||||||
nix.gc = {
|
nix.gc = {
|
||||||
|
|||||||
@ -26,19 +26,22 @@
|
|||||||
- [ ] Figure out how to get rid of xterm
|
- [ ] Figure out how to get rid of xterm
|
||||||
- [ ] wine-discord-ipc-bridge
|
- [ ] wine-discord-ipc-bridge
|
||||||
https://github.com/fufexan/nix-gaming
|
https://github.com/fufexan/nix-gaming
|
||||||
- [ ] make binaries of my own scripts
|
|
||||||
https://github.com/asimpson/dotfiles/blob/899b45e1586aac04d4e5541d638bbbffc66b4bba/nixos/scripts.nix
|
|
||||||
|
|
||||||
|
|
||||||
* ABOUT
|
* ABOUT
|
||||||
Setting up the document. Also in theory this should allow me to set up
|
Setting up the document. Also this should allow me to set up variables, and
|
||||||
variables, and other functions.
|
other functions.
|
||||||
|
- Global version number so NixOS and Home-Manager are in sync
|
||||||
|
- The unstable part allows me to build packages from the unstable channel by
|
||||||
|
prepending "unstable" to a package name.
|
||||||
|
- The next part creates a simple build of some of my simple scripts, turning
|
||||||
|
them into binaries which then I can integrate into the nix-store as well as
|
||||||
|
declared systemd units.
|
||||||
|
|
||||||
#+begin_src nix
|
#+begin_src nix
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
VERSION = "23.05";
|
VERSION = "23.05";
|
||||||
# HOME-MANAGER = builtins.fetchTarball
|
|
||||||
# "https://github.com/nix-community/home-manager/archive/master.tar.gz";
|
# "https://github.com/nix-community/home-manager/archive/master.tar.gz";
|
||||||
unstable_tarball = builtins.fetchTarball
|
unstable_tarball = builtins.fetchTarball
|
||||||
https://github.com/nixos/nixpkgs/tarball/master;
|
https://github.com/nixos/nixpkgs/tarball/master;
|
||||||
@ -57,8 +60,8 @@ in
|
|||||||
|
|
||||||
* IMPORTS
|
* IMPORTS
|
||||||
These are files and modules which get loaded onto the configuration file, in the
|
These are files and modules which get loaded onto the configuration file, in the
|
||||||
future I may segment this file into different modules, but for the time being,
|
future I may segment this file into different modules once it becomes too
|
||||||
the two ones I need are hardware and home-manager.
|
cluttered, for example, I may create a module for systemd units.
|
||||||
|
|
||||||
#+begin_src nix
|
#+begin_src nix
|
||||||
imports = [
|
imports = [
|
||||||
@ -73,31 +76,24 @@ imports = [
|
|||||||
At the moment, I don't have a wireless card on this computer, however as I build
|
At the moment, I don't have a wireless card on this computer, however as I build
|
||||||
a new system, such setting may come in handy.
|
a new system, such setting may come in handy.
|
||||||
|
|
||||||
#+begin_src nix
|
|
||||||
networking.hostName = "workstation";
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
Pick *ONLY ONE* of the below networking options.
|
Pick *ONLY ONE* of the below networking options.
|
||||||
- *wireless.enable* enables wireless support via wpa_supplicant.
|
- *wireless.enable* enables wireless support via wpa_supplicant.
|
||||||
- *NetworkManager* it's the default of GNOME, and easiest to use and integrate.
|
- *NetworkManager* it's the default of GNOME, and easiest to use and integrate.
|
||||||
|
|
||||||
#+begin_src nix
|
#+begin_src nix
|
||||||
|
networking.hostName = "workstation";
|
||||||
# networking.wireless.enable = true;
|
# networking.wireless.enable = true;
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** TIMEZONE
|
** TIMEZONE & LOCALE
|
||||||
|
|
||||||
#+begin_src nix
|
|
||||||
time.timeZone = "America/Mexico_City";
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** LOCALE
|
|
||||||
For some reason, useXkbConfig throws an error when building the system, either
|
For some reason, useXkbConfig throws an error when building the system, either
|
||||||
way it is an unnecessary setting as my keyboards are the default en_US, only
|
way it is an unnecessary setting as my keyboards are the default en_US, only
|
||||||
locale set to Canadian out because I prefer how it displays the date.
|
locale set to Canadian out because I prefer how it displays the date.
|
||||||
|
|
||||||
#+begin_src nix
|
#+begin_src nix
|
||||||
|
time.timeZone = "America/Mexico_City";
|
||||||
|
|
||||||
i18n = {
|
i18n = {
|
||||||
defaultLocale = "en_CA.UTF-8";
|
defaultLocale = "en_CA.UTF-8";
|
||||||
extraLocaleSettings = {
|
extraLocaleSettings = {
|
||||||
@ -189,8 +185,8 @@ security.sudo = {
|
|||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** OPENDOAS
|
** OPENDOAS
|
||||||
It's mayor advantage over Sudo, is that is being a smaller package, being lessen known
|
It's mayor advantage over Sudo, is that is being a smaller package, being lessen
|
||||||
means that there is less security risks associated with it, overall a less
|
known means that there is less security risks associated with it, overall a less
|
||||||
bloated more secure package. Which comes with the caveat that due to it's age,
|
bloated more secure package. Which comes with the caveat that due to it's age,
|
||||||
there is little support for it. Constantly having to resort to hack solutions
|
there is little support for it. Constantly having to resort to hack solutions
|
||||||
such as patches or symlinks.
|
such as patches or symlinks.
|
||||||
@ -271,7 +267,7 @@ anticipated, most everything seems to run seamlessly.
|
|||||||
|
|
||||||
#+begin_src nix
|
#+begin_src nix
|
||||||
lutris # game/emulator manager
|
lutris # game/emulator manager
|
||||||
# grapejuice # roblox manager
|
grapejuice # roblox manager
|
||||||
minecraft # minecraft official launcher
|
minecraft # minecraft official launcher
|
||||||
parsec-bin # remote gaming with friends
|
parsec-bin # remote gaming with friends
|
||||||
protonup-qt # update proton-ge
|
protonup-qt # update proton-ge
|
||||||
@ -327,12 +323,12 @@ tagger # tag music files
|
|||||||
# bottles # wine prefix manager
|
# bottles # wine prefix manager
|
||||||
obs-studio # screen recorder & streamer
|
obs-studio # screen recorder & streamer
|
||||||
shortwave # listen to world radio
|
shortwave # listen to world radio
|
||||||
nextcloud-client # teehee
|
nextcloud-client # self-hosted google-drive alternative
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
*** Web
|
*** Web
|
||||||
Stuff that I use to interact with the web, web browsers, chats, downloaders,
|
Stuff that I use to interact with the web, web browsers, chats, download
|
||||||
etc.
|
managers, etc.
|
||||||
|
|
||||||
#+begin_src nix
|
#+begin_src nix
|
||||||
discord # chat
|
discord # chat
|
||||||
@ -356,7 +352,7 @@ du-dust # rusty du
|
|||||||
gocryptfs # encrypted filesystem! shhh!!!
|
gocryptfs # encrypted filesystem! shhh!!!
|
||||||
exa # like ls but with colors
|
exa # like ls but with colors
|
||||||
trash-cli # oop! didn't meant to delete that
|
trash-cli # oop! didn't meant to delete that
|
||||||
ffmpeg_5 # coolest video converter!
|
ffmpeg_6 # coolest video converter!
|
||||||
neofetch # use once for brag, never again
|
neofetch # use once for brag, never again
|
||||||
rmlint # probably my favourite app, amazing dupe finder that integrates well with BTRFS
|
rmlint # probably my favourite app, amazing dupe finder that integrates well with BTRFS
|
||||||
tldr # man for retards
|
tldr # man for retards
|
||||||
@ -364,7 +360,6 @@ tldr # man for retards
|
|||||||
vcsi # video thumbnails for torrents, can I replace it with ^?
|
vcsi # video thumbnails for torrents, can I replace it with ^?
|
||||||
mediainfo # technical info about videos, needed by some of my scripts
|
mediainfo # technical info about videos, needed by some of my scripts
|
||||||
tree-sitter # code parsing, required by Doom emacs
|
tree-sitter # code parsing, required by Doom emacs
|
||||||
xdg-ninja # help declutter $HOME
|
|
||||||
torrenttools # create torrent files from the terminal!
|
torrenttools # create torrent files from the terminal!
|
||||||
lm_sensors # for extension, displays cpu temp
|
lm_sensors # for extension, displays cpu temp
|
||||||
|
|
||||||
@ -397,7 +392,6 @@ bats # testing system, required by Exercism
|
|||||||
bashdb # autocomplete
|
bashdb # autocomplete
|
||||||
shellcheck # linting
|
shellcheck # linting
|
||||||
shfmt # a shell parser and formatter
|
shfmt # a shell parser and formatter
|
||||||
# nodePackages.bash-language-server # LSP support
|
|
||||||
file # required by my tasks script?
|
file # required by my tasks script?
|
||||||
gnome.zenity # dependency of my scripts
|
gnome.zenity # dependency of my scripts
|
||||||
xclip # manipulate clipboard from scripts
|
xclip # manipulate clipboard from scripts
|
||||||
@ -503,13 +497,13 @@ symbola
|
|||||||
|
|
||||||
#+begin_src nix
|
#+begin_src nix
|
||||||
]) ++ (with pkgs.gnomeExtensions; [
|
]) ++ (with pkgs.gnomeExtensions; [
|
||||||
appindicator
|
appindicator # applets for open applications
|
||||||
gsconnect
|
gsconnect # sync data and notifications from your phone
|
||||||
freon
|
freon # hardware temperature monitor
|
||||||
panel-scroll
|
panel-scroll # scroll well to change workspaces
|
||||||
reading-strip
|
reading-strip # like putting a finger on every line I read
|
||||||
tactile
|
tactile # window manager
|
||||||
pano
|
pano # clipboard manager
|
||||||
# ]) ++ (with unstable.pkgs.gnomeExtensions; [
|
# ]) ++ (with unstable.pkgs.gnomeExtensions; [
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -517,11 +511,12 @@ symbola
|
|||||||
|
|
||||||
#+begin_src nix
|
#+begin_src nix
|
||||||
]) ++ (with pkgs.nodePackages; [
|
]) ++ (with pkgs.nodePackages; [
|
||||||
dockerfile-language-server-nodejs
|
dockerfile-language-server-nodejs # LSP
|
||||||
pyright
|
bash-language-server # LSP
|
||||||
markdownlint-cli
|
pyright # LSP
|
||||||
prettier
|
markdownlint-cli # Linter
|
||||||
pnpm
|
prettier # Linter
|
||||||
|
pnpm # Package manager
|
||||||
]); }; # <--- end of package list
|
]); }; # <--- end of package list
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -745,6 +740,7 @@ environment.variables = rec {
|
|||||||
GOPATH = "\${XDG_DATA_HOME}/go";
|
GOPATH = "\${XDG_DATA_HOME}/go";
|
||||||
NPM_CONFIG_USERCONFIG = "\${XDG_CONFIG_HOME}/npm/npmrc";
|
NPM_CONFIG_USERCONFIG = "\${XDG_CONFIG_HOME}/npm/npmrc";
|
||||||
PNPM_HOME = "\${XDG_DATA_HOME}/pnpm";
|
PNPM_HOME = "\${XDG_DATA_HOME}/pnpm";
|
||||||
|
|
||||||
# OPTIONS
|
# OPTIONS
|
||||||
HISTFILE = "\${XDG_STATE_HOME}/bash/history";
|
HISTFILE = "\${XDG_STATE_HOME}/bash/history";
|
||||||
LESSHISTFILE = "-";
|
LESSHISTFILE = "-";
|
||||||
@ -755,6 +751,7 @@ environment.variables = rec {
|
|||||||
WGETRC = "\${XDG_CONFIG_HOME}/wgetrc";
|
WGETRC = "\${XDG_CONFIG_HOME}/wgetrc";
|
||||||
XCOMPOSECACHE = "${XDG_CACHE_HOME}/X11/xcompose";
|
XCOMPOSECACHE = "${XDG_CACHE_HOME}/X11/xcompose";
|
||||||
"_JAVA_OPTIONS" = "-Djava.util.prefs.userRoot=\${XDG_CONFIG_HOME}/java";
|
"_JAVA_OPTIONS" = "-Djava.util.prefs.userRoot=\${XDG_CONFIG_HOME}/java";
|
||||||
|
|
||||||
# NVIDIA
|
# NVIDIA
|
||||||
CUDA_CACHE_PATH = "\${XDG_CACHE_HOME}/nv";
|
CUDA_CACHE_PATH = "\${XDG_CACHE_HOME}/nv";
|
||||||
# GBM_BACKEND = "nvidia-drm";
|
# GBM_BACKEND = "nvidia-drm";
|
||||||
@ -990,9 +987,9 @@ Open ports in the firewall.
|
|||||||
=TIP= list what app a port belongs to in a table.
|
=TIP= list what app a port belongs to in a table.
|
||||||
|
|
||||||
#+begin_src nix
|
#+begin_src nix
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
networking.firewall.allowedTCPPorts = [ 25152 80 443 ];
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
networking.firewall.allowedUDPPorts = [ 25152 80 443 ];
|
||||||
networking.firewall.enable = false;
|
# networking.firewall.enable = false;
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
* FINAL SYSTEM CONFIGURATIONS
|
* FINAL SYSTEM CONFIGURATIONS
|
||||||
|
|||||||
@ -117,8 +117,15 @@
|
|||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices =
|
swapDevices = [{
|
||||||
[{ device = "/dev/disk/by-uuid/f41cc85e-9963-46c1-9385-0748e670638d"; }];
|
device = "/dev/disk/by-partuuid/cb0ad486-ebf8-4bfc-ad7c-96bdc68576ca";
|
||||||
|
randomEncryption = {
|
||||||
|
enable = true;
|
||||||
|
cipher = "aes-xts-plain64";
|
||||||
|
keySize = 512;
|
||||||
|
sectorSize = 4096;
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user