nix/configuration.nix

456 lines
10 KiB
Nix
Raw Normal View History

2022-10-28 01:03:45 +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).
2023-04-16 15:03:08 +00:00
{ config, pkgs, kaokao, tree-sitter-typst, ... }:
2022-10-28 01:03:45 +00:00
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
2023-03-15 22:44:26 +00:00
nixpkgs.config.permittedInsecurePackages = [
"python-2.7.18.6"
2024-01-04 10:58:57 +00:00
# "electron-22.3.27"
"electron-25.9.0"
2023-08-12 17:52:24 +00:00
# "electron-16.2.3"
];
2023-09-28 23:47:31 +00:00
networking.hostName = "queer-utopia";
2023-12-06 12:05:54 +00:00
programs.dconf.enable = true;
services.gnome.evolution-data-server.enable = true;
2023-03-15 22:44:26 +00:00
2022-10-28 01:03:45 +00:00
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
2023-09-28 23:47:31 +00:00
#boot.loader.systemd-boot.configurationLimit = 42;
#boot.loader.efi.efiSysMountPoint = "/boot/efi";
2023-04-16 15:03:08 +00:00
boot.kernelPackages = pkgs.linuxPackages_latest;
environment.sessionVariables = {
DOTNET_ROOT = "${pkgs.dotnet-sdk}";
};
services.flatpak.enable = true;
2023-09-07 00:41:37 +00:00
xdg.portal = {
enable = true;
};
2023-09-28 23:47:31 +00:00
2023-04-16 15:03:08 +00:00
services.udev.enable = true;
services.udev.packages = [pkgs.arduino];
2022-10-28 01:03:45 +00:00
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
2023-03-15 22:44:26 +00:00
# enables flakes
nix.settings.experimental-features = ["nix-command" "flakes"];
2022-10-28 01:03:45 +00:00
# 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;
2023-08-12 17:52:24 +00:00
services.devmon.enable = true;
services.gvfs.enable = true;
services.tumbler.enable = true;
services.udisks2.enable = true;
2022-10-28 01:03:45 +00:00
# Set your time zone.
time.timeZone = "Europe/Oslo";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.utf8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "nb_NO.utf8";
LC_IDENTIFICATION = "nb_NO.utf8";
LC_MEASUREMENT = "nb_NO.utf8";
LC_MONETARY = "nb_NO.utf8";
LC_NAME = "nb_NO.utf8";
LC_NUMERIC = "nb_NO.utf8";
LC_PAPER = "nb_NO.utf8";
LC_TELEPHONE = "nb_NO.utf8";
LC_TIME = "nb_NO.utf8";
};
2024-01-04 10:58:57 +00:00
# enable wireguard
networking.firewall.enable = true;
networking.firewall = {
# if packets are still dropped, they will show up in dmesg
logReversePathDrops = true;
# wireguard trips rpfilter up
extraCommands = ''
ip46tables -t mangle -I nixos-fw-rpfilter -p udp -m udp --sport 51820 -j RETURN
ip46tables -t mangle -I nixos-fw-rpfilter -p udp -m udp --dport 51820 -j RETURN
'';
extraStopCommands = ''
ip46tables -t mangle -D nixos-fw-rpfilter -p udp -m udp --sport 51820 -j RETURN || true
ip46tables -t mangle -D nixos-fw-rpfilter -p udp -m udp --dport 51820 -j RETURN || true
'';
};
2022-10-28 17:33:32 +00:00
2023-01-21 19:02:55 +00:00
# Enable the i3 and keyboard
2023-02-20 02:47:24 +00:00
console.keyMap = "dvorak-programmer";
2022-10-28 01:03:45 +00:00
services.xserver = {
enable = true;
2023-01-21 19:02:55 +00:00
# i3
2023-08-12 17:52:24 +00:00
#displayManager.defaultSession = "";
#desktopManager = {
# xterm.enable = false;
# xfce = {
# enable = true;
# noDesktop = true;
# enableXfwm = false;
# };
#};
2022-10-28 17:33:32 +00:00
desktopManager = {
2023-09-05 16:32:32 +00:00
plasma5.enable = true;
#xterm.enable = false;
2022-10-28 01:03:45 +00:00
};
2023-08-12 17:52:24 +00:00
displayManager = {
2023-09-05 16:32:32 +00:00
sddm.enable = true;
defaultSession = "plasmawayland";
# startx.enable = true;
2022-10-28 01:03:45 +00:00
};
2023-09-05 16:32:32 +00:00
#windowManager.i3 = {
# enable = true;
#};
2022-10-28 05:07:36 +00:00
2022-10-28 01:03:45 +00:00
};
2022-10-28 17:33:32 +00:00
2023-08-12 17:52:24 +00:00
services.picom.enable = true;
#services.xserver.wacom.enable = true;
#xdg.mime.defaultApplications = {
#"text/html" = "org.qutebrowser.qutebrowser.desktop";
#"x-scheme-handler/http" = "org.qutebrowser.qutebrowser.desktop";
#"x-scheme-handler/https" = "org.qutebrowser.qutebrowser.desktop";
#"x-scheme-handler/about" = "org.qutebrowser.qutebrowser.desktop";
#"x-scheme-handler/unknown" = "org.qutebrowser.qutebrowser.desktop";
#};
2023-09-05 16:32:32 +00:00
# enable the fish
#users.users.lotte.shell = pkgs.fish;
users.defaultUserShell = pkgs.fish;
programs.fish.enable = true;
2022-10-28 01:03:45 +00:00
# enable the steam
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
};
2024-01-04 10:58:57 +00:00
programs.streamdeck-ui = {
enable = true;
autoStart = true;
};
2022-10-28 01:03:45 +00:00
environment.sessionVariables = rec {
STEAM_EXTRA_COMPAT_TOOLS_PATHS = "\${HOME}/.steam/root/compatibilitytools.d";
PATH = [
"\${HOME}/.local/bin"
];
};
2023-01-21 19:02:55 +00:00
services.mullvad-vpn.enable = true;
2022-10-28 01:03:45 +00:00
#enable the joycond
services.joycond.enable = true;
#enable bluetooth
hardware.bluetooth.enable = true;
services.blueman.enable = true;
# Configure keymap in X11
services.xserver = {
2023-01-28 12:43:19 +00:00
layout = "us";
xkbVariant = "dvp";
2023-08-12 17:52:24 +00:00
xkbOptions = "compose:102,numpad:shift3,kpdl:semi,keypad:atm,caps:shift,lv3:ralt_switch";
2022-10-28 01:03:45 +00:00
};
# Enable CUPS to print documents.
services.printing.enable = true;
2024-01-04 10:58:57 +00:00
virtualisation.docker.enable = true;
virtualisation.docker.rootless = {
enable = true;
setSocketVariable = true;
};
2022-10-28 01:03:45 +00:00
# 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).
2023-01-21 19:02:55 +00:00
services.xserver.libinput.enable = true;
2022-10-28 01:03:45 +00:00
# Define a user account. Don't forget to set a password with passwd.
2023-08-12 17:52:24 +00:00
users.users.lotte = {
2022-10-28 01:03:45 +00:00
isNormalUser = true;
2023-08-12 17:52:24 +00:00
description = "lotte";
2024-01-04 10:58:57 +00:00
extraGroups = [ "networkmanager" "wheel" "dialout" "storage" "docker" ];
2022-10-28 01:03:45 +00:00
packages = with pkgs; [
firefox
# thunderbird
];
};
2022-11-18 17:08:31 +00:00
services.gnome.at-spi2-core.enable = true;
2022-10-28 01:03:45 +00:00
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
2022-10-28 12:19:34 +00:00
# terminal
2023-08-12 17:52:24 +00:00
alacritty
fish
2022-11-30 02:58:22 +00:00
any-nix-shell
2022-10-28 12:19:34 +00:00
# window manager & theming stuff
2023-09-05 16:32:32 +00:00
#i3
#sway
#autotiling
2022-10-28 12:19:34 +00:00
rofi
2023-09-05 16:32:32 +00:00
#i3status-rust
#lxappearance
#feh
2023-03-15 22:44:26 +00:00
kaokao.packages.${pkgs.system}.default
2023-09-05 16:32:32 +00:00
#tree-sitter-typst
libsForQt5.bismuth
2022-10-28 12:19:34 +00:00
# streaming / gamign
2023-08-12 17:52:24 +00:00
parsec-bin
2022-10-28 12:19:34 +00:00
steam
2023-08-12 17:52:24 +00:00
lutris-unwrapped
2022-10-28 12:19:34 +00:00
joycond
2022-11-01 04:09:27 +00:00
wineWowPackages.stable
winetricks
2022-11-30 02:47:38 +00:00
flitter
2023-01-21 19:02:55 +00:00
duckstation
2023-01-28 12:41:53 +00:00
minetest
airshipper
2023-02-20 02:56:50 +00:00
prismlauncher
2023-08-12 17:52:24 +00:00
freesweep
2023-09-06 02:26:00 +00:00
libsForQt5.ksudoku
libsForQt5.kblocks
2023-09-13 17:40:50 +00:00
unixtools.quota
2024-01-04 10:58:57 +00:00
deckmaster
2022-10-28 12:19:34 +00:00
2022-11-30 02:58:22 +00:00
# management
xsel
2023-08-12 17:52:24 +00:00
dunst
clipman
xclip
2023-09-05 16:32:32 +00:00
#xfce.xfce4-power-manager
#xfce.xfce4-screenshooter
2022-11-30 02:58:22 +00:00
# file
2023-08-12 17:52:24 +00:00
du-dust
2022-11-30 02:58:22 +00:00
# audio
pavucontrol
2023-08-12 17:52:24 +00:00
# email
2023-09-05 16:32:32 +00:00
libsForQt5.kmail
2023-12-06 12:05:54 +00:00
# calendar
gnome.gnome-calendar
2023-01-28 12:41:53 +00:00
2022-10-28 12:19:34 +00:00
#progaming
git
2023-04-16 15:03:08 +00:00
unstable.helix
2023-12-06 12:05:54 +00:00
godot_4
2022-11-30 02:58:22 +00:00
nodejs
2024-01-04 10:58:57 +00:00
nodePackages.vls
nodePackages.volar
2023-04-16 15:03:08 +00:00
python310
2023-09-28 23:47:31 +00:00
mold
2024-01-04 10:58:57 +00:00
(ruby.withPackages (ps: with ps; [ rails ]))
bundix
rubyPackages.rails
sqlite
gcc
2023-04-16 15:03:08 +00:00
arduino
2023-08-12 17:52:24 +00:00
# rust
rustup
2023-12-06 12:05:54 +00:00
rocmPackages.llvm.clang
rocmPackages.llvm.llvm
2023-09-28 23:47:31 +00:00
llvmPackages.bintools
2023-08-12 17:52:24 +00:00
libclang
2023-01-28 12:41:53 +00:00
#language servers
rust-analyzer
2023-12-06 12:05:54 +00:00
rubyPackages.solargraph
rubocop
rufo
2023-01-28 12:41:53 +00:00
lldb #not a langage server but w/e
nodePackages.vscode-langservers-extracted
2023-09-28 23:47:31 +00:00
#vscodium + extensions
2024-01-04 10:58:57 +00:00
vscode
2022-10-28 12:19:34 +00:00
# creative
gimp
2022-10-29 01:34:27 +00:00
libsForQt5.kdenlive
2024-01-04 10:58:57 +00:00
glaxnimate
2023-01-29 21:24:14 +00:00
aseprite-unfree
2023-01-21 19:02:55 +00:00
darktable
2023-04-16 15:03:08 +00:00
krita
blender
2023-08-12 17:52:24 +00:00
blockbench-electron
xf86_input_wacom
wacomtablet
fontforge
inkscape
2023-04-16 15:03:08 +00:00
# vrchat
dotnet-sdk
#dotnet-runtime
2022-10-28 12:19:34 +00:00
# university
2023-04-16 15:03:08 +00:00
unstable.typst
2022-11-18 17:08:31 +00:00
pgadmin4
postgresql
2022-11-09 13:44:13 +00:00
# java
2022-11-18 17:08:31 +00:00
jdk
2023-01-21 19:02:55 +00:00
eclipses.eclipse-java
2022-10-28 12:19:34 +00:00
# assembly
nasm
2023-08-12 17:52:24 +00:00
#gcc
2022-10-28 12:19:34 +00:00
gdb
2023-08-12 17:52:24 +00:00
# i am 10 and i want to donwload and play/hear the movies
2023-01-21 19:02:55 +00:00
mullvad
2022-11-30 02:58:22 +00:00
mullvad-vpn
qbittorrent
yt-dlp
2023-08-12 17:52:24 +00:00
cmus
cmusfm
2024-01-04 10:58:57 +00:00
clementine
2023-08-12 17:52:24 +00:00
syncplay
tor-browser-bundle-bin
flatpak
mpv
2023-09-06 17:18:28 +00:00
# xfce.ristretto
2023-12-06 12:05:54 +00:00
ffmpeg-full
2023-08-12 17:52:24 +00:00
# messageing n shit
ungoogled-chromium
discord
telegram-desktop
2023-12-06 12:05:54 +00:00
session-desktop
element-desktop
2022-11-30 02:58:22 +00:00
2023-08-12 17:52:24 +00:00
#essentials
2022-10-28 12:19:34 +00:00
syncthing
keepassxc
2023-02-16 04:37:50 +00:00
calc
2023-08-12 17:52:24 +00:00
libwebp
2023-02-20 02:47:24 +00:00
libnotify
2023-08-12 17:52:24 +00:00
sox
2023-02-20 02:47:24 +00:00
coreutils
2023-08-12 17:52:24 +00:00
bat
htop
xorg.xkill
# other
neofetch
gnome.gnome-keyring
newsboat
2023-03-05 07:27:32 +00:00
anki-bin
2023-08-12 17:52:24 +00:00
projectm
libsForQt5.okular
picard
xfce.mousepad
xdotool
2023-09-05 16:32:32 +00:00
audacity
playerctl
gnome.adwaita-icon-theme
tela-circle-icon-theme
papirus-folders
libsForQt5.kdeplasma-addons
2023-09-07 18:21:55 +00:00
unstable.obs-cli
2023-09-13 17:40:50 +00:00
unstable.libsForQt5.neochat
libsForQt5.tokodon
2024-01-04 10:58:57 +00:00
libimobiledevice
ifuse
2022-10-28 01:03:45 +00:00
];
2023-01-21 19:02:55 +00:00
2022-10-28 01:03:45 +00:00
#Fonts
fonts = {
2023-12-06 12:05:54 +00:00
packages = with pkgs; [
2022-10-28 01:03:45 +00:00
mononoki
2023-03-05 07:27:32 +00:00
monocraft
2022-10-28 01:03:45 +00:00
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
2022-10-29 03:34:44 +00:00
arkpandora_ttf
2022-11-09 11:59:46 +00:00
atkinson-hyperlegible
andika
2022-10-28 01:03:45 +00:00
];
fontconfig = {
defaultFonts = {
serif = [ "mononoki" ];
sansSerif = [ "mononoki" ];
monospace = [ "mononoki" ];
};
};
};
# bvun
2023-08-12 17:52:24 +00:00
environment.variables.EDITOR = "hx";
2022-10-28 01:03:45 +00:00
2022-10-29 03:34:44 +00:00
programs.geary.enable = true;
services.gnome.gnome-keyring.enable = true;
2022-11-09 11:59:46 +00:00
# matlab
nixpkgs.overlays = let
nix-matlab = import (builtins.fetchTarball "https://gitlab.com/doronbehar/nix-matlab/-/archive/master/nix-matlab-master.tar.gz");
in [
nix-matlab.overlay
];
2022-10-28 01:03:45 +00:00
# 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;
# 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. Its 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).
2023-09-28 23:47:31 +00:00
# system.stateVersion = "22.05"; # Did you read the comment?
2022-10-28 01:03:45 +00:00
}