···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, on
22+## your system. Help is available in the configuration.nix(5) man page, on
33# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
4455-# NixOS-WSL specific options are documented on the NixOS-WSL repository:
66-# https://github.com/nix-community/NixOS-WSL
55+{ ... }:
7688-{ ... }: {
99- imports = [
1010- # WSL has no hardware configuration
1111- #./hardware-configuration.nix
1212- #./boot.nix
1313- ./networking.nix
1414- #./gui.nix
1515- ./users.nix
1616- ./packages.nix
1717- ./services.nix
1818- # include NixOS-WSL modules
1919- <nixos-wsl/modules>
2020- ];
2121- wsl = {
2222- enable = true;
2323- defaultUser = "noah";
2424- wslConf.network.hostname = "touma-wsl-nixos";
2525- };
2626-77+{
88+ imports =
99+ [
1010+ # Include the results of the hardware scan.
1111+ ./hardware-configuration.nix
1212+ ./boot.nix
1313+ ./networking.nix
1414+ #./gui.nix
1515+ ./users.nix
1616+ ./packages.nix
1717+ ./services.nix
1818+ ];
2719 # Set your time zone.
2820 time.timeZone = "America/Chicago";
2921···3830 # Copy the NixOS configuration file and link it from the resulting system
3931 # (/run/current-system/configuration.nix). This is useful in case you
4032 # accidentally delete configuration.nix.
4141- system.copySystemConfiguration = true;
3333+ #system.copySystemConfiguration = true;
42344335 # Automatic doc cache generation
4436 documentation.man.generateCaches = true;
···5042 randomizedDelaySec = "45min";
5143 };
52445353- # This value determines the NixOS release from which the default
5454- # settings for stateful data, like file locations and database versions
5555- # on your system were taken. It's perfectly fine and recommended to leave
5656- # this value at the release version of the first install of this system.
5757- # Before changing this value read the documentation for this option
5858- # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
4545+ # Automatic Garbage Collection
4646+ nix.gc.automatic = true;
4747+ nix.gc.options = "--delete-older-than 8d";
4848+4949+ # This option defines the first version of NixOS you have installed on this particular machine,
5050+ # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
5151+ #
5252+ # Most users should NEVER change this value after the initial install, for any reason,
5353+ # even if you've upgraded your system to a new NixOS release.
5454+ #
5555+ # This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
5656+ # so changing it will NOT upgrade your system.
5757+ #
5858+ # This value being lower than the current NixOS release does NOT mean your system is
5959+ # out of date, out of support, or vulnerable.
6060+ #
6161+ # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
6262+ # and migrated your data accordingly.
6363+ #
6464+ # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
5965 system.stateVersion = "23.11"; # Did you read the comment?
6666+6067}
···11-# This file has been auto-generated by i3-config-wizard(1).
22-# It will not be overwritten, so edit it as you like.
33-#
44-# Should you change your keyboard layout some time, delete
55-# this file and re-run i3-config-wizard(1).
66-#
77-88-# i3 config file (v4)
99-#
1010-# Please see https://i3wm.org/docs/userguide.html for a complete reference!
1111-1212-set $mod Mod4
1313-1414-# Font for window titles. Will also be used by the bar unless a different font
1515-# is used in the bar {} block below.
1616-font pango:monospace 8
1717-1818-# This font is widely installed, provides lots of unicode glyphs, right-to-left
1919-# text rendering and scalability on retina/hidpi displays (thanks to pango).
2020-#font pango:DejaVu Sans Mono 8
2121-2222-# Start XDG autostart .desktop files using dex. See also
2323-# https://wiki.archlinux.org/index.php/XDG_Autostart
2424-exec --no-startup-id dex --autostart --environment i3
2525-2626-# The combination of xss-lock, nm-applet and pactl is a popular choice, so
2727-# they are included here as an example. Modify as you see fit.
2828-2929-# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
3030-# screen before suspend. Use loginctl lock-session to lock your screen.
3131-exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
3232-3333-# NetworkManager is the most popular way to manage wireless networks on Linux,
3434-# and nm-applet is a desktop environment-independent system tray GUI for it.
3535-exec --no-startup-id nm-applet
3636-3737-# Use pactl to adjust volume in PulseAudio.
3838-set $refresh_i3status killall -SIGUSR1 i3status
3939-bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
4040-bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
4141-bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
4242-bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
4343-4444-# Use Mouse+$mod to drag floating windows to their wanted position
4545-floating_modifier $mod
4646-4747-# move tiling windows via drag & drop by left-clicking into the title bar,
4848-# or left-clicking anywhere into the window while holding the floating modifier.
4949-tiling_drag modifier titlebar
5050-5151-# start a terminal
5252-bindsym $mod+Return exec kitty
5353-5454-# kill focused window
5555-bindsym $mod+Shift+q kill
5656-5757-# start dmenu (a program launcher)
5858-bindsym $mod+d exec --no-startup-id dmenu_run
5959-# A more modern dmenu replacement is rofi:
6060-# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
6161-# There also is i3-dmenu-desktop which only displays applications shipping a
6262-# .desktop file. It is a wrapper around dmenu, so you need that installed.
6363-# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
6464-6565-# change focus
6666-bindsym $mod+h focus left
6767-bindsym $mod+j focus down
6868-bindsym $mod+k focus up
6969-bindsym $mod+l focus right
7070-7171-7272-# alternatively, you can use the cursor keys:
7373-bindsym $mod+Left focus left
7474-bindsym $mod+Down focus down
7575-bindsym $mod+Up focus up
7676-bindsym $mod+Right focus right
7777-7878-# move focused window
7979-bindsym $mod+Shift+h move left
8080-bindsym $mod+Shift+j move down
8181-bindsym $mod+Shift+k move up
8282-bindsym $mod+Shift+l move right
8383-8484-# alternatively, you can use the cursor keys:
8585-bindsym $mod+Shift+Left move left
8686-bindsym $mod+Shift+Down move down
8787-bindsym $mod+Shift+Up move up
8888-bindsym $mod+Shift+Right move right
8989-9090-# split in horizontal orientation
9191-bindsym $mod+g split h
9292-9393-# split in vertical orientation
9494-bindsym $mod+v split v
9595-9696-# enter fullscreen mode for the focused container
9797-bindsym $mod+f fullscreen toggle
9898-9999-# change container layout (stacked, tabbed, toggle split)
100100-bindsym $mod+s layout stacking
101101-bindsym $mod+w layout tabbed
102102-bindsym $mod+e layout toggle split
103103-104104-# toggle tiling / floating
105105-bindsym $mod+Shift+space floating toggle
106106-107107-# change focus between tiling / floating windows
108108-bindsym $mod+space focus mode_toggle
109109-110110-# focus the parent container
111111-bindsym $mod+a focus parent
112112-113113-# focus the child container
114114-#bindsym $mod+d focus child
115115-116116-# Define names for default workspaces for which we configure key bindings later on.
117117-# We use variables to avoid repeating the names in multiple places.
118118-set $ws1 "1"
119119-set $ws2 "2"
120120-set $ws3 "3"
121121-set $ws4 "4"
122122-set $ws5 "5"
123123-set $ws6 "6"
124124-set $ws7 "7"
125125-set $ws8 "8"
126126-set $ws9 "9"
127127-set $ws10 "10"
128128-129129-# switch to workspace
130130-bindsym $mod+1 workspace number $ws1
131131-bindsym $mod+2 workspace number $ws2
132132-bindsym $mod+3 workspace number $ws3
133133-bindsym $mod+4 workspace number $ws4
134134-bindsym $mod+5 workspace number $ws5
135135-bindsym $mod+6 workspace number $ws6
136136-bindsym $mod+7 workspace number $ws7
137137-bindsym $mod+8 workspace number $ws8
138138-bindsym $mod+9 workspace number $ws9
139139-bindsym $mod+0 workspace number $ws10
140140-# Tab navigation
141141-bindsym $mod+Tab workspace next
142142-bindsym $mod+Shift+Tab workspace prev
143143-144144-# move focused container to workspace
145145-bindsym $mod+Shift+1 move container to workspace number $ws1
146146-bindsym $mod+Shift+2 move container to workspace number $ws2
147147-bindsym $mod+Shift+3 move container to workspace number $ws3
148148-bindsym $mod+Shift+4 move container to workspace number $ws4
149149-bindsym $mod+Shift+5 move container to workspace number $ws5
150150-bindsym $mod+Shift+6 move container to workspace number $ws6
151151-bindsym $mod+Shift+7 move container to workspace number $ws7
152152-bindsym $mod+Shift+8 move container to workspace number $ws8
153153-bindsym $mod+Shift+9 move container to workspace number $ws9
154154-bindsym $mod+Shift+0 move container to workspace number $ws10
155155-156156-# reload the configuration file
157157-bindsym $mod+Shift+c reload
158158-# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
159159-bindsym $mod+Shift+r restart
160160-# exit i3 (logs you out of your X session)
161161-bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
162162-163163-# resize window (you can also use the mouse for that)
164164-mode "resize" {
165165- # These bindings trigger as soon as you enter the resize mode
166166-167167- # Pressing left will shrink the window’s width.
168168- # Pressing right will grow the window’s width.
169169- # Pressing up will shrink the window’s height.
170170- # Pressing down will grow the window’s height.
171171- bindsym h resize shrink width 10 px or 10 ppt
172172- bindsym j resize grow height 10 px or 10 ppt
173173- bindsym k resize shrink height 10 px or 10 ppt
174174- bindsym l resize grow width 10 px or 10 ppt
175175-176176- # same bindings, but for the arrow keys
177177- bindsym Left resize shrink width 10 px or 10 ppt
178178- bindsym Down resize grow height 10 px or 10 ppt
179179- bindsym Up resize shrink height 10 px or 10 ppt
180180- bindsym Right resize grow width 10 px or 10 ppt
181181-182182- # back to normal: Enter or Escape or $mod+r
183183- bindsym Return mode "default"
184184- bindsym Escape mode "default"
185185- bindsym $mod+r mode "default"
186186-}
187187-188188-bindsym $mod+r mode "resize"
189189-190190-# Start i3bar to display a workspace bar (plus the system information i3status
191191-# finds out, if available)
192192-bar {
193193- status_command i3status
194194-}
195195-196196-exec barrier