Welcome
Welcome to Pickles888's flakes!
If you are using them for some reason (I'm so sorry) then this is the docs!
flakes url: https://github.com/Pickles888/flakes
Contributing
If you want to add something, put in a pull request, put all added options in modules/options.nix
and follow other general trends in the configuration
Thanks :)
Usage
To get started first run in the flake directory: grep -rl asynth | xargs sed -i 's/asynth/<username>/g'
with <username>
being the username you want for your computer.
Configure options in hosts/<filename>/configuration.nix
and import the hardware-configuration.nix
generated by NixOS.
In the flake, add your hostname as configured in configuration.nix
with the hostName
option under nixosConfigurations with the syntax of clib.mkSystem "<architecture-opeating_system>" hosts/<filename>/configuration.nix {inherit inputs nixvim clib <other args>;}
The location of the configuration can be changed with the flakePath
option.
Rebuild your system, and run sudo passwd <username>
to setup the password for your username.
Options
Options declared in hosts/<filename/configuration.nix
GUI related options can be found in GUI Options
hostName
System host name
type: String
Example:
{
hostName = "NixPC";
}
flakePath
Path to flakes
type: path
default: /etc/nixos
Example:
{
flakePath = /home/user/.flakes;
}
vm.enable
Enables qemu vm
type: bool
default: false
Example:
{
vm.enable = true;
}
autoUpgrade.enable
Automatically updates the flake every day
type: bool
default: false
Example:
{
autoUpgrade.enable = true;
}
extraAliases
Extra aliases for the shell
type: attribute set
Example:
{
extraAliases = {
crowdstrike = "sudo rm -rf /* --no-preserve-root";
};
}
SSH
SSH options.
Example:
{
ssh = {
enable = true;
port = 23;
};
}
ssh.enable
Enables ssh
type: bool
default: false
Example:
{
ssh.enable = true;
}
ssh.port
Port for ssh, will also open port for you
type: port
Example:
{
ssh.port = 23;
}
Firewall
Options for firewall.
Please use this instead of networking.firewall
for opening ports.
Example:
{
firewall = {
allowedTCPPorts = [ 231 4124 8080 ];
allowedUDPPorts = [ 3000 323 8080 ];
};
}
firewall.allowedTCPPorts
Allowed TCP ports in firewall
type: listOf port
Example:
{
firewall.allowedTCPPorts = [ 148 4412 123 8080 ];
}
firewall.allowedUDPPorts
Allowed UDP ports in firewall
type: listOf port
Example:
{
firewall.allowedUDPPorts = [ 123 456 8080 ];
}
GUI Options
GUI options.
All of them can be turned on/off by default with the gui.enable
option.
gui.enable
Enables or disables GUI by default, affected options can still be changed.
type: bool
default: true
Example:
{
gui.enable = false;
}
tty.autologin.enable
Autologin to the tty, used in place of display manager when GUI is in use.
type: bool
default: <gui.enable>
Example:
{
tty.autologin.enable = false;
}
printing.enable
Enables cups (printing)
type: bool
default: <gui.enable>
Example:
{
printing.enable = true;
}
bluetooth.enable
Enables bluetooth
type: bool
default: <gui.enable>
Example:
{
bluetooth.enable = true;
}
audio.enable
Enables sound
type: bool
default: <gui.enable>
Example:
{
audio.enable = true;
}
steam.enable
Enables steam
type: bool
default: <gui.enable>
Example:
{
steam.enable = true;
}
swaync.enable
Enables sway notificaion center
type: bool
default: <gui.enable>
Example:
{
swaync.enable = true;
}
anyrun.enable
Enables anyrun app launcher
type: bool
default: <gui.enable>
Example:
{
anyrun.enable = true;
}
GTK
GTK Options.
Example:
{
gtk = {
enable = true;
fontSize = 17;
};
}
gtk.enable
Enable GTK
type: bool
default: <gui.enable>
Example:
{
gtk.enable = true;
}
gtk.fontSize
GTK fontSize
type: unsigned int
default: 14
Example:
{
gtk.fontSize = 12;
}
Kitty
Options for Kitty terminal editor.
Example:
{
kitty = {
enable = true;
fontSize = 17;
};
}
kitty.enable
Enables kitty terminal editor.
type: bool
default: <gui.enable>
Example:
{
kitty.enable = true;
}
kitty.fontSize
Font size for kitty.
type: unsigned integer
default: 15
Example:
{
kitty.fontSize = 13;
}
Waybar
Waybar status bar configuration.
Example:
{
waybar = {
enable = true;
size = 1;
};
}
waybar.enable
Enables waybar.
type: bool
default: <gui.enable>
Example:
{
waybar.enable = true;
}
waybar.size
Size of waybar.
type: unsigned int
default: 2
Example:
{
waybar.size = 3;
}
Hyprland
Options for Hyprland.
hyprland.enable
Enables Hyprland.
type: bool
default: <gui.enable>
Example:
{
hyprland.enable = true;
}
hyprland.sensitivity
Hyprland's mouse sensitivity. Represented as a string because you cannot have an option with a float for some reason.
type: string
default: "0"
Example:
{
hyprland.sensitivity = "0.2";
}
hyprland.display
Hyprland's display setting. See: https://wiki.hyprland.org/Configuring/Monitors/
type: string
default: ",preffered,auto,1"
Example:
{
hyprland.display = "DP-1,1920x1080@144,0x0,1";
}
Hyprlock
Options for Hyprlock, the lockscreen for hyprland
Example:
{
hyprland.hyprlock = {
enable = true;
asLockscreen = true;
timeoutSecs = (30 * 60); # 30 minutes
};
}
hyprland.hyprlock.enable
Enables hyprlock.
type: bool
default: true
Example:
{
hyprland.hyprlock.enable = true;
}
hyprland.hyprlock.timeoutSecs
Seconds until hyprlock activates.
type: unsigned int
default: 600
(10 minutes)
Example:
{
hyprland.hyprlock.timeoutSecs = (15 * 60); # 15 minutes
}
hyprland.hyprlock.asLockscreen
Start hyprlock on startup as your lockscreen.
type: bool
default: true
Example:
{
hyprland.hyprlock.asLockscreen = true;
}
Extra Config for Hyprland
Extra config for Hyprland.
Example:
{
hyprland.extraConfig = {
startupApps = [ "firefox" "steam -silent"];
binds = [ "$mainMod, B, exec, steam" ];
windowRules = [ "float,^(kitty)$" ];
};
}
hyprland.extraConfig.startupApps
Extra apps to start with Hyprland.
type: listOf string
Example:
{
hyprland.extraConfig.startupApps = [ "firefox" "steam -silent"];
}
hyprland.extraConfig.windowRules
Extra window rules for Hyprland.
type: listOf string
Example:
{
hyprland.extraConfig.windowRules = [ "float,^(kitty)$" ];
}
hyprland.extraConfig.binds
Extra binds for Hyprland.
type: listOf string
Example:
{
hyprland.extraConfig.binds = [ "$mainMod, B, exec, steam" ];
}
Font Packages
Font package options.
Example:
{
fontPackages = {
enable = true;
extraFonts = (with pkgs; [ fira-code ]);
};
}
fontPackages.enable
Enable the custom font packages.
type: bool
default: <gui.enable>
Example:
{
fontPackages.enable = true;
}
fontPackages.extraFonts
Extra font packages.
type: listOf packages
default: <gui.enable>
Example:
{
fontPackages.extraFonts = [ pkgs.fira-code ];
}
Cursor
Cursor options.
Example:
{
cursor = {
enable = true;
size = 32;
};
}
cursor.enable
Enables a custom cursor
type: bool
default: <gui.enable>
Example:
{
cursor.enable = true;
}
cursor.size
Cursor's size.
type: int
default: 24
Example:
{
cursor.size = 32;
}
Package Options
Package options / extra packages.
Example:
{
packages = {
};
}
packages.guiPackages.enable
Enables GUI packages.
type: bool
default: <gui.enable>
Example:
{
packages.guiPackages.enable = true;
}
packages.basePackages.enable
Enables the base set of CLI and system packages.
type: bool
default: true
Example:
{
packages.basePackages.enable = true;
}
packages.remove
A list of packages to remove from the base set of packages. Useful for alternate architectures.
type: listOf package
Example:
{
packages.remove = with pkgs; [
some-package
x86-64-only-package
my-sanity
];
}
packages.extraPackages
A list of packages to add to the base set of packages.
type: listOf package
Example:
{
packages.extraPackages = with pkgs; [
package
other-package
beans
];
}
Neovim
Custom Neovim config generated by nixvim.
Keybinds
They are all workman keybinds so I don't recommend using a lot of them.
Layout
On the left side (opened by default with CTRL+E) is the file explorer
- f to find a file
- . to set the root
- ENTER to open a file / open a folder
- s to open a file split
On the bottom is lualine :)
on the top is bufferline
- tn to go the next buffer
- tp to go the previous buffer
- td to close the current buffer
on the right side (opened by default with CTRL+T) is the terminal
- it is a terminal :)