···1# Edit this configuration file to define what should be installed on
2-# your system. Help is available in the configuration.nix(5) man page, on
3# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
45-# NixOS-WSL specific options are documented on the NixOS-WSL repository:
6-# https://github.com/nix-community/NixOS-WSL
78-{ ... }: {
9- imports = [
10- # WSL has no hardware configuration
11- #./hardware-configuration.nix
12- #./boot.nix
13- ./networking.nix
14- #./gui.nix
15- ./users.nix
16- ./packages.nix
17- ./services.nix
18- # include NixOS-WSL modules
19- <nixos-wsl/modules>
20- ];
21- wsl = {
22- enable = true;
23- defaultUser = "noah";
24- wslConf.network.hostname = "touma-wsl-nixos";
25- };
26-27 # Set your time zone.
28 time.timeZone = "America/Chicago";
29···38 # Copy the NixOS configuration file and link it from the resulting system
39 # (/run/current-system/configuration.nix). This is useful in case you
40 # accidentally delete configuration.nix.
41- system.copySystemConfiguration = true;
4243 # Automatic doc cache generation
44 documentation.man.generateCaches = true;
···50 randomizedDelaySec = "45min";
51 };
5253- # This value determines the NixOS release from which the default
54- # settings for stateful data, like file locations and database versions
55- # on your system were taken. It's perfectly fine and recommended to leave
56- # this value at the release version of the first install of this system.
57- # Before changing this value read the documentation for this option
58- # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
0000000000000059 system.stateVersion = "23.11"; # Did you read the comment?
060}
···1# Edit this configuration file to define what should be installed on
2+## your system. Help is available in the configuration.nix(5) man page, on
3# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
45+{ ... }:
067+{
8+ imports =
9+ [
10+ # Include the results of the hardware scan.
11+ ./hardware-configuration.nix
12+ ./boot.nix
13+ ./networking.nix
14+ #./gui.nix
15+ ./users.nix
16+ ./packages.nix
17+ ./services.nix
18+ ];
000000019 # Set your time zone.
20 time.timeZone = "America/Chicago";
21···30 # Copy the NixOS configuration file and link it from the resulting system
31 # (/run/current-system/configuration.nix). This is useful in case you
32 # accidentally delete configuration.nix.
33+ #system.copySystemConfiguration = true;
3435 # Automatic doc cache generation
36 documentation.man.generateCaches = true;
···42 randomizedDelaySec = "45min";
43 };
4445+ # Automatic Garbage Collection
46+ nix.gc.automatic = true;
47+ nix.gc.options = "--delete-older-than 8d";
48+49+ # This option defines the first version of NixOS you have installed on this particular machine,
50+ # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
51+ #
52+ # Most users should NEVER change this value after the initial install, for any reason,
53+ # even if you've upgraded your system to a new NixOS release.
54+ #
55+ # This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
56+ # so changing it will NOT upgrade your system.
57+ #
58+ # This value being lower than the current NixOS release does NOT mean your system is
59+ # out of date, out of support, or vulnerable.
60+ #
61+ # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
62+ # and migrated your data accordingly.
63+ #
64+ # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
65 system.stateVersion = "23.11"; # Did you read the comment?
66+67}
···1-# This file has been auto-generated by i3-config-wizard(1).
2-# It will not be overwritten, so edit it as you like.
3-#
4-# Should you change your keyboard layout some time, delete
5-# this file and re-run i3-config-wizard(1).
6-#
7-8-# i3 config file (v4)
9-#
10-# Please see https://i3wm.org/docs/userguide.html for a complete reference!
11-12-set $mod Mod4
13-14-# Font for window titles. Will also be used by the bar unless a different font
15-# is used in the bar {} block below.
16-font pango:monospace 8
17-18-# This font is widely installed, provides lots of unicode glyphs, right-to-left
19-# text rendering and scalability on retina/hidpi displays (thanks to pango).
20-#font pango:DejaVu Sans Mono 8
21-22-# Start XDG autostart .desktop files using dex. See also
23-# https://wiki.archlinux.org/index.php/XDG_Autostart
24-exec --no-startup-id dex --autostart --environment i3
25-26-# The combination of xss-lock, nm-applet and pactl is a popular choice, so
27-# they are included here as an example. Modify as you see fit.
28-29-# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
30-# screen before suspend. Use loginctl lock-session to lock your screen.
31-exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
32-33-# NetworkManager is the most popular way to manage wireless networks on Linux,
34-# and nm-applet is a desktop environment-independent system tray GUI for it.
35-exec --no-startup-id nm-applet
36-37-# Use pactl to adjust volume in PulseAudio.
38-set $refresh_i3status killall -SIGUSR1 i3status
39-bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
40-bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
41-bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
42-bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
43-44-# Use Mouse+$mod to drag floating windows to their wanted position
45-floating_modifier $mod
46-47-# move tiling windows via drag & drop by left-clicking into the title bar,
48-# or left-clicking anywhere into the window while holding the floating modifier.
49-tiling_drag modifier titlebar
50-51-# start a terminal
52-bindsym $mod+Return exec kitty
53-54-# kill focused window
55-bindsym $mod+Shift+q kill
56-57-# start dmenu (a program launcher)
58-bindsym $mod+d exec --no-startup-id dmenu_run
59-# A more modern dmenu replacement is rofi:
60-# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
61-# There also is i3-dmenu-desktop which only displays applications shipping a
62-# .desktop file. It is a wrapper around dmenu, so you need that installed.
63-# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
64-65-# change focus
66-bindsym $mod+h focus left
67-bindsym $mod+j focus down
68-bindsym $mod+k focus up
69-bindsym $mod+l focus right
70-71-72-# alternatively, you can use the cursor keys:
73-bindsym $mod+Left focus left
74-bindsym $mod+Down focus down
75-bindsym $mod+Up focus up
76-bindsym $mod+Right focus right
77-78-# move focused window
79-bindsym $mod+Shift+h move left
80-bindsym $mod+Shift+j move down
81-bindsym $mod+Shift+k move up
82-bindsym $mod+Shift+l move right
83-84-# alternatively, you can use the cursor keys:
85-bindsym $mod+Shift+Left move left
86-bindsym $mod+Shift+Down move down
87-bindsym $mod+Shift+Up move up
88-bindsym $mod+Shift+Right move right
89-90-# split in horizontal orientation
91-bindsym $mod+g split h
92-93-# split in vertical orientation
94-bindsym $mod+v split v
95-96-# enter fullscreen mode for the focused container
97-bindsym $mod+f fullscreen toggle
98-99-# change container layout (stacked, tabbed, toggle split)
100-bindsym $mod+s layout stacking
101-bindsym $mod+w layout tabbed
102-bindsym $mod+e layout toggle split
103-104-# toggle tiling / floating
105-bindsym $mod+Shift+space floating toggle
106-107-# change focus between tiling / floating windows
108-bindsym $mod+space focus mode_toggle
109-110-# focus the parent container
111-bindsym $mod+a focus parent
112-113-# focus the child container
114-#bindsym $mod+d focus child
115-116-# Define names for default workspaces for which we configure key bindings later on.
117-# We use variables to avoid repeating the names in multiple places.
118-set $ws1 "1"
119-set $ws2 "2"
120-set $ws3 "3"
121-set $ws4 "4"
122-set $ws5 "5"
123-set $ws6 "6"
124-set $ws7 "7"
125-set $ws8 "8"
126-set $ws9 "9"
127-set $ws10 "10"
128-129-# switch to workspace
130-bindsym $mod+1 workspace number $ws1
131-bindsym $mod+2 workspace number $ws2
132-bindsym $mod+3 workspace number $ws3
133-bindsym $mod+4 workspace number $ws4
134-bindsym $mod+5 workspace number $ws5
135-bindsym $mod+6 workspace number $ws6
136-bindsym $mod+7 workspace number $ws7
137-bindsym $mod+8 workspace number $ws8
138-bindsym $mod+9 workspace number $ws9
139-bindsym $mod+0 workspace number $ws10
140-# Tab navigation
141-bindsym $mod+Tab workspace next
142-bindsym $mod+Shift+Tab workspace prev
143-144-# move focused container to workspace
145-bindsym $mod+Shift+1 move container to workspace number $ws1
146-bindsym $mod+Shift+2 move container to workspace number $ws2
147-bindsym $mod+Shift+3 move container to workspace number $ws3
148-bindsym $mod+Shift+4 move container to workspace number $ws4
149-bindsym $mod+Shift+5 move container to workspace number $ws5
150-bindsym $mod+Shift+6 move container to workspace number $ws6
151-bindsym $mod+Shift+7 move container to workspace number $ws7
152-bindsym $mod+Shift+8 move container to workspace number $ws8
153-bindsym $mod+Shift+9 move container to workspace number $ws9
154-bindsym $mod+Shift+0 move container to workspace number $ws10
155-156-# reload the configuration file
157-bindsym $mod+Shift+c reload
158-# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
159-bindsym $mod+Shift+r restart
160-# exit i3 (logs you out of your X session)
161-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'"
162-163-# resize window (you can also use the mouse for that)
164-mode "resize" {
165- # These bindings trigger as soon as you enter the resize mode
166-167- # Pressing left will shrink the window’s width.
168- # Pressing right will grow the window’s width.
169- # Pressing up will shrink the window’s height.
170- # Pressing down will grow the window’s height.
171- bindsym h resize shrink width 10 px or 10 ppt
172- bindsym j resize grow height 10 px or 10 ppt
173- bindsym k resize shrink height 10 px or 10 ppt
174- bindsym l resize grow width 10 px or 10 ppt
175-176- # same bindings, but for the arrow keys
177- bindsym Left resize shrink width 10 px or 10 ppt
178- bindsym Down resize grow height 10 px or 10 ppt
179- bindsym Up resize shrink height 10 px or 10 ppt
180- bindsym Right resize grow width 10 px or 10 ppt
181-182- # back to normal: Enter or Escape or $mod+r
183- bindsym Return mode "default"
184- bindsym Escape mode "default"
185- bindsym $mod+r mode "default"
186-}
187-188-bindsym $mod+r mode "resize"
189-190-# Start i3bar to display a workspace bar (plus the system information i3status
191-# finds out, if available)
192-bar {
193- status_command i3status
194-}
195-196-exec barrier
···1-{ ... }: {
00000000002 # Some programs need SUID wrappers, can be configured further or are
3 # started in user sessions.
4- programs.mtr.enable = true;
000056 # Fish shell, the best
7 programs.fish.enable = true;
80009 # List services that you want to enable:
10000000000000000011 # Containers and VMs
12 virtualisation = {
13 podman = {
14- enable = false;
15 dockerCompat = true;
16 defaultNetwork.settings.dns_enabled = true;
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017 };
18 };
19}