2024-11-11 05:01:57 +00:00
# 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 , . . . }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
# <home-manager/nixos>
] ;
2024-11-12 13:39:04 +00:00
# List packages installed in system profile. To search, run:
# $ nix search wget
environment . systemPackages = with pkgs ; [
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
# wget
2024-11-19 04:27:05 +00:00
birdtray
2024-11-12 13:39:04 +00:00
bitwarden-cli
bitwarden-desktop
bitwarden-menu
brave
btop
calibre
2024-11-14 14:38:01 +00:00
contrast
2024-11-12 13:39:04 +00:00
curl
ddev
diffr
docker
fish
fishPlugins . done
firefoxpwa
fsearch
gimp-with-plugins
git
git-open
gnucash
2024-11-14 20:26:43 +00:00
gnumake
2024-11-28 16:25:44 +00:00
hunspell
hunspellDicts . en_US-large
hunspellDicts . es_MX
2024-12-04 03:39:28 +00:00
jq
2024-11-12 13:39:04 +00:00
kdePackages . filelight
kdePackages . isoimagewriter
2024-11-30 14:41:40 +00:00
# kdePackages.kdenetwork-filesharing
# kdePackages.keysmith
2024-11-12 13:39:04 +00:00
kdePackages . konqueror
2024-11-14 00:40:34 +00:00
kdePackages . krecorder
2024-12-02 02:15:07 +00:00
kdePackages . kruler
2024-11-12 13:39:04 +00:00
kdePackages . partitionmanager
keepassxc
2024-11-26 17:36:16 +00:00
kirc
2024-11-26 20:22:35 +00:00
libreoffice-qt6-still
2024-11-15 20:11:43 +00:00
# light
2024-11-12 13:39:04 +00:00
magic-wormhole
meld
mkcert
2024-11-28 16:27:48 +00:00
mmv
2024-11-12 13:39:04 +00:00
neovim
nextcloud-client
# nfs-utils
nix-search-cli
php # does PHP 8.2 currently and there's php81, php83, and php84 alternatives
2024-11-25 17:54:46 +00:00
( python3 . withPackages ( ps : with ps ; [ numpy pandas python-dotenv ] ) ) # https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks/python.section.md#environment-defined-in-etcnixosconfigurationnix-environment-defined-in-etcnixosconfigurationnix (note this is literally the last thing they wanted me to do, would rather it not be global)
2024-11-12 13:39:04 +00:00
recoll
2024-11-15 20:13:39 +00:00
reveal-md
2024-11-19 17:19:45 +00:00
rofi
2024-11-12 13:39:04 +00:00
samba
2024-11-14 01:07:24 +00:00
slack
2024-11-12 13:39:04 +00:00
signal-desktop
strawberry-qt6
thunderbird
2024-11-14 20:25:26 +00:00
transmission_4-qt
2024-11-12 13:39:04 +00:00
trashy
2024-11-16 00:27:44 +00:00
vimPlugins . vim-fetch
2024-11-12 13:39:04 +00:00
vimPlugins . vim-wayland-clipboard
wget
whois
2024-11-14 01:07:54 +00:00
vlc
2024-11-12 13:39:04 +00:00
vscodium
wl-clipboard-rs
2024-11-14 01:07:54 +00:00
yt-dlp
2024-11-12 13:39:04 +00:00
zoxide
zulip
zulip-term
] ;
environment . pathsToLink = [ " / s h a r e / f i s h " ] ;
2024-12-04 02:10:01 +00:00
# Add ~/.local/bin/ to $PATH
environment . localBinInPath = true ;
2024-11-20 16:46:04 +00:00
# Needed for Slack but probably helps other stuff too.
# See https://wiki.nixos.org/wiki/Slack
environment . sessionVariables . NIXOS_OZONE_WL = " 1 " ;
2024-11-12 13:39:04 +00:00
# Make it possible for ddev to modify the /etc/hosts file.
# Otherwise you'll have to manually change the
# hosts configuration after creating a new ddev project.
environment . etc . hosts . mode = " 0 6 4 4 " ;
2024-11-11 05:01:57 +00:00
# Bootloader.
boot . loader . systemd-boot . enable = true ;
boot . loader . efi . canTouchEfiVariables = true ;
networking . hostName = " n i x o s " ; # 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";
# Enable networking
networking . networkmanager . enable = true ;
# Set your time zone.
time . timeZone = " A m e r i c a / N e w _ Y o r k " ;
# Select internationalisation properties.
i18n . defaultLocale = " e n _ U S . U T F - 8 " ;
i18n . extraLocaleSettings = {
LC_ADDRESS = " e n _ U S . U T F - 8 " ;
LC_IDENTIFICATION = " e n _ U S . U T F - 8 " ;
LC_MEASUREMENT = " e n _ U S . U T F - 8 " ;
LC_MONETARY = " e n _ U S . U T F - 8 " ;
LC_NAME = " e n _ U S . U T F - 8 " ;
LC_NUMERIC = " e n _ U S . U T F - 8 " ;
LC_PAPER = " e n _ U S . U T F - 8 " ;
LC_TELEPHONE = " e n _ U S . U T F - 8 " ;
LC_TIME = " e n _ U S . U T F - 8 " ;
} ;
# Via https://github.com/NixOS/nixos-hardware/tree/master/framework
services . fwupd . enable = true ;
services . fwupd . extraRemotes = [ " l v f s - t e s t i n g " ] ;
# Might be necessary once to make the update succeed
services . fwupd . uefiCapsuleSettings . DisableCapsuleUpdateOnDisk = true ;
# Enable the X11 windowing system.
# You can disable this if you're only using the Wayland session.
services . xserver . enable = true ;
# Enable the KDE Plasma Desktop Environment.
services . displayManager . sddm . enable = true ;
services . desktopManager . plasma6 . enable = true ;
# Configure keymap in X11
services . xserver . xkb = {
layout = " u s " ;
variant = " d v o r a k - a l t - i n t l " ;
} ;
# Configure console keymap
console . keyMap = " d v o r a k " ;
# Enable CUPS to print documents.
2024-11-30 14:41:40 +00:00
# services.printing.enable = true;
2024-11-11 05:01:57 +00:00
# Enable sound with pipewire.
hardware . pulseaudio . enable = false ;
security . rtkit . enable = true ;
# Enable samba network filesharing in Dolphin
# security.wrappers = {
# mount.source = "${pkgs.utillinux}/bin/mount";
# umount.source = "${pkgs.utillinux}/bin/umount";
#};
#security.wrappers."mount.nfs".source = "${pkgs.nfs-utils.out}/bin/mount.nfs";
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;
} ;
# Install & enable docker.
virtualisation . docker . enable = true ;
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with ‘ passwd’ .
users . users . mlncn = {
isNormalUser = true ;
description = " m l n c n " ;
extraGroups = [ " n e t w o r k m a n a g e r " " w h e e l " " d o c k e r " ] ;
packages = with pkgs ; [
2024-12-04 02:09:31 +00:00
discord
2024-11-11 05:01:57 +00:00
kdePackages . kate
logseq
] ;
# Per Chris for SSHing from the old machine to here
openssh . authorizedKeys . keys = [ " s s h - e d 2 5 5 1 9 s s h - e d 2 5 5 1 9 A A A A C 3 N z a C 1 l Z D I 1 N T E 5 A A A A I I c / p c 2 o L 8 0 X j I e e a z z T 5 Y O C r E a P W 7 u o h A / q l m G r 5 c M 6 m l n c n @ d 6 4 " ] ;
} ;
# home-manager.users.mlncn = { pkgs, ... }: {
# home.packages = [
# pkgs.atool
# pkgs.httpie
# ];
# programs.bash.enable = true;
# programs.fish.enable = true;
# The state version is required and should stay at the version you
# originally installed.
# home.stateVersion = "24.05";
# };
# home-manager.useUserPackages = true;
# home-manager.useGlobalPkgs = true;
# Install firefox.
programs . firefox . enable = true ;
programs . firefox . nativeMessagingHosts . packages = [ pkgs . firefoxpwa ] ;
programs . fish . enable = true ;
programs . bash = {
interactiveShellInit = ''
if [ [ $ ( $ { pkgs . procps } /bin/ps - - no-header - - pid = $ PPID - - format = comm ) != " f i s h " && - z '' ${ BASH_EXECUTION_STRING } ] ]
then
shopt - q login_shell && LOGIN_OPTION = ' - - login' || LOGIN_OPTION = " "
exec $ { pkgs . fish } /bin/fish $ LOGIN_OPTION
fi
'' ;
} ;
# Allow unfree packages
nixpkgs . config . allowUnfree = true ;
# TODO remove this when Logseq gets its act together
nixpkgs . config . permittedInsecurePackages = [
" e l e c t r o n - 2 7 . 3 . 1 1 "
] ;
# 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 ;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
networking . firewall . allowedTCPPorts = [ 9003 ] ;
# 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 = " 2 4 . 0 5 " ; # Did you read the comment?
}