added base nix configuration
This commit is contained in:
parent
f2697f7115
commit
2341438861
20
README.md
20
README.md
|
@ -1,3 +1,19 @@
|
|||
# NixOS
|
||||
# Dotfiles
|
||||
|
||||
configuration of my nixos setups
|
||||
Config files for various apps and services
|
||||
|
||||
## DVD decryption
|
||||
DVDs can be decrypted without any configuration via the `libdvdcss` library and a transcoder such as `Handbrake` or `VLC`.
|
||||
|
||||
### Packages (System)
|
||||
- libdvdcss
|
||||
|
||||
## Blueray Decryption
|
||||
This configuration is capable of decrypting blueray disks through various libraries.
|
||||
In order to work the `libaacs` requires a database with decryption keys per movie. That file is located at `~/.config/aacs/KEYDB.cfg`
|
||||
and requires updates uppon new movie release. Updated files can be downloaded from here: [VUK Online Database](http://fvonline-db.bplaced.net/).
|
||||
|
||||
### Packages (System)
|
||||
- libaacs
|
||||
- libbdplus
|
||||
- libbluray
|
|
@ -0,0 +1,50 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
# ======================================================
|
||||
# ____ _ _ _
|
||||
# | __ ) ___ ___ | |_| | ___ __ _ __| | ___ _ __
|
||||
# | _ \ / _ \ / _ \| __| |/ _ \ / _` |/ _` |/ _ \ '__|
|
||||
# | |_) | (_) | (_) | |_| | (_) | (_| | (_| | __/ |
|
||||
# |____/ \___/ \___/ \__|_|\___/ \__,_|\__,_|\___|_|
|
||||
#
|
||||
# Bootloader
|
||||
# UEFI enabled GRUB2 setup
|
||||
# with full disk encryption and swap with hibernation
|
||||
|
||||
# Bootloader
|
||||
boot.loader = {
|
||||
efi = {
|
||||
canTouchEfiVariables = false;
|
||||
efiSysMountPoint = "/boot";
|
||||
};
|
||||
grub = {
|
||||
enable = true;
|
||||
efiSupport = true;
|
||||
extraEntriesBeforeNixOS = true;
|
||||
efiInstallAsRemovable = true; # in case canTouchEfiVariables doesn't work for your system
|
||||
device = "nodev";
|
||||
useOSProber = true;
|
||||
};
|
||||
};
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
# extra enabled kernel modules
|
||||
boot.kernelModules = [
|
||||
"sg" # for generic SCSI devices such as /dev/sg0
|
||||
"wireguard"
|
||||
];
|
||||
|
||||
# Kernel parameter on boot
|
||||
boot.kernelParams = [
|
||||
"quiet"
|
||||
"splash"
|
||||
"psi=1"
|
||||
"boot_delay=0"
|
||||
];
|
||||
|
||||
# Setup keyfile
|
||||
boot.initrd.secrets = {
|
||||
"/crypto_keyfile.bin" = null;
|
||||
};
|
||||
}
|
|
@ -0,0 +1,277 @@
|
|||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running nixos-help).
|
||||
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/release-23.05.tar.gz";
|
||||
# python packages to include with python3
|
||||
python-packages = import ./python-packages.nix;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
(import "${home-manager}/nixos")
|
||||
./nix-settings.nix
|
||||
./boot.nix
|
||||
./users/servostar/user.nix
|
||||
./.luks-swap.nix
|
||||
./fonts.nix
|
||||
];
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.opengl.enable = true;
|
||||
# for rotation sensors
|
||||
hardware.sensor.iio.enable = true;
|
||||
# screen and keybord backlight
|
||||
hardware.acpilight.enable = true;
|
||||
|
||||
networking.firewall.checkReversePath = false;
|
||||
networking.hostName = "servostar-nixos-flex"; # Define your hostname.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
networking.wireguard.enable = true;
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "de_DE.UTF-8";
|
||||
LC_IDENTIFICATION = "de_DE.UTF-8";
|
||||
LC_MEASUREMENT = "de_DE.UTF-8";
|
||||
LC_MONETARY = "de_DE.UTF-8";
|
||||
LC_NAME = "de_DE.UTF-8";
|
||||
LC_NUMERIC = "de_DE.UTF-8";
|
||||
LC_PAPER = "de_DE.UTF-8";
|
||||
LC_TELEPHONE = "de_DE.UTF-8";
|
||||
LC_TIME = "de_DE.UTF-8";
|
||||
};
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
services.rpcbind.enable = true; # needed for NFS
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
services.xserver.displayManager.sddm.enable = true;
|
||||
services.xserver.desktopManager.plasma5.enable = true;
|
||||
# set wayland as default session
|
||||
services.xserver.displayManager.defaultSession = "plasmawayland";
|
||||
|
||||
programs.partition-manager.enable = true;
|
||||
programs.zsh.enable = true;
|
||||
|
||||
# use bash shell for other users
|
||||
environment.shells = with pkgs; [ bash ];
|
||||
|
||||
programs.dconf.enable = true;
|
||||
programs.xwayland.enable = true;
|
||||
xdg.portal.enable = true;
|
||||
|
||||
# exclude packages from plasma5
|
||||
environment.plasma5.excludePackages = with pkgs.libsForQt5; [
|
||||
elisa
|
||||
oxygen
|
||||
khelpcenter
|
||||
kcolorpicker
|
||||
];
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver = {
|
||||
layout = "de";
|
||||
xkbVariant = "";
|
||||
};
|
||||
|
||||
# Configure console keymap
|
||||
console.keyMap = "de";
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
################################################
|
||||
# __ ___ _ _ _ _ _
|
||||
# \ \ / (_)_ __| |_ _ _ __ _| (_)___ __ _| |_(_) ___ _ __
|
||||
# \ \ / /| | '__| __| | | |/ _` | | / __|/ _` | __| |/ _ \| '_ \
|
||||
# \ V / | | | | |_| |_| | (_| | | \__ \ (_| | |_| | (_) | | | |
|
||||
# \_/ |_|_| \__|\__,_|\__,_|_|_|___/\__,_|\__|_|\___/|_| |_|
|
||||
#
|
||||
# This sections enbales host virtualisation for:
|
||||
# - KVM
|
||||
# - Waydroid (android based on LineageOS)
|
||||
# - Docker
|
||||
################################################
|
||||
|
||||
# enable rootless docker for more security
|
||||
virtualisation.docker.rootless = {
|
||||
enable = true;
|
||||
setSocketVariable = true;
|
||||
};
|
||||
# regulary clean unused docker images
|
||||
virtualisation.docker.autoPrune.enable = true;
|
||||
# add user teridax to docker group
|
||||
users.extraGroups.docker.members = [ "servostar" ];
|
||||
|
||||
# KVM
|
||||
virtualisation.libvirtd.enable = true;
|
||||
|
||||
# android container
|
||||
virtualisation.waydroid.enable = true;
|
||||
|
||||
################################################
|
||||
# ____ _ _
|
||||
# | _ \(_)_ __ _____ _(_)_ __ ___
|
||||
# | |_) | | '_ \ / _ \ \ /\ / / | '__/ _ \
|
||||
# | __/| | |_) | __/\ V V /| | | | __/
|
||||
# |_| |_| .__/ \___| \_/\_/ |_|_| \___|
|
||||
# |_|
|
||||
################################################
|
||||
|
||||
# Enable sound with pipewire.
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
|
||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||
# no need to redefine it in your config for now)
|
||||
#media-session.enable = true;
|
||||
};
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
|
||||
programs.java.enable = true;
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||
};
|
||||
hardware.opengl.driSupport32Bit = true; # Enables support for 32bit libs that steam uses
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
(python3.withPackages(python-packages))
|
||||
|
||||
virt-manager
|
||||
distrobox
|
||||
|
||||
# Rust toolchain
|
||||
rustup
|
||||
libiconv
|
||||
rust-analyzer
|
||||
|
||||
php
|
||||
php.packages.composer
|
||||
|
||||
go
|
||||
|
||||
nodejs
|
||||
|
||||
sass
|
||||
|
||||
# embedded board development
|
||||
platformio-core # toolchain manager for various microcontrollers
|
||||
openocd # on-chip programming and debugging support
|
||||
avrdude # esp32 and others support
|
||||
|
||||
libdvdcss
|
||||
libaacs
|
||||
libbdplus
|
||||
libbluray
|
||||
|
||||
devbox
|
||||
filelight
|
||||
ffmpeg-full
|
||||
openssl
|
||||
imagemagick
|
||||
gnumake
|
||||
cmake
|
||||
|
||||
# Clipboard support for Wayland Session
|
||||
# used by Vim/Neovim and etc.
|
||||
wl-clipboard
|
||||
|
||||
# GNU Compiler Collection and toolchain
|
||||
glibc
|
||||
gcc
|
||||
gdb
|
||||
stdenv.cc
|
||||
stdenv.cc.libc
|
||||
stdenv.cc.libc_dev
|
||||
|
||||
pkg-config
|
||||
fontconfig
|
||||
|
||||
# SCSI driver
|
||||
sg3_utils
|
||||
|
||||
wineWowPackages.stable
|
||||
winetricks
|
||||
];
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
# services.openssh.enable = true;
|
||||
|
||||
services.udev.packages = [ pkgs.platformio ];
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
networking.firewall.allowedUDPPorts = [
|
||||
51820 # wireguard client
|
||||
];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It's perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "23.05"; # Did you read the comment?
|
||||
|
||||
environment.sessionVariables = rec {
|
||||
_JAVA_OPTIONS = "-Dawt.useSystemAAFontSettings=lcd";
|
||||
|
||||
# rust
|
||||
CARGO_TERM_COLOR = "always";
|
||||
RUST_BACKTRACE = "1";
|
||||
|
||||
# Wayland for electron Ozone
|
||||
NIXOS_OZONE_WL = "1";
|
||||
|
||||
GTK_THEME = "Breeze-Dark";
|
||||
};
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
fonts = {
|
||||
enableDefaultFonts = true;
|
||||
|
||||
# extra font packages
|
||||
fonts = with pkgs; [
|
||||
corefonts
|
||||
noto-fonts
|
||||
noto-fonts-cjk
|
||||
noto-fonts-emoji
|
||||
noto-fonts-lgc-plus
|
||||
dejavu_fonts
|
||||
liberation_ttf
|
||||
mplus-outline-fonts.githubRelease
|
||||
dina-font
|
||||
proggyfonts
|
||||
open-fonts
|
||||
open-sans
|
||||
gyre-fonts
|
||||
font-awesome
|
||||
source-han-sans
|
||||
vistafonts
|
||||
inconsolata # monospaced
|
||||
vazir-fonts # persian font
|
||||
unifont # some international languages
|
||||
# nerd fonts
|
||||
(nerdfonts.override {
|
||||
fonts = [
|
||||
"Hack"
|
||||
"FiraCode"
|
||||
"DroidSansMono"
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
fontDir.enable = true;
|
||||
|
||||
fontconfig = {
|
||||
enable = true;
|
||||
defaultFonts = {
|
||||
serif = [ "Noto Serif" ];
|
||||
sansSerif = [ "Noto Sans" ];
|
||||
emoji = [ "Noto Color Emoji" ];
|
||||
monospace = [ "Noto Sans Mono" "Noto Sans" "Noto Color Emoji" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
# ======================================================
|
||||
# _ _ _
|
||||
# | \ | (_)_ __
|
||||
# | \| | \ \/ /
|
||||
# | |\ | |> <
|
||||
# |_| \_|_/_/\_\
|
||||
#
|
||||
# Configuration for nix
|
||||
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
unstableTarball = fetchTarball https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz;
|
||||
in
|
||||
{
|
||||
# cleanup nix store after every build
|
||||
nix.settings.auto-optimise-store = true;
|
||||
|
||||
# confgure garbage collector of nixos
|
||||
# to run weekly
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 30d";
|
||||
};
|
||||
|
||||
# enable unstable packages
|
||||
nixpkgs.config = {
|
||||
packageOverrides = pkgs: with pkgs; {
|
||||
unstable = import unstableTarball {
|
||||
config = config.nixpkgs.config;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# prompt user the option to abort and not doing anything
|
||||
printf "Continue copying files and bulding config (y/n)? "
|
||||
read -r choice
|
||||
case "$choice" in
|
||||
y|Y )
|
||||
echo "copying files..."
|
||||
cp -rv nixos /etc
|
||||
;;
|
||||
n|N )
|
||||
echo "aborting..."
|
||||
exit 0
|
||||
;;
|
||||
* )
|
||||
echo "invalid"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$1" in
|
||||
"switch" | "boot" | "dry-run")
|
||||
echo "building config..."
|
||||
nixos-rebuild "$1"
|
||||
;;
|
||||
"upgrade")
|
||||
echo "upgrading nixos..."
|
||||
nixos-rebuild --upgrade switch
|
||||
;;
|
||||
* )
|
||||
echo "no option specified, not building config..."
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "done"
|
|
@ -0,0 +1,15 @@
|
|||
ps: with ps;
|
||||
[
|
||||
pandas
|
||||
requests
|
||||
pygments
|
||||
tkinter
|
||||
numpy
|
||||
setuptools
|
||||
youtube-dl
|
||||
pip
|
||||
setuptools
|
||||
ipykernel
|
||||
scipy
|
||||
gurobipy
|
||||
]
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"window.titleBarStyle": "custom",
|
||||
"git.autofetch": true,
|
||||
"update.mode": "none",
|
||||
"git.enableSmartCommit": true,
|
||||
"workbench.iconTheme": "material-icon-theme",
|
||||
"git.confirmSync": false,
|
||||
"window.zoomLevel": 1,
|
||||
"editor.fontFamily": "'DroidSansM Nerd Font Mono', 'Droid Sans Mono', 'monospace', monospace"
|
||||
}
|
|
@ -0,0 +1,76 @@
|
|||
# Based on: https://starship.rs/presets/pastel-powerline.html
|
||||
|
||||
format = """
|
||||
[█](#a3aed2)\
|
||||
[ ](bg:#a3aed2 fg:#090c0c)\
|
||||
$username\
|
||||
[](bg:#769ff0 fg:#a3aed2)\
|
||||
$directory\
|
||||
[](fg:#769ff0 bg:#394260)\
|
||||
$git_branch\
|
||||
$git_status\
|
||||
[](fg:#394260 bg:#212736)\
|
||||
$nodejs\
|
||||
$rust\
|
||||
$golang\
|
||||
$php\
|
||||
[](fg:#212736 bg:#1d2230)\
|
||||
$time\
|
||||
[ ](fg:#1d2230)"""
|
||||
|
||||
[username]
|
||||
show_always = true
|
||||
style_user = "bg:#a3aed2 fg:#090c0c"
|
||||
style_root = "bg:#a3aed2 fg:#090c0c"
|
||||
format = '[$user ]($style)'
|
||||
disabled = false
|
||||
|
||||
[directory]
|
||||
style = "fg:#e3e5e5 bg:#769ff0"
|
||||
format = "[ $path ]($style)"
|
||||
truncation_length = 3
|
||||
truncation_symbol = "…/"
|
||||
|
||||
[directory.substitutions]
|
||||
"Documents" = " "
|
||||
"Downloads" = " "
|
||||
"Music" = " "
|
||||
"Pictures" = " "
|
||||
"Video" = " "
|
||||
"Desktop" = " "
|
||||
|
||||
[git_branch]
|
||||
symbol = ""
|
||||
style = "bg:#394260"
|
||||
format = '[[ $symbol $branch ](fg:#769ff0 bg:#394260)]($style)'
|
||||
|
||||
[git_status]
|
||||
style = "bg:#394260"
|
||||
format = '[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)'
|
||||
|
||||
[nodejs]
|
||||
symbol = ""
|
||||
style = "bg:#212736"
|
||||
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
||||
|
||||
[rust]
|
||||
symbol = ""
|
||||
style = "bg:#212736"
|
||||
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
||||
|
||||
[golang]
|
||||
symbol = ""
|
||||
style = "bg:#212736"
|
||||
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
||||
|
||||
[php]
|
||||
symbol = ""
|
||||
style = "bg:#212736"
|
||||
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
||||
|
||||
[time]
|
||||
disabled = false
|
||||
time_format = "%R" # Hour:Minute Format
|
||||
style = "bg:#1d2230"
|
||||
format = '[[ $time ](fg:#a0a9cb bg:#1d2230)]($style)'
|
||||
|
|
@ -0,0 +1,248 @@
|
|||
{ pkgs, config, ... }:
|
||||
{
|
||||
# ======================================================
|
||||
# _ _
|
||||
# | | | |___ ___ _ __
|
||||
# | | | / __|/ _ \ '__|
|
||||
# | |_| \__ \ __/ |
|
||||
# \___/|___/\___|_|
|
||||
#
|
||||
# Configuration for user servostar
|
||||
|
||||
services.pcscd.enable = true; # enable support for smart cards
|
||||
|
||||
services.printing.enable = true;
|
||||
services.avahi.enable = true;
|
||||
# for a WiFi printer
|
||||
services.avahi.openFirewall = true;
|
||||
services.avahi.nssmdns = false; # Use the settings from below
|
||||
# settings from avahi-daemon.nix where mdns is replaced with mdns4
|
||||
system.nssModules = pkgs.lib.optional (!config.services.avahi.nssmdns) pkgs.nssmdns;
|
||||
system.nssDatabases.hosts = with pkgs.lib; optionals (!config.services.avahi.nssmdns) (mkMerge [
|
||||
(mkBefore [ "mdns4_minimal [NOTFOUND=return]" ]) # before resolve
|
||||
(mkAfter [ "mdns4" ]) # after dns
|
||||
]);
|
||||
|
||||
# Define a user account. Don't forget to set a password with passwd.
|
||||
users.users.servostar = {
|
||||
isNormalUser = true;
|
||||
description = "adminstrator";
|
||||
# member groups for this user
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
"libvirtd"
|
||||
"dialout"
|
||||
"tty"
|
||||
"uucp"
|
||||
"plugdev"
|
||||
];
|
||||
# use zsh
|
||||
shell = pkgs.zsh;
|
||||
|
||||
# ------------------------------------------------------
|
||||
# user packages
|
||||
|
||||
packages = with pkgs; [
|
||||
|
||||
# language server
|
||||
shellcheck
|
||||
lua-language-server
|
||||
pyright
|
||||
|
||||
# browsers
|
||||
librewolf
|
||||
ungoogled-chromium
|
||||
tor-browser-bundle-bin
|
||||
|
||||
# games
|
||||
prismlauncher
|
||||
|
||||
# social media
|
||||
discord
|
||||
signal-desktop
|
||||
|
||||
# LaTeX and tlmgr
|
||||
texlive.combined.scheme-full
|
||||
|
||||
godot_4
|
||||
|
||||
# command line tools
|
||||
neofetch
|
||||
lolcat
|
||||
figlet
|
||||
cowsay
|
||||
cmatrix
|
||||
exa # FIXME: use stable eza version when available
|
||||
btop
|
||||
htop
|
||||
tmux
|
||||
nvtop-amd
|
||||
asciiquarium
|
||||
pipes
|
||||
tldr
|
||||
ranger
|
||||
nmap
|
||||
busybox
|
||||
tcpdump
|
||||
onefetch # neofetch for git repositories
|
||||
catimg
|
||||
hollywood
|
||||
efibootmgr
|
||||
# less like program for listing a file with colors
|
||||
# used as a replacement pager for colored man pages
|
||||
most
|
||||
lazygit
|
||||
lazydocker
|
||||
pandoc
|
||||
yt-dlp
|
||||
fzf
|
||||
nyancat
|
||||
hexedit
|
||||
unzip
|
||||
fd
|
||||
wget
|
||||
gzip
|
||||
ripgrep
|
||||
|
||||
lua
|
||||
okteta
|
||||
kate
|
||||
keepassxc
|
||||
vlc
|
||||
mpv
|
||||
inkscape
|
||||
krita
|
||||
handbrake
|
||||
libreoffice-qt
|
||||
libsForQt5.kcalc
|
||||
libsForQt5.ark
|
||||
libsForQt5.ksystemlog
|
||||
libsForQt5.kcharselect
|
||||
libsForQt5.kget
|
||||
libsForQt5.kclock
|
||||
libsForQt5.breeze-gtk
|
||||
libsForQt5.kpmcore
|
||||
libsForQt5.kdenlive
|
||||
libsForQt5.breeze-gtk
|
||||
libsForQt5.kweather
|
||||
libsForQt5.kompare
|
||||
libsForQt5.skanpage
|
||||
isoimagewriter
|
||||
blender
|
||||
obs-studio
|
||||
tor
|
||||
xournalpp
|
||||
|
||||
# Yubikey stuff
|
||||
yubioath-flutter # Yubico authentictor app for managing accounts
|
||||
yubikey-manager # CLI tool for ykman
|
||||
yubikey-manager-qt # GUI tool for ykman
|
||||
pcsclite
|
||||
|
||||
jetbrains-toolbox
|
||||
];
|
||||
};
|
||||
|
||||
# ------------------------------------------------------
|
||||
# _ _
|
||||
# | | | | ___ _ __ ___ ___ _ __ ___ __ _ _ __ __ _ __ _ ___ _ __
|
||||
# | |_| |/ _ \| '_ ` _ \ / _ \ '_ ` _ \ / _` | '_ \ / _` |/ _` |/ _ \ '__|
|
||||
# | _ | (_) | | | | | | __/ | | | | | (_| | | | | (_| | (_| | __/ |
|
||||
# |_| |_|\___/|_| |_| |_|\___|_| |_| |_|\__,_|_| |_|\__,_|\__, |\___|_|
|
||||
# |___/
|
||||
|
||||
home-manager.users.servostar = {
|
||||
home = {
|
||||
stateVersion = "23.05";
|
||||
};
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
james-yu.latex-workshop
|
||||
jnoortheen.nix-ide
|
||||
pkief.material-icon-theme
|
||||
rust-lang.rust-analyzer
|
||||
bungcip.better-toml
|
||||
mhutchie.git-graph
|
||||
ms-azuretools.vscode-docker
|
||||
ms-python.python
|
||||
twxs.cmake
|
||||
ms-python.vscode-pylance
|
||||
];
|
||||
};
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
theme = "Tokyo Night";
|
||||
shellIntegration.enableZshIntegration = true;
|
||||
settings = {
|
||||
update_check_interval = 0;
|
||||
cursor_shape = "beam";
|
||||
background_opacity = "0.85";
|
||||
font_size = "12.0";
|
||||
};
|
||||
};
|
||||
|
||||
# ------------------------------------------------------
|
||||
# Config files
|
||||
xdg.configFile."starship.toml".source = config/starship.toml; # starship prompt configuration
|
||||
xdg.configFile."VSCodium/User/settings.json".source = config/settings.json; # VSCodium settings
|
||||
xdg.configFile."aacs/KEYDB.cfg".source = config/keydb.cfg; # key database for blueray decryption
|
||||
|
||||
# ------------------------------------------------------
|
||||
# ZSH
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
autocd = true;
|
||||
completionInit = "autoload -U compinit";
|
||||
initExtra = ''
|
||||
export PAGER="most"
|
||||
export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=242"
|
||||
'';
|
||||
# Custom keybindings
|
||||
initExtraFirst = ''
|
||||
bindkey "^[[1;5C" emacs-forward-word
|
||||
bindkey "^[[1;5D" emacs-backward-word
|
||||
'';
|
||||
enableCompletion = true;
|
||||
enableAutosuggestions = true;
|
||||
enableSyntaxHighlighting = true;
|
||||
shellAliases = {
|
||||
ls = "exa --icons";
|
||||
};
|
||||
history = {
|
||||
size = 10000;
|
||||
share = true;
|
||||
};
|
||||
zplug = {
|
||||
enable = true;
|
||||
plugins = [
|
||||
{ name = "MichaelAquilina/zsh-you-should-use"; }
|
||||
{ name = "akash329d/zsh-alias-finder"; }
|
||||
{ name = "johannchangpro/zsh-interactive-cd"; }
|
||||
{ name = "zsh-users/zsh-completions"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
# ------------------------------------------------------
|
||||
# git
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "servostar";
|
||||
userEmail = "sven.vogel123@web.de";
|
||||
lfs.enable = true;
|
||||
};
|
||||
programs.command-not-found.enable = true;
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue