···11+# Edit this configuration file to define what should be installed on
22+# your system. Help is available in the configuration.nix(5) man page
33+# and in the NixOS manual (accessible by running ‘nixos-help’).
44+55+{ config, lib, pkgs, ... }:
66+77+{
88+ # Enable the X11 windowing system.
99+ # You can disable this if you're only using the Wayland session.
1010+ services.xserver.enable = true;
1111+1212+ # Enable the KDE Plasma Desktop Environment.
1313+ services.displayManager.sddm.enable = true;
1414+ services.desktopManager.plasma6.enable = true;
1515+1616+ # Configure keymap in X11
1717+ services.xserver.xkb = {
1818+ layout = "us";
1919+ variant = "";
2020+ };
2121+2222+ # Enable CUPS to print documents.
2323+ services.printing.enable = true;
2424+2525+ # Enable touchpad support (enabled default in most desktopManager).
2626+ # services.xserver.libinput.enable = true;
2727+2828+ # Define a user account. Don't forget to set a password with ‘passwd’.
2929+ users.users.emily = {
3030+ isNormalUser = true;
3131+ description = "Emily";
3232+ extraGroups = [ "networkmanager" "wheel" "docker"];
3333+ packages = with pkgs; [
3434+ kdePackages.kate
3535+ keepassxc
3636+ ];
3737+ };
3838+3939+ # Install firefox.
4040+ programs.firefox.enable = true;
4141+4242+ environment.shellAliases = {
4343+ nv = "nvim";
4444+ };
4545+4646+4747+ programs.steam = {
4848+ enable = true;
4949+ remotePlay.openFirewall = true;
5050+ dedicatedServer.openFirewall = true;
5151+ localNetworkGameTransfers.openFirewall = true;
5252+ #platformOptimizations.enable = true;
5353+ protontricks.enable = true;
5454+5555+ };
5656+5757+ # hyprland
5858+ programs.hyprland = {
5959+ enable = true;
6060+ withUWSM = true;
6161+ };
6262+ # Some programs need SUID wrappers, can be configured further or are
6363+ # started in user sessions.
6464+ # programs.mtr.enable = true;
6565+ # programs.gnupg.agent = {
6666+ # enable = true;
6767+ # enableSSHSupport = true;
6868+ # };
6969+7070+ # List services that you want to enable:
7171+7272+ # Enable the OpenSSH daemon.
7373+ # services.openssh.enable = true;
7474+7575+ # Open ports in the firewall.
7676+ # networking.firewall.allowedTCPPorts = [ ... ];
7777+ # networking.firewall.allowedUDPPorts = [ ... ];
7878+ # Or disable the firewall altogether.
7979+ #networking.firewall.enable = false;
8080+8181+ # This value determines the NixOS release from which the default
8282+ # settings for stateful data, like file locations and database versions
8383+ # on your system were taken. It‘s perfectly fine and recommended to leave
8484+ # this value at the release version of the first install of this system.
8585+ # Before changing this value read the documentation for this option
8686+ # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
8787+ system.stateVersion = "24.05"; # Did you read the comment?
8888+8989+ i18n = {
9090+ inputMethod = {
9191+ enable = true;
9292+ type = "fcitx5";
9393+ fcitx5 = {
9494+ addons = with pkgs; [
9595+ fcitx5-mozc
9696+ fcitx5-gtk
9797+ catppuccin-fcitx5
9898+ ];
9999+100100+ };
101101+ };
102102+ };
103103+104104+ fonts.packages = with pkgs; [
105105+ noto-fonts
106106+ noto-fonts-cjk-sans
107107+ noto-fonts-emoji
108108+ ];
109109+110110+ nixpkgs.config = {
111111+ allowUnfree = true;
112112+ };
113113+114114+ ########################
115115+ # from sys/default.nix #
116116+ ########################
117117+118118+ nix = {
119119+ settings = {
120120+ experimental-features = ["nix-command" "flakes"];
121121+ };
122122+ };
123123+124124+ time.timeZone = "America/New_York";
125125+126126+ i18n = {
127127+ defaultLocale = "en_US.UTF-8";
128128+129129+ extraLocaleSettings = {
130130+ LC_ADDRESS = "en_US.UTF-8";
131131+ LC_IDENTIFICATION = "en_US.UTF-8";
132132+ LC_MEASUREMENT = "en_US.UTF-8";
133133+ LC_MONETARY = "en_US.UTF-8";
134134+ LC_NAME = "en_US.UTF-8";
135135+ LC_NUMERIC = "en_US.UTF-8";
136136+ LC_PAPER = "en_US.UTF-8";
137137+ LC_TELEPHONE = "en_US.UTF-8";
138138+ LC_TIME = "en_US.UTF-8";
139139+140140+ };
141141+ };
142142+143143+ boot= {
144144+ loader = {
145145+ systemd-boot.enable = true;
146146+ efi.canTouchEfiVariables = true;
147147+ };
148148+149149+ supportedFilesystems = [ "ntfs" ];
150150+ };
151151+152152+153153+ # feesh
154154+ programs.fish.enable = true;
155155+ users.defaultUserShell = pkgs.fish;
156156+ networking.networkmanager.enable = true;
157157+158158+ # pipewire
159159+ services.pulseaudio.enable = false;
160160+ security.rtkit.enable = true;
161161+ services.pipewire = {
162162+ enable = true;
163163+ alsa.enable = true;
164164+ alsa.support32Bit = true;
165165+ pulse.enable = true;
166166+ # If you want to use JACK applications, uncomment this
167167+ #jack.enable = true;
168168+169169+ # use the example session manager (no others are packaged yet so this is enabled by default,
170170+ # no need to redefine it in your config for now)
171171+ #media-session.enable = true;
172172+ };
173173+174174+ hardware.graphics.enable = true;
175175+ services.xserver.videoDrivers = ["nvidia"];
176176+ hardware.nvidia = {
177177+ modesetting.enable = true;
178178+ powerManagement.enable = true;
179179+ powerManagement.finegrained = false;
180180+ open = false;
181181+ nvidiaSettings = true;
182182+183183+ package = config.boot.kernelPackages.nvidiaPackages.latest;
184184+ };
185185+186186+ services.ratbagd.enable = true;
187187+188188+ services = {
189189+ syncthing = {
190190+ enable = true;
191191+ openDefaultPorts = true;
192192+ settings = {
193193+ gui = {
194194+ user = "emily";
195195+ password = "don'tfuuckingcommitthispasswordyoubsolutefool";
196196+ };
197197+198198+ devices = {
199199+ "Bismuth" = { id = "HVYM6NR-CSG4XFD-6V76ABE-TFFXKSC-Q4NWO3R-ZPGAUBP-OSMVOGD-GCASDAT"; };
200200+ };
201201+ };
202202+ };
203203+ };
204204+ services.openssh = {
205205+ enable = true;
206206+ settings.PasswordAuthentication = false;
207207+ settings.KbdInteractiveAuthentication = false;
208208+ };
209209+210210+ users.users."emily".openssh.authorizedKeys.keys = [
211211+ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBR3yUt3t1RB0QzRDBKtiY5P5gk+kCWr+7/cSVg2DO3"
212212+ ];
213213+214214+ #################
215215+ # from sys/cli/ #
216216+ #################
217217+218218+ environment.systemPackages = with pkgs; [
219219+ bat
220220+ btop
221221+ dua
222222+ figlet
223223+ git
224224+ htop
225225+ just
226226+ kitty
227227+ lolcat
228228+ p7zip
229229+ ripgrep
230230+ swayfx
231231+ tealdeer
232232+ tmux
233233+ tree
234234+ unzip
235235+ wget
236236+ wget
237237+ wofi
238238+ yazi
239239+ ];
240240+241241+ programs.neovim = {
242242+ enable = true;
243243+ configure = {
244244+ customRC = ''
245245+ nnoremap ; :
246246+ set number
247247+ set relativenumber
248248+ set expandtab
249249+ set shiftwidth=2
250250+ '';
251251+ };
252252+ viAlias = true;
253253+ vimAlias = true;
254254+ defaultEditor = true;
255255+ };
256256+257257+}
-103
configuration.nix
···11-# Edit this configuration file to define what should be installed on
22-# your system. Help is available in the configuration.nix(5) man page
33-# and in the NixOS manual (accessible by running ‘nixos-help’).
44-55-{ config, lib, pkgs, ... }:
66-77-{
88- # Enable the X11 windowing system.
99- # You can disable this if you're only using the Wayland session.
1010- services.xserver.enable = true;
1111-1212- # Enable the KDE Plasma Desktop Environment.
1313- services.displayManager.sddm.enable = true;
1414- services.desktopManager.plasma6.enable = true;
1515-1616- # Configure keymap in X11
1717- services.xserver.xkb = {
1818- layout = "us";
1919- variant = "";
2020- };
2121-2222- # Enable CUPS to print documents.
2323- services.printing.enable = true;
2424-2525- # Enable touchpad support (enabled default in most desktopManager).
2626- # services.xserver.libinput.enable = true;
2727-2828- # Define a user account. Don't forget to set a password with ‘passwd’.
2929- users.users.emily = {
3030- isNormalUser = true;
3131- description = "Emily";
3232- extraGroups = [ "networkmanager" "wheel" "docker"];
3333- packages = with pkgs; [
3434- kdePackages.kate
3535- keepassxc
3636- ];
3737- };
3838-3939- # Install firefox.
4040- programs.firefox.enable = true;
4141-4242- environment.shellAliases = {
4343- nv = "nvim";
4444- };
4545-4646-4747- programs.steam = {
4848- enable = true;
4949- remotePlay.openFirewall = true;
5050- dedicatedServer.openFirewall = true;
5151- localNetworkGameTransfers.openFirewall = true;
5252- #platformOptimizations.enable = true;
5353- protontricks.enable = true;
5454-5555- };
5656-5757- # hyprland
5858- programs.hyprland.enable = true;
5959-6060- # Some programs need SUID wrappers, can be configured further or are
6161- # started in user sessions.
6262- # programs.mtr.enable = true;
6363- # programs.gnupg.agent = {
6464- # enable = true;
6565- # enableSSHSupport = true;
6666- # };
6767-6868- # List services that you want to enable:
6969-7070- # Enable the OpenSSH daemon.
7171- # services.openssh.enable = true;
7272-7373- # Open ports in the firewall.
7474- # networking.firewall.allowedTCPPorts = [ ... ];
7575- # networking.firewall.allowedUDPPorts = [ ... ];
7676- # Or disable the firewall altogether.
7777- #networking.firewall.enable = false;
7878-7979- # This value determines the NixOS release from which the default
8080- # settings for stateful data, like file locations and database versions
8181- # on your system were taken. It‘s perfectly fine and recommended to leave
8282- # this value at the release version of the first install of this system.
8383- # Before changing this value read the documentation for this option
8484- # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
8585- system.stateVersion = "24.05"; # Did you read the comment?
8686-8787- i18n = {
8888- inputMethod = {
8989- enable = true;
9090- type = "fcitx5";
9191- fcitx5 = {
9292- addons = with pkgs; [
9393- fcitx5-mozc
9494- fcitx5-gtk
9595- catppuccin-fcitx5
9696- ];
9797-9898- };
9999- };
100100- };
101101-102102-103103-}