# 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 ]; # Bootloader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; boot.initrd.luks.devices."luks-1cd83c7a-abab-419f-8e7b-c907f234a00f".device = "/dev/disk/by-uuid/1cd83c7a-abab-419f-8e7b-c907f234a00f"; networking.hostName = "lena"; # Define your hostname. # 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"; }; # Configure keymap in X11 services.xserver.enable = true; services.xserver = { layout = "de"; xkbVariant = ""; }; # Configure console keymap console.keyMap = "de"; # TODO: setup automounting of nextcloud # services.davfs2.enable = true; # fileSystems."/home/forestcat/nextcloud" = { # device = "https://cloud.hamburg.ccc.de/remote.php/dav/files/forestcat/"; # mountPoint = "/home/forestcat/nextcloud"; # fsType = "davfs"; # options = ["user" "rw" "auto"]; # }; # Enabling xbindkeys service for special media keys systemd.user.services.xbindkeys.enable = true; # Enabling Audio sound.enable = true; hardware.pulseaudio.enable = true; hardware.pulseaudio.support32Bit = true; hardware.pulseaudio.package = pkgs.pulseaudioFull; programs.zsh.enable = true; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.forestcat = { isNormalUser = true; description = "forestcat"; extraGroups = ["networkmanager" "wheel" "audio" "davfs2" "video"]; packages = with pkgs; []; shell = pkgs.zsh; }; # users.defaultUserShell = pkgs.zsh; # Allow unfree packages nixpkgs.config.allowUnfree = true; #adding font awesome fonts.packages = with pkgs; [ font-awesome font-awesome_5 nerdfonts nerdfix material-symbols terminus-nerdfont inconsolata-nerdfont fira-code-nerdfont ]; # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ # System Packages go here brave nextcloud-client davfs2 htop picom-jonaburg spotify xdotool vscodium vscode scrot imagemagick # papirus-nord # papirus-icon-theme signal-desktop tree # rofi # polybarFull # i3 # i3lock-color prismlauncher alejandra keepassxc # kitty swww rofi-wayland waybar dunst firefox keepassxc lf networkmanagerapplet discord element-desktop wget helix unzip tldr steam git # awesome neofetch pulseaudioFull pavucontrol lxappearance lxappearance-gtk2 xorg.xev xfce.xfce4-pulseaudio-plugin # xbindkeys # xbindkeys-config traceroute # xorg.xinit nil alacritty # gpu accelerated terminal dbus # make dbus-update-activation-environment available in the path # wayland xdg-utils # for opening default programs when clicking links glib # gsettings dracula-theme # gtk theme gnome3.adwaita-icon-theme # default gnome cursors swaylock swayidle grim # screenshot functionality slurp # screenshot functionality wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout; for selection screenshots do: grim -l 0 -g "$(slurp)" - | wl-clipboard bemenu # wayland clone of dmenu mako # notification system developed by swaywm maintainer wdisplays # tool to configure displays waybar ]; # 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. 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? # Enabling wayland programs.sway = { enable = true; wrapperFeatures.gtk = true; extraSessionCommands = '' export LIBSEAT_BACKEND=logind export _JAVA_AWT_WM_NONREPARENTING=1 ''; }; xdg.portal.enable = true; xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-hyprland]; # services.xserver.wayland.enable = true; services.xserver.desktopManager.xfce.enable = true; # services.xserver.windowManager.i3.enable = true; # services.xserver.windowManager.i3.configFile = "./local-configs/config"; # Enable Flatpack support services.flatpak.enable = true; # Enabling LightDM services.xserver.displayManager.gdm.enable = true; # Hyperland programs.hyprland = { enable = true; xwayland.enable = true; }; # environment.sessionVariables = { # WLR_NO_HARDWARE_CURSORS = "1"; # if mouse cursor invisible # NIXOS_OZONE_WL = "1"; # hint electron apps to use wayland # }; hardware = { opengl.enable = true; # Enable opengl nvidia.modesetting.enable = true; }; # Enabling Pipewire for Audio Support services.pipewire.enable = true; nix.settings.experimental-features = ["nix-command" "flakes"]; services.printing.enable = true; services.logind = { extraConfig = "HandlePowerKey=suspend"; lidSwitch = "suspend"; }; services.avahi = { enable = true; nssmdns = true; openFirewall = true; }; # Automatic Garbage collection nix.gc = { automatic = true; dates = "weekly"; options = "--delete-older-than 7d"; }; #Hardwarebeschleunigung f@r wayland # hardware.opengl = { # enable = true; # driSupport = true; # extraPackages = with pkgs; [ libva libva-utils libva-intel-driver ]; # }; }