diff options
author | ene <ene@sils.li> | 2023-02-01 20:22:29 +0100 |
---|---|---|
committer | ene <ene@sils.li> | 2023-02-01 20:28:24 +0100 |
commit | a806c6776ea19ec068b7a60fde211310fd41d156 (patch) | |
tree | b34083424e759459473b13b7c2f9f75cf9e8a80e | |
download | nixos-config-a806c6776ea19ec068b7a60fde211310fd41d156.tar.gz nixos-config-a806c6776ea19ec068b7a60fde211310fd41d156.zip |
Initial commit
-rw-r--r-- | flake.nix | 21 | ||||
-rw-r--r-- | hosts/IDOHVE/configuration.nix | 23 | ||||
-rw-r--r-- | hosts/IDOHVE/gpu.nix | 17 | ||||
-rw-r--r-- | hosts/IDOHVE/hardware.nix | 85 | ||||
-rw-r--r-- | hosts/IDOHVE/networking.nix | 10 | ||||
-rw-r--r-- | services/custom_cursor.sh | 40 | ||||
-rw-r--r-- | services/nix.nix | 18 | ||||
-rw-r--r-- | services/zsh-init.sh | 38 | ||||
-rw-r--r-- | services/zsh-prompt.sh | 63 | ||||
-rw-r--r-- | services/zsh.nix | 130 | ||||
-rw-r--r-- | system/packages.conf | 211 | ||||
-rw-r--r-- | system/packages.nix | 86 | ||||
-rw-r--r-- | system/users.nix | 17 |
13 files changed, 759 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix new file mode 100644 index 00000000..c8ba31df --- /dev/null +++ b/flake.nix @@ -0,0 +1,21 @@ +# vim: ts=2 +{ + description = "Nixos system config"; + + inputs = { + nixpkgs.url = "nixpkgs/nixos-unstable"; + home-manager.url = "github:nix-community/home-manager/master"; + }; + + outputs = { + self, + nixpkgs, + ... + } @ attrs: { + nixosConfigurations.IDOHVE = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = attrs; + modules = [./hosts/IDOHVE/configuration.nix]; + }; + }; +} diff --git a/hosts/IDOHVE/configuration.nix b/hosts/IDOHVE/configuration.nix new file mode 100644 index 00000000..a3cf2b2c --- /dev/null +++ b/hosts/IDOHVE/configuration.nix @@ -0,0 +1,23 @@ +# vim: ts=2 +{ + config, + lib, + nixpkgs, + home-manager, + ... +}: { + imports = [ + ./hardware.nix + ./gpu.nix + ./networking.nix + + ../../system/packages.nix + ../../system/users.nix + + ../../services/nix.nix + ../../services/zsh.nix + ]; + + + system.stateVersion = "23.05"; +} diff --git a/hosts/IDOHVE/gpu.nix b/hosts/IDOHVE/gpu.nix new file mode 100644 index 00000000..6796d04b --- /dev/null +++ b/hosts/IDOHVE/gpu.nix @@ -0,0 +1,17 @@ +{ + config, + pkgs, + lib, + ... +}: { + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; # TODO + + hardware.opengl.extraPackages = with pkgs; [ + rocm-opencl-icd # open-cl + amdvlk # or directly through mesa + amd-media-driver # libva + ]; + + # Force radv, TODO is this logical? + environment.variables.AMD_VULKAN_ICD = "RADV"; +} diff --git a/hosts/IDOHVE/hardware.nix b/hosts/IDOHVE/hardware.nix new file mode 100644 index 00000000..be55c07c --- /dev/null +++ b/hosts/IDOHVE/hardware.nix @@ -0,0 +1,85 @@ +{ + config, + lib, + pkgs, + modulesPath, + ... +}: let + main_disk = "/dev/disk/by-uuid/<uuid>"; +in { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") # TODO is this necessary? + ]; + + boot = { + initrd = { + compressor = "lz4"; + compressorArgs = ["-9"]; + + # TODO check this: + availableKernelModules = ["xhci_pci" "nvme" "rtsx_pci_sdmmc"]; + }; + + kernelModules = ["kvm-amd"]; + kernelPackages = pkgs.linuxPackages_latest; + loader = { + grub = { + enable = true; + version = 2; + theme = pkgs.nixos-grub2-theme; + splashImage = ./grub_boot_image.png; + efiSupport = true; + device = "nodev"; # TODO add this + }; + efi = { + canTouchEfiVariables = true; + efiSysMountPoint = "/boot"; + }; + }; + }; + + fileSystems = { + "/" = { + device = "none"; + fsType = "tmpfs"; + options = ["defaults" "size=2G" "mode=755"]; + }; + "/nix" = { + device = main_disk; + fsType = "btrfs"; + options = ["subvol=@nix" "compress-force=zstd:9"]; + }; + "/boot" = { + device = "/dev/disk/by-uuid/<uuid>"; + fsType = "vfat"; + }; + + "/srv/home" = { + device = main_disk; + fsType = "btrfs"; + options = ["subvol=@home" "compress-force=zstd:9"]; + }; + "/srv/nixos-config" = { + device = main_disk; + fsType = "btrfs"; + options = ["subvol=@nixos-config" "compress-force=zstd:9"]; + }; + + "/etc/nixos" = { + device = "/srv/nix-config"; + options = ["bind"]; + }; + "/home" = { + device = "/srv/home"; + options = ["bind"]; + }; + }; + + swapDevices = []; + + + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; +} + diff --git a/hosts/IDOHVE/networking.nix b/hosts/IDOHVE/networking.nix new file mode 100644 index 00000000..67e5bd15 --- /dev/null +++ b/hosts/IDOHVE/networking.nix @@ -0,0 +1,10 @@ +{config, lib, ...}: { + # 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 + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true; + networking.hostName = "IDOHVE"; +} diff --git a/services/custom_cursor.sh b/services/custom_cursor.sh new file mode 100644 index 00000000..9a6da012 --- /dev/null +++ b/services/custom_cursor.sh @@ -0,0 +1,40 @@ +# Change cursor shape for different vi modes. +function zle-keymap-select { + if [[ ${KEYMAP} == vicmd ]] || + [[ $1 = 'block' ]]; then + echo -ne '\e[1 q' + elif [[ ${KEYMAP} == main ]] || + [[ ${KEYMAP} == viins ]] || + [[ ${KEYMAP} = '' ]] || + [[ $1 = 'beam' ]]; then + echo -ne '\e[5 q' + fi +} +zle -N zle-keymap-select + +# ci", ci', ci`, di", etc +autoload -U select-quoted +zle -N select-quoted +for m in visual viopp; do + for c in {a,i}{\',\",\`}; do + bindkey -M $m $c select-quoted + done +done + +# ci{, ci(, ci<, di{, etc +autoload -U select-bracketed +zle -N select-bracketed +for m in visual viopp; do + for c in {a,i}${(s..)^:-'()[]{}<>bB'}; do + bindkey -M $m $c select-bracketed + done +done + +zle-line-init() { + zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere) + echo -ne "\e[5 q" +} +zle -N zle-line-init + +echo -ne '\e[5 q' # Use beam shape cursor on startup. +precmd() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt. diff --git a/services/nix.nix b/services/nix.nix new file mode 100644 index 00000000..b94cfc95 --- /dev/null +++ b/services/nix.nix @@ -0,0 +1,18 @@ +{ + config, + lib, + pkgs, + ... +}: { + nix = { + gc = { + automatic = true; + dates = "daily"; + options = "--delete-older-than 3"; + }; + settings = { + auto-optimise-store = true; + experimental-features = ["nix-command" "flakes"]; + }; + }; +} diff --git a/services/zsh-init.sh b/services/zsh-init.sh new file mode 100644 index 00000000..bc9af87a --- /dev/null +++ b/services/zsh-init.sh @@ -0,0 +1,38 @@ +# If not running interactively, don't do anything +[[ $- != *i* ]] && return + +# Flex on the ubuntu users +[ "$NVIM" ] || neofetch || hyfetch +#loginctl show-session $XDG_SESSION_ID + +## Enable colors and change prompt: +#autoload -Uz colors && colors +#autoload -Uz compinit && compinit -u +## Edit line in vim buffer ctrl-v +#autoload -Uz edit-command-line; zle -N edit-command-line +## Enter vim buffer from normal mode +#autoload -Uz edit-command-line && zle -N edit-command-line + +## zstyles +#zstyle ':completion:*' menu select +## Auto complete with case insensitivity +#zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' + +#zmodload zsh/complist +#fpath+=/home/dt/.config/zsh/comp +#compinit +#_comp_options+=(globdots) # Include hidden files. +# +## Source configs +#source "${ZDOTDIR}/ali.sh" +#source "${ZDOTDIR}/prompt.sh" +#source "${ZDOTDIR}/hotkeys.sh" +source "./${path_custom_cursor}" +#source ~/.local/lib/shell/lib +# +## Load zsh-syntax-highlighting +#source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh +## Suggest aliases for commands +#source /usr/share/zsh/plugins/zsh-you-should-use/you-should-use.plugin.zsh +# +##eval "$(lua ~/scripts/z.lua --init zsh enhanced)" diff --git a/services/zsh-prompt.sh b/services/zsh-prompt.sh new file mode 100644 index 00000000..1f0f164b --- /dev/null +++ b/services/zsh-prompt.sh @@ -0,0 +1,63 @@ +#vim:ft=zsh +_command_time_preexec() { + timer=${timer:-$SECONDS} +} + +_command_time_precmd() { + PROMPT_TMP_DIR=$(mktemp) + if [ $timer ]; then + ts=$(($SECONDS - $timer)) + tts=$ts + mi=0 + ho=0 + if [ $ts -ge 3 ];then + while [ $ts -ge 60 ];do + ts=$((ts-60)) + mi=$((mi+1)) + done + + while [ $mi -ge 60 ];do + mi=$((mi-60)) + ho=$((ho+1)) + done + + if [ $tts -ge 3600 ];then + out=$(printf '%dh %dm %ds\n' $ho $mi $ts) + elif [ $tts -ge 60 ];then + out=$(printf '%dm %ds\n' $mi $ts) + elif [ $tts -lt 60 ];then + out=$(printf '%ds\n' $ts) + fi + + export psvar[1]="took $(printf '%s ' "$out")" + echo $psvar[1] > $PROMPT_TMP_DIR + fi + + unset timer + unset ts + unset tts + unset mi + unset ho +fi +} + +_command_ro_precmd() { +if ! [ -w $(pwd) ];then + echo " " +fi +} + +preexec_functions+=(_command_time_preexec) +precmd_functions+=(_command_time_precmd) + +blue="14" +red="9" +white="15" +setopt PROMPT_SUBST +export PROMPT='%(?.%F{$blue}.%F{$red})%B%3~%(!. %F{$red}as root %f. )%F{$white}$(if [ -n $PROMPT_TMP_DIR ];then cat $PROMPT_TMP_DIR; rm $PROMPT_TMP_DIR;fi)%f%(?.%F{$blue}.%F{$red})%F{$red}$(_command_ro_precmd)%F{$blue}❯ %b%f' +export RPROMPT='' + +#%(2V.%F{$red}%2v%f$(export psvar[2]="") .) + +# TODO: +# Add git support diff --git a/services/zsh.nix b/services/zsh.nix new file mode 100644 index 00000000..b194ab6b --- /dev/null +++ b/services/zsh.nix @@ -0,0 +1,130 @@ +{ + config, + pkgs, + ... +}: let + path_config_cursor = builtins.writeFile ./custom_cursor; +in { + programs.zsh = { + enable = true; + zsh-autoenv = { + enable = true; + }; + syntaxHighlighting = { + enable = true; + }; + shellAliases = { + ls = "ls -a --color=auto"; + ll = ". ll"; + pip = "pip --require-virtualenv"; + hisea = "history info | grep"; + + mocp = "mocp -M \"$XDG_CONFIG_HOME\"/moc"; + yarn = "yarn --use-yarnrc \"$XDG_CONFIG_HOME\"/yarn/config"; + }; + setOptions = [ + "AUTO_CD" + "AUTO_PUSHD" + "CHASE_DOTS" + + "ALWAYS_TO_END" + + "EXTENDED_HISTORY" + "HIST_ALLOW_CLOBBER" + "HIST_VERIFY" + "HIST_FCNTL_LOCK" + + "DVORAK" + "CORRECT" + + "PROMPT_SUBST" + "TRANSIENT_RPROMPT" # maybe? + + "COMBINING_CHARS" + "VI" + ]; + + promptInit = + builtins.readFile ./zsh-prompt.sh; + loginShellInit = '' + eval $(ssh-agent -s) > /dev/null # start ssh agent + export ENHANCHED_NEOFETCH="$(pacman -Qn | wc -l) (pacman), $(pacman -Qm | wc -l) (aur), $(($(cargo install --list | wc -l ) / 2)) (cargo)" + ''; + interactiveShellInit = builtins.readFile ./zsh-init.sh; + histSize = 9999999; + histFile = "$XDG_DATA_HOME/zsh/history"; + autosuggentions = { + enable = true; + }; + }; + + environment = { + variables = { + XDG_DATA_HOME = "$HOME/.local/share"; + XDG_STATE_HOME = "$HOME/.local/state"; + XDG_CACHE_HOME = "$HOME/.cache"; + XDG_CONFIG_HOME = "$HOME/.config"; + XDG_BIN_HOME = "\${HOME}/.local/bin"; + + HISTSIZE = "9000000"; + TIMEFMT = "'$fg[green]%J$reset_color' time: $fg[blue]%*Es$reset_color, cpu: $fg[blue]%P$reset_color"; # no idea what this does or why it is needed + REPORTTIME = "10"; + + PATH = [ + "\${PATH}:/home/dt/repos/shell/scripts" + "/home/dt/.local/bin" + "/home/dt/.local/share/cargo/bin/" + ]; + EDITOR = "nvim"; + IVIEWER = "imv"; + READER = "zathura"; + VISUAL = "nvim"; + CODEEDITOR = "nvim"; + TERMINAL = "alacritty"; + BROWSER = "firefox"; + COLORTERM = "truecolor"; + PAGER = "less"; + WM = "river"; + AWMWALLPAPER = "/home/dt/media/pictures/tes/wallpapers-linux_cast/Dedicated_Colorschemes/nord/Abstract-Nord.png"; + + # FUNCNEST for more functions in functions + FUNCNEST = "2000"; + + WALLPAPERDIR = "$HOME/media/pictures/wallpapers/"; + LESS = "R"; + MANPAGER = "less -R --use-color -Dd+r -Du+b"; + LIBVIRT_DEFAULT_URI = "qemu:///system"; + BEMENU_SCALE = "1.5"; + BEMENU_BACKEND = "wayland"; + BEMENU_OPTS = "--fn 'Source Code Pro 10' -c -l 30 -B 1 -W 0.9 --hf #ffffff"; + + # Clean the home dir {{{ + _JAVA_OPTIONS = "-Djava.util.prefs.userRoot=$XDG_CONFIG_HOME/java -Djavafx.cachedir = \"$XDG_CACHE_HOME/openjfx\""; + GRADLE_USER_HOME = "\"$XDG_DATA_HOME\"/gradle"; + CARGO_HOME = "\"$XDG_DATA_HOME\"/cargo"; + GNUPGHOME = "\"$XDG_DATA_HOME\"/gnupg"; + GOPATH = "\"$XDG_DATA_HOME\"/go"; + GTK2_RC_FILES = "\"$XDG_CONFIG_HOME\"/gtk-2.0/gtkrc"; + LESSHISFILE = "\"$XDG_CACHE_HOME\"/less/history"; + LESSKEYIN = "\"$XDG_CONFIG_HOME\"/less/lesskey"; + RUSTUP_HOME = "\"$XDG_DATA_HOME\"/rustup"; + NPM_CONFIG_USERCONFIG = "\"$XDG_CONFIG_HOME\"/npm/npmrc"; + NUGET_PACKAGES = "\"$XDG_CACHE_HOME\"/NuGetPackages"; + PYTHONSTARTUP = "\"$XDG_CONFIG_HOME\"/python/pythonrc"; + XAUTHORITY = "\"$XDG_RUNTIME_DIR\"/Xauthority"; + COMPDUMPFILE = "\"$XDG_DATA_DIR\"/zsh/.zcompdump}"; + IPYTHONDIR = "\"$XDG_CONFIG_HOME\"/ipython"; + PARALLEL_HOME = "\"$XDG_CONFIG_HOME\"/parallel"; + STACK_XDG = "1"; + # }}} + + # Export Wayland env Vars {{{ + QT_QPA_PLATFORM = "wayland"; + QT_QPA_PLATFORMTHEME = "qt5ct"; # needs qt5ct + CLUTTER_BACKEND = "wayland"; + SDL_VIDEODRIVER = "wayland"; # might brake some things + MOZ_ENABLE_WAYLAND = "1"; + # }}} + }; + }; +} diff --git a/system/packages.conf b/system/packages.conf new file mode 100644 index 00000000..25f6ace8 --- /dev/null +++ b/system/packages.conf @@ -0,0 +1,211 @@ +# vim: ft=conf + # GUI + # Terminals + alacritty # terminal emulator + + # Browsers + firefox # web browser + ungoogled-chromium-xdg-bin # web browser (only for web programming) + + # Image manipulation + krita # new, and better (KDE) + gimp # conservative, and old (GNOME) + + # Social + mumble # voice chat software (client) + nheko-git # Matrix Desktop client + + # Misc + kalzium # Periodic Table of Elements + keepassxc # password manager + onlykey # OnlyKey Chrome Desktop App + steam # Valve's digital software delivery system + + # TUI/CLI + # Networking + # One-off things + #bind # A complete, highly portable implementation of the DNS protocol + #firewalld # Firewall daemon with D-Bus interface + #ngrep # A grep-like utility that allows you to search for network packets on an interface. + #openbsd-netcat # TCP/IP swiss army knife. OpenBSD variant. + # Misc + lftp # FTP client + openssh # SSH client + + # Eye candy + banner # Print large banners to ASCII terminals + cmatrix # A curses-based scrolling 'Matrix'-like screen + hyfetch # Neofetch with LGBTQ pride flags. + + # Backups + rclone # Sync files to and from Google Drive, S3, Swift, Cloudfiles, Dropbox and Google Cloud Storage + snapper # A tool for managing BTRFS and LVM snapshots. It can create, diff and restore snapshots and provides timelined auto-snapping. + snap-sync # Use snapper snapshots to backup to external drive + + # Misc + android-file-transfer # Android MTP client with minimalistic UI + docx2txt # Recovers text from DOCX files, with good formatting. + btop # Interactive process viewer (maybe better than htop) + ttf-sourcecodepro-nerd # Patched font Source Code Pro from nerd fonts library + xdg-ninja-git # A shell script which checks your $HOME for unwanted files and directories. + yokadi # Command line oriented, sqlite powered, todo list + + # WM + river # A dynamic tiling wayland compositor + + # CLI tools + lswt # List Wayland toplevels + wlopm # Wayland output power management. + wlr-randr # Utility to manage outputs + wl-clipboard # Command-line copy/paste utilities + gammastep # Adjust the color temperature of your screen according to your surroundings. + + # Components + yambar # status panel + swaybg # Wallpaper + mako # notification daemon + bemenu-wayland # Run prompt + + # Media + slurp # Select a region (used in the coordinates for grim/maim) + grim # Screenshot utility + #maim # Screenshot utility + wf-recorder # Screen recorder + + # Idle + swayidle # Idle management daemon + swaylock # Screen locker + + + # LF + lf # A terminal file manager inspired by ranger + + # Functions + broot # Fuzzy Search + tree + cd + dragon-drop # Simple drag-and-drop source/sink + trash-cli # Command line trashcan (recycle bin) interface + + # Previewer + chafa # Image-to-text converter + highlight # source code highlighter + mediainfo # Supplies technical and tag information about a video or audio file + w3m # Text-based Web browser as well as pager + ffmpegthumbnailer # video thumbnailer that can be used by file managers + + # Media + # Download + yt-dlp # A youtube-dl fork with additional features and fixes + #cclive # Commandline downloader for popular video websites. + + # Manipulate + ffmpeg # Complete solution to record, convert and stream audio and video + + # View + imv # Image viewer + mpv # media player + + # Listen + moc # An ncurses console audio player designed to be powerful and easy to use + pavucontrol # PulseAudio Volume Control + pipewire-alsa # Low-latency audio/video router and processor - ALSA configuration + pipewire-jack # Low-latency audio/video router and processor - JACK support + pipewire-pulse # Low-latency audio/video router and processor - PulseAudio replacement + + # Hardware + # Boot + efibootmgr # Linux user-space application to modify the EFI Boot Manager + grub # GNU GRand Unified Bootloader (2) + + # Storage + compsize # Calculate compression ratio of a set of files on Btrfs + smartmontools # Control and monitor S.M.A.R.T. enabled ATA and SCSI Hard Drives + + # Input + piper # GTK application to configure gaming mice + + # Printer + gutenprint # Top quality printer drivers for POSIX systems + sane-airscan # SANE - SANE backend for AirScan (eSCL) and WSD document scanners + + # CPU + cpupower # Linux kernel tool to examine and tune power saving related features of your processor + + # Zsh + zsh # A very advanced and programmable command interpreter (shell) for UNIX + zsh-syntax-highlighting # Fish shell like syntax highlighting for Zsh + # next one only works if your alias is only a command, e.g. if you `alias='cat some_file.txt &2> /dev/null'`, running `cat some_file.txt` won't trigger it. + # TODO find something better for this use case + # zsh-you-should-use # ZSH plugin that reminds you to use existing aliases for commands you just typed + + # Core Utils + file # File type identification utility + grep # A string search utility + sudo # Give certain users the ability to run some commands as root + wget # Network utility to retrieve files from the Web + which # A utility to show the full path of commands + + # File listers + tree # A directory listing program displaying a depth indented list of files + findutils # GNU utilities to locate files + fd # Simple, fast and user-friendly alternative to find + ripgrep # A search tool that combines the usability of ag with the raw speed of grep + + # {Un}Compressors + zip # Compressor/archiver for creating and modifying zipfiles + gzip # GNU compression utility + p7zip # Command-line file archiver with high compression ratio + unzip # For extracting and viewing files in .zip archives + + # Editors + ed # A POSIX-compliant line-oriented text editor + sed # GNU stream editor + vi # The original ex/vi text editor + neovim # Fork of Vim aiming to improve user experience, plugins, and GUIs + + # Programming + # General Tools + git # the fast distributed version control system + git-bug # Distributed, offline-first bug tracker embedded in git, with bridges + glow # Command-line markdown renderer + strace # A diagnostic, debugging and instructional userspace tracer + tokei # A blazingly fast CLOC (Count Lines Of Code) program + + # Rust + rustup # The Rust toolchain installer + rust-analyzer # Rust compiler front-end for IDEs + + # Yaml + yamllint # Linter for YAML files + + # TeX + zathura # Minimalistic document viewer + zathura-pdf-poppler # Adds pdf support to zathura by using the poppler engine + ltex-ls-bin # LTeX Language Server + biber # A Unicode-capable BibTeX replacement for biblatex users + pandoc # Conversion between markup formats + + # Web + vscode-langservers-extracted # Language servers extracted from VSCode. + dart-sass # Sass makes CSS fun again + prettier # An opinionated code formatter for JS, JSON, CSS, YAML and much more + + # Shell + dash # POSIX compliant shell that aims to be as small as possible + shellcheck # Shell script analysis tool + + # Lua + lua # Powerful lightweight programming language designed for extending applications + lua-format # LuaFormatter - Code formatter for Lua + lua-language-server # Lua Language Server coded by Lua + + # R + r # Language and environment for statistical computing and graphics + + +#expect # A tool for automating interactive applications +#handlr # Powerful alternative to xdg-utils written in Rust +#linux # The Linux kernel and modules +#linux-firmware # Firmware files for Linux +#packagekit-qt5 # Qt5 bindings for PackageKit +#vulkan-radeon # Radeon's Vulkan mesa driver +#xorg-bdftopcf # Convert X font from Bitmap Distribution Format to Portable Compiled Format diff --git a/system/packages.nix b/system/packages.nix new file mode 100644 index 00000000..1acba85e --- /dev/null +++ b/system/packages.nix @@ -0,0 +1,86 @@ +{ + config, + pkgs, + ... +}: { + environment.systemPackages = with pkgs; [ + (builtins.readFile ./packages.conf) # TODO could work + ]; +} +# QEMU +# TEX +# {{{ +#adobe-source-han-sans-kr-fonts # Adobe Source Han Sans Subset OTF - Korean OpenType/CFF fonts +#alsa-utils # Advanced Linux Sound Architecture - Utilities +#element-desktop # Glossy Matrix collaboration client — desktop version. +#gawk # GNU version of awk +#gimp # GNU Image Manipulation Program +#git-lfs # Git extension for versioning large files +#gnome-epub-thumbnailer # Thumbnailer for EPub and MOBI books +#gnumeric # A GNOME Spreadsheet Program +#gpick # Advanced color picker written in C++ using GTK+ toolkit +#gradle # Powerful build system for the JVM +#groff # GNU troff text-formatting system +#jre11-openjdk-headless # OpenJDK Java 11 headless runtime environment +#klavaro # Free touch typing tutor program +#lifeograph # Private journal, diary and note taking application +#lynx # A text browser for the World Wide Web +#man-db # A utility for reading man pages +#networkmanager # Network connection manager and user applications +#nss-mdns # glibc plugin providing host name resolution via mDNS +#python-spotdl # Download your Spotify playlists and songs along with album art and metadata (from YouTube if a match is found). +#python-xlsx2csv # xlsx to csv converter +#ruff # An extremely fast Python linter, written in Rust +#signal-desktop # Signal Private Messenger for Linux +#slides # Terminal based presentation tool +#torbrowser-launcher # Securely and easily download, verify, install, and launch Tor Browser in Linux +#web-ext # A command line tool to help build, run, and test web extensions +#wkhtmltopdf # Command line tools to render HTML into PDF and various image formats +#xcursor-bluecurve # Redhat's Bluecurve X mouse cursor theme +# XORG +#xorg-docs # X.org documentations +#xorg-font-util # X.Org font utilities +#xorg-fonts-100dpi # X.org 100dpi fonts +#xorg-fonts-75dpi # X.org 75dpi fonts +#xorg-fonts-encodings # X.org font encoding files +#xorg-iceauth # ICE authority file utility +#xorg-mkfontscale # Create an index of scalable font files for X +#xorg-server # Xorg X server +#xorg-server-common # Xorg server common files +#xorg-server-devel # Development files for the X.Org X server +#xorg-server-xephyr # A nested X server that runs as an X application +#xorg-server-xnest # A nested X server that runs as an X application +#xorg-server-xvfb # Virtual framebuffer X server +#xorg-sessreg # Register X sessions in system utmp/utmpx databases +#xorg-setxkbmap # Set the keyboard using the X Keyboard Extension +#xorg-smproxy # Allows X applications that do not support X11R6 session management to participate in an X11R6 session +#xorg-x11perf # Simple X server performance benchmarker +#xorg-xauth # X.Org authorization settings program +#xorg-xbacklight # RandR-based backlight control application +#xorg-xcmsdb # Device Color Characterization utility for X Color Management System +#xorg-xcursorgen # Create an X cursor file from PNG images +#xorg-xdpyinfo # Display information utility for X +#xorg-xdriinfo # Query configuration information of DRI drivers +#xorg-xev # Print contents of X events +#xorg-xgamma # Alter a monitor's gamma correction +#xorg-xhost # Server access control program for X +#xorg-xinit # X.Org initialisation program +#xorg-xinput # Small commandline tool to configure devices +#xorg-xkbcomp # X Keyboard description compiler +#xorg-xkbevd # XKB event daemon +#xorg-xkbutils # XKB utility demos +#xorg-xkill # Kill a client by its X resource +#xorg-xlsatoms # List interned atoms defined on server +#xorg-xlsclients # List client applications running on a display +#xorg-xmodmap # Utility for modifying keymaps and button mappings +#xorg-xpr # Print an X window dump from xwd +#xorg-xrandr # Primitive command line interface to RandR extension +#xorg-xrdb # X server resource database utility +#xorg-xrefresh # Refresh all or part of an X screen +#xorg-xsetroot # Classic X utility to set your root window background to a given pattern or color +#xorg-xvinfo # Prints out the capabilities of any video adaptors associated with the display that are accessible through the X-Video extension +#xorg-xwayland # run X clients under wayland +#xorg-xwininfo # Command-line utility to print information about windows on an X server +#xorg-xwud # X Window System image undumping utility +# }}} + diff --git a/system/users.nix b/system/users.nix new file mode 100644 index 00000000..ca2fc352 --- /dev/null +++ b/system/users.nix @@ -0,0 +1,17 @@ +{ + config, + pkgs, + ... +}: { + users = { + mutableUsers = false; + users.soispha = { + isNormalUser = true; + home = "/home/soispha"; + shell = pkgs.zsh; + initialHashedPassword = "$y$jFT$ONrCqZIJKB7engmfA4orD/$0GO58/wV5wrYWj0cyONhyujZPjFmbT0XKtx2AvXLG0B"; + extraGroups = ["wheel"]; + uid = 1000; + }; + }; +} |