Code Monkey home page Code Monkey logo

nixcfg's Introduction

NixOS Config

This is a somewhat opinionated setup for my personal machines and servers, as well as a work laptop. The setup is as follows:

  • Desktop environment: wayland / sway / kitty
    • 2x scaling - apps configured for HiDPI
  • Audio: pipewire
  • Wireless: network manager
  • Browsers: Brave, Firefox
  • Other configured apps: Spotify, Gimp, Neovim, VSCodium, Discord, prismlauncher, Blender

To use yourself

  • Fork repo
  • Update "config.nix" with your settings
  • Rename hosts/nflx-erahhal-t490s/ and configure your host
  • Update flake.nix with the updated hostname and hardware import

To use fingerprint reader

sudo fprintd-enroll <username>

  • At SDDM login, hit enter without a password, then touch the fingerprint sensor
  • When sway is locked, also just hit enter for the password then touch the sensor

To connect to wifi

  • run nmtui

To select audio output

  • GUI
    • pavucontrol
  • command line
    • pactl list short sinks
    • pactl set-default-sink [sink name]

To pair/connect a bluetooth device

  • run blueman-manager

To update firmware/BIOS

  • Updates through this method may not be the latest - check device website
sudo fwupdmgr refresh --force
sudo fwupdmgr get-updates
sudo fwupdmgr update
sudo dmidecode -s bios-version

To see current CPU frequency

  • watch -n.1 "grep \"^[c]pu MHz\" /proc/cpuinfo"

To see current CPU scaling setting

  • cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

or

  • cpufreq-inf

To determine if C-states is enabled on a Dell

  • cctk --CStatesCtrl

To lookup available vim plugins

  • nix-env -f '<nixpkgs>' -qaP -A vimPlugins

To lookup available node packages

  • nix-env -f '<nixpkgs>' -qaP -A nodePackages

Configurable params

  • To setup monitor layout/config
    • users//modules/kanshi.nix
  • Touchpad configuration
    • mixins/sway.nix
      • config.wayland.windowManager.sway.input, "type:touchpad"
  • Thinkpad CPU scaling and battery charge limits
    • services.tlp.settings
  • To disable fingerprint login
    • services.fprintd.enable = false;
    • security.pam.services.login.fprintAuth = false;
    • security.pam.services.xscreensaver.fprintAuth = false;

Repo Layout

  • build/ - files used at nixos-rebuild time

  • containers/ - Container configs, mainly docker setups for use on a server.

  • dotfiles/ - Legacy dotfile configs that are not written in nix, but should be at a later date.

  • flakes/ - Independent flakes, in development, before they are ready to be broken out into a separate repo

  • helpers/ - Nix helper functions to assist with configuration

  • home/ - home-manager modules and configuration.

  • hosts/ - Configuration for individual machines.

  • modules/ - Custom configurable Nix modules

  • overlays/ - Existing package customizations. overlays

  • pkgs/ - Custom Packages/Derivations that aren't in nixpkgs.

  • profiles/ - Modular configurations for individual concerns. See profiles

  • overlays/ - Valid overlays included in all hosts

  • scripts/ - Scripts, or any other files to place in home directory, managed by home-manager. This is done via home.file."scripts".source = "${self}/scripts"

  • shells/ - Special Environments/Shells, for example with Yocto.

  • wallpapers/ - Background images

nixcfg's People

Contributors

erahhal avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.