diff --git a/configuration.nix b/configuration.nix index f8bbd51..7a39d52 100644 --- a/configuration.nix +++ b/configuration.nix @@ -9,7 +9,6 @@ }; }; nix = { - package = pkgs.nixFlakes; settings = { auto-optimise-store = true; cores = 0; @@ -26,6 +25,7 @@ useDHCP = lib.mkDefault true; networkmanager.enable = true; }; + services.gvfs.enable = true; qt5 = { enable = true; style = "gtk2"; @@ -61,12 +61,12 @@ jack.enable = true; }; #enable ssh - programs = { - mtr.enable = true; - gnupg.agent = { - enable = true; - enableSSHSupport = true; - }; + programs = { + mtr.enable = true; + gnupg.agent = { + enable = true; + enableSSHSupport = true; }; - services.openssh.enable = true; - } + }; + services.openssh.enable = true; +} diff --git a/flake.nix b/flake.nix index 5b6b5ff..d07d7d9 100644 --- a/flake.nix +++ b/flake.nix @@ -30,7 +30,7 @@ afk-cmds = final.callPackage ./pkgs/afk-cmds {}; } ) - (import ./suckless) + (import ./suckless) ]; }; lib = nixpkgs.lib; diff --git a/home-manager/bspwm.nix b/home-manager/bspwm.nix deleted file mode 100644 index 43bb080..0000000 --- a/home-manager/bspwm.nix +++ /dev/null @@ -1,30 +0,0 @@ -{config, pkgs, lib, ...}: -{ - xsession.windowManager.bspwm = { - enable = true; - startupPrograms = [ - "polybar left" - "polybar middle" - "polybar right" - "xfce4-power-manager" - "xsetroot -cursor_name left_ptr" - "xsetroot -solid \"#000000\"" - "flashfocus" - ]; - settings = { - border_width = 0; - window_gap = 10; - border_radius = 7; - normal_border_color = "\#c0caf5"; - active_border_color = "\#c0caf5"; - focused_border_color = "\#c0caf5"; - spilt_ratio = 0.52; - borderless_monocle = true; - gapless_monocle = true; - }; - monitors = { - HDMI-0 = [ "I" "II" "III" "IV" "V" ]; - eDP-1 = [ "VI" "VII" "VIII" "IX" "X" ]; - }; - }; -} diff --git a/home-manager/config/flashfocus/flashfocus.yml b/home-manager/config/flashfocus/flashfocus.yml deleted file mode 100644 index 0ace778..0000000 --- a/home-manager/config/flashfocus/flashfocus.yml +++ /dev/null @@ -1,92 +0,0 @@ -## @@@@@@@@@@@@@@@@@@@@@@ -## Flashfocus config file -## @@@@@@@@@@@@@@@@@@@@@@ - -# Opacity of window during flash. -flash-opacity: 0.5 - -# Windows are restored to this opacity value at the end of a flash. -default-opacity: 1 - -# Length of flash in milliseconds. -time: 500 - -# If true, flashes are not faded out. This will improve performance but flashes -# won't be smooth. -simple: false - -# Number of animation frames in a flash. -ntimepoints: 30 - -# Set this to false if you don't want windows to flash on focus. -flash-on-focus: true - -# Set this to false if you don't want fullscreen windows to flash. -flash-fullscreen: true - -# Whether or not to flash windows if they are the only window on the desktop. -# Possible values: -# 'always': -# Always flash lone windows -# 'never': -# Never flash lone windows -# 'on_open_close': -# Lone windows will be flashed only if a) if they were just opened and b) -# if another window was just closed. -# 'on_switch': -# Lone windows will be flashed only upon switching desktops. -flash-lone-windows: 'always' - - -# Defining window-specific flash rules -# -# X11-based window managers (e.g i3, bspwm) -# ----------------------------------------- -# Flash rules are defined by matching the WM_CLASS property of a window. To get -# the WM_CLASS property use 'xprop WM_CLASS' and click on a window. The -# property is a tuple of the form (window-id, window-class). The window-class -# is usually the name of the application, but not always. -# -# -# Say I'd like to set all 'termite' windows to 80% opacity but leave other -# windows at full opacity: -# -# rules: -# - window-class: Termite -# default-opacity: 0.8 -# -# -# I also would prefer that firefox windows are not flashed on focus: -# -# rules: -# - window-class: firefox -# flash-on-focus: False -# - window-class: Termite -# default-opacity: 0.8 -# -# -# For more complicated rules, you can use (python-style) regexes: -# -# rules: -# - window-id: ^(?!termite)$ -# default-opacity: 0.8 -# -# -# Sway -# ---- -# Native wayland apps can be matched using the app_id and window name. These -# can be found using `swaymsg -t get_tree`. XWayland apps are matched with -# using WM_CLASS as above (this can also be found with `swaymsg`) -# -# Given that termite is wayland native and firefox is not, the rules above -# could instead be written: -# -# rules: -# - window-class: firefox -# flash-on-focus: False -# - app-id: termite -# default-opacity: 0.8 -# -# rules: -# - window-name: ^(?!termite)$ -# default-opacity: 0.8 diff --git a/home-manager/home.nix b/home-manager/home.nix index 0fd5c46..55a1118 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -2,7 +2,6 @@ { imports = [ ./librewolf.nix - ./bspwm.nix ./sxhkd.nix ./rofi.nix ./polybar.nix diff --git a/home-manager/librewolf.nix b/home-manager/librewolf.nix index 3f2ef74..7f12905 100644 --- a/home-manager/librewolf.nix +++ b/home-manager/librewolf.nix @@ -1,4 +1,5 @@ -{pkgs, ...}:{ +{pkgs, ...}: +{ programs = { librewolf = { enable = true; diff --git a/home-manager/neovim/default.nix b/home-manager/neovim/default.nix index 2c4c5e1..b19e6d1 100644 --- a/home-manager/neovim/default.nix +++ b/home-manager/neovim/default.nix @@ -2,7 +2,8 @@ let vim-moonfly = pkgs.vimUtils.buildVimPlugin { - name = "vim-moonfly"; + pname = "vim-moonfly"; + version = "1.0.0"; src = pkgs.fetchFromGitHub { owner = "bluz71"; repo = "vim-moonfly-colors"; diff --git a/home-manager/picom.nix b/home-manager/picom.nix index 9fd2749..00fcf1d 100644 --- a/home-manager/picom.nix +++ b/home-manager/picom.nix @@ -1,44 +1,18 @@ { services.picom = { enable = true; - activeOpacity = 1.0; backend = "glx"; - experimentalBackends = false; - fade = true; - fadeDelta = 4; - fadeSteps = [ 0.03 0.03 ]; - inactiveOpacity = 1.0; - menuOpacity = 1.0; - shadow = true; - shadowExclude = [ "window_type = 'menu'" "class_g = 'firefox'" ]; - shadowOffsets = [ 25 25 ]; + shadow = false; shadowOpacity = 0.5; vSync = false; settings = { - animations = true; - animation = { - stiffness = 200; - window-mass = 0.4; - dampening = 20; - clamping = false; - for-open-window = "zoom"; - for-unmap-window = "zoom"; - for-workspace-switch-in = "slide-down"; - for-workspace-switch-out = "zoom"; - for-transient-window = "slide-up"; - }; blur = false; - blurExclude = [ - "window_type = 'dock'" - "window_type = 'menu'" - "class_g = 'firefox'" - ]; - shadow-radius = 25; + shadow-radius = 12; frame-opacity = 1.0; inactive-opacity-override = false; - corner-radius = 15; + corner-radius = 12; rounded-corners-exclude = [ "window_type = 'desktop'" "window_type = 'tooltip'" diff --git a/home-manager/polybar.nix b/home-manager/polybar.nix index 658b73f..98b5a60 100644 --- a/home-manager/polybar.nix +++ b/home-manager/polybar.nix @@ -12,68 +12,21 @@ }; "colors" = { background = "#000000"; - foreground = "#495eb8"; - blue = "#7aa2f7"; - alert = "#ad032e"; - deepblue = "#03339c"; - }; - "bar/left" = { - width = "180px"; - offset.x = 10; - modules.center = "xworkspaces"; - height = "20pt"; - radius = 6; - fixed.center = false; - dpi = 96; - offset.y = 10; - font = [ "Overpass Nerd Font:style=Regular:size=14;4" "Material Design Icons:style=Regular:size=16;4" ]; - background = "\${colors.background}"; - foreground = "\${colors.foreground}"; - line.size = "3pt"; - border = { - size = "7pt"; - color = "\${colors.background}"; - radius = 7; - }; - padding = { - left = 0; - right = 0; - }; - cursor = { - click = "pointer"; - scroll = "ns-resize"; - }; - enable.ipc = true; - wm.restack = "bspwm"; + foreground = "#80a0ff"; + blue = "#74b2ff"; + alert = "#ff5189"; + deepblue = "#36c692"; }; "bar/middle" = { - width = "130px"; - offset.x = 895; + width = 100; + offset.x = 910; modules.center = "date"; - height = "20pt"; - radius = 6; + height = 20; fixed.center = false; - dpi = 96; offset.y = 10; - font = [ "Overpass Nerd Font:style=Regular:size=14;4" "Material Design Icons:style=Regular:size=16;4" ]; + font = [ "Overpass Nerd Font:style=Regular:size=12;5" ]; background = "\${colors.background}"; foreground = "\${colors.foreground}"; - line.size = "3pt"; - border = { - size = "7pt"; - color = "\${colors.background}"; - radius = 7; - }; - padding = { - left = 0; - right = 0; - }; - cursor = { - click = "pointer"; - scroll = "ns-resize"; - }; - enable.ipc = true; - wm.restack = "bspwm"; }; "bar/right" = { width = "180px"; @@ -188,7 +141,7 @@ interval = 1; date = { text = "\"%I:%M %p\""; - alt = "\"%a, %B %d\""; + alt = "\"%m/%d/%y\""; }; label = { text = "\"%date%%{A}\""; diff --git a/home-manager/spicetify.nix b/home-manager/spicetify.nix index cdfa647..a52ae52 100644 --- a/home-manager/spicetify.nix +++ b/home-manager/spicetify.nix @@ -7,28 +7,28 @@ enable = true; enabledExtensions = with spicetify-nix.pkgs.extensions; [ "adblock.js" - "hidePodcasts.js" - "shuffle+.js" + "hidePodcasts.js" + "shuffle+.js" ]; - theme = spicetify-nix.pkgs.themes.Dribbblish; - colorScheme = "custom"; - customColorScheme = { - text = "7AA2F7"; - subtext = "F0F0F0"; - sidebar-text = "7AA2F7"; - main = "000000"; - sidebar = "000000"; - player = "000000"; - card = "000000"; - shadow = "03339c"; - selected-row = "797979"; - button = "31748f"; - button-active = "7AA2F7"; - button-disabled = "03339c"; - tab-active = "166632"; - notification = "1db954"; - notification-error = "eb6f92"; - misc = "FFFFFF"; - }; + theme = spicetify-nix.pkgs.themes.Dribbblish; + colorScheme = "custom"; + customColorScheme = { + text = "79dac8"; + subtext = "f8f8f8"; + sidebar-text = "79dac8"; + main = "000000"; + sidebar = "323437"; + player = "000000"; + card = "000000"; + shadow = "000000"; + selected-row = "7c8f8f"; + button = "74b2ff"; + button-active = "74b2ff"; + button-disabled = "555169"; + tab-active = "80a0ff"; + notification = "80a0ff"; + notification-error = "e2637f"; + misc = "282a36"; + }; }; } diff --git a/home-manager/sxhkd.nix b/home-manager/sxhkd.nix index 4a08154..b055c74 100644 --- a/home-manager/sxhkd.nix +++ b/home-manager/sxhkd.nix @@ -2,16 +2,6 @@ services.sxhkd = { enable = true; keybindings = { - #terminal - "super + Return" = "st"; - #application launcher - "super + @space" = "rofi -show drun"; - #kill sxhkd - "super + Escape" = "pkill -USR1 -x sxhkd"; - #restart bspwm - "super + alt + {q,r}" = "bspc {quit,wm -r}"; - #kill current windows - "alt + {F4, shift + F4}" = "bspc node -{c,k}"; #media keybindings "XF86AudioPlay" = "playerctl play-pause"; "XF86AudioPause" = "playerctl play-pause"; @@ -23,31 +13,9 @@ "XF86AudioMute" = "amixer sset Master toggle "; "XF86MonBrightnessUp" = "brightnessctl s 20+"; "XF86MonBrightnessDown" = "brightnessctl s 20-"; - #switch windows - "alt + Tab" = "~/.config/rofi/window-switcher/window-switcher.sh"; #screenshot stuff "Print" = "maim $HOME/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg"; "super + Print" = "maim -s $HOME/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg"; - #stuff i'm not so sure about - "super + m" = "bspc desktop -l next"; - "super + y" = "bspc node newest.marked.local -n newest.!automatic.local"; - "super + g" = "bspc node -s biggest.window"; - "super + {t,shift + t,s,f}" = "bspc node -t {tiled,pseudo_tiled,floating,fullscreen}"; - "super + ctrl + {m,x,y,z}" = "bspc node -g {marked,locked,sticky,private}"; - "super + {_,shift + }{h,j,k,l}" = "bspc node -{f,s} {west,south,north,east}"; - "super + {p,b,comma,period}" = "bspc node -f @{parent,brother,first,second}"; - "super + {_,shift + }c" = "bspc node -f {next,prev}.local.!hidden.window"; - "super + bracket{left,right}" = "bspc desktop -f {prev,next}.local"; - "super + {grave,Tab}" = "bspc {node,desktop} -f last"; - "super + {o,i}" = "bspc wm -h off; bspc node {older,newer} -f; bspc wm -h on"; - "super + {_,shift + }{1-9,0}" = "bspc {desktop -f,node -d} '^{1-9,10}'"; - "super + ctrl + {h,j,k,l}" = "bspc node -p {west,south,north,east}"; - "super + ctrl + {1-9}" = "bspc node -o 0.{1-9}"; - "super + ctrl + space" ="bspc node -p cancel"; - "super + ctrl + shift + space" = "bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel"; - "super + alt + {h,j,k,l}" = "bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}"; - "super + alt + shift + {h,j,k,l}" ="bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}"; - "super + {Left,Down,Up,Right}" = "bspc node -v {-20 0,0 20,0 -20,20 0}"; }; }; } diff --git a/modules/boot.nix b/modules/boot.nix index c5a029a..aa011d0 100644 --- a/modules/boot.nix +++ b/modules/boot.nix @@ -7,15 +7,15 @@ enable = true; theme = "breeze"; logo = ../images/nixos.png; - }; + }; loader = { systemd-boot = { enable = true; consoleMode = "max"; editor = false; }; - efi.canTouchEfiVariables = true; - timeout = 0; + efi.canTouchEfiVariables = true; + timeout = 0; }; }; } diff --git a/modules/packages.nix b/modules/packages.nix index a6affbb..d06c85c 100644 --- a/modules/packages.nix +++ b/modules/packages.nix @@ -1,46 +1,35 @@ { config, pkgs, callPackage, webcord, ... }: { -environment.systemPackages = with pkgs; [ - wget #wget - bottom #view tasks - efibootmgr #efi editor - maim #screenshooter - #needed utils - pciutils - binutils - alsa-utils - btrfs-progs #for external harddrive - #user/gui - vlc - bitwarden - gimp - qbittorrent - webcord.packages.${pkgs.system}.default - spotify-tray - feh #for wallpaper - #explicit xfce4 for bspwm - xarchive - xfce.catfish - xfce.mousepad - xfce.xfce4-power-manager - brightnessctl #brightness control for laptop - playerctl #music control - networkmanager_dmenu #pretty gui connection control - networkmanagerapplet #gui connection control - dmenu #for networkmanager_dmenu - flashfocus #flash when switching windows - pavucontrol #gui volume control - xclip #commandline clipboard access - qsudo #for running thunar as root - nix-tree #show nixpkgs - git-filter-repo - exa #ls replacement - cava #pretty audio - neofetch - piper # mouse configuration - libratbag - - st - ]; + environment.systemPackages = with pkgs; [ + bottom #view tasks + efibootmgr #efi editor + maim #screenshooter + pciutils #lspci + alsa-utils #volume control + btrfs-progs #for external harddrive + vlc #play stuff + bitwarden #store stuff + gimp #edit stuff + qbittorrent #steal stuff + webcord.packages.${pkgs.system}.default # talk to people (gross) + spotify-tray # tray icons are nice + feh #for wallpaper + xfce.mousepad + brightnessctl #brightness control for laptop + playerctl #music control + networkmanager_dmenu #pretty gui connection control + networkmanagerapplet #gui connection control + dmenu #for networkmanager_dmenu + pavucontrol #gui volume control + xclip #commandline clipboard access + exa #ls replacement + cava #pretty audio + neofetch # cus yes + st #suckless terminal + pipes-rs # more fun things + pcmanfm #file manager + haskellPackages.squeeze #file compression + nix-tree #view packages + ]; } diff --git a/modules/refreshrate.nix b/modules/refreshrate.nix index 3f4f0e6..eaad5e3 100644 --- a/modules/refreshrate.nix +++ b/modules/refreshrate.nix @@ -1,13 +1,26 @@ { services.xserver = { xrandrHeads = [ - { - output = "HDMI-0"; - primary = true; - } + { + output = "HDMI-0"; + primary = true; + monitorConfig = '' + Option "DPMS" "false" + ''; + } ]; screenSection = '' - Option "metamodes" "1920x1080_144 +0+0" - ''; + Option "metamodes" "1920x1080_144 +0+0" + ''; + monitorSection = '' + Option "DPMS" "false" + ''; + serverFlagsSection = '' + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" + Option "DPMS" "false" + ''; }; } diff --git a/modules/smb.nix b/modules/smb.nix index f252556..12ad052 100644 --- a/modules/smb.nix +++ b/modules/smb.nix @@ -1,9 +1,9 @@ { services.samba-wsdd.enable = true; # make shares visible for windows 10 clients - networking.firewall = { - allowedTCPPorts = [ 139 445 ]; - allowedUDPPorts = [ 137 138 ]; - }; + networking.firewall = { + allowedTCPPorts = [ 139 445 ]; + allowedUDPPorts = [ 137 138 ]; + }; services.samba = { enable = true; securityType = "user"; diff --git a/modules/thunar.nix b/modules/thunar.nix deleted file mode 100644 index 70d70cd..0000000 --- a/modules/thunar.nix +++ /dev/null @@ -1,8 +0,0 @@ -{pkgs, ...}: -{ - services.gvfs.enable = true; - programs.thunar = { - enable = true; - plugins = with pkgs.xfce; [ thunar-volman thunar-archive-plugin thunar-media-tags-plugin]; - }; -} diff --git a/modules/xserver.nix b/modules/xserver.nix index db1db7f..fdcf253 100644 --- a/modules/xserver.nix +++ b/modules/xserver.nix @@ -11,11 +11,9 @@ xautolock.enable = false; desktopManager.xterm.enable = false; excludePackages = [ pkgs.xterm ]; - windowManager.bspwm = { - enable = true; - }; + windowManager.dwm.enable = true; displayManager = { - defaultSession = "none+bspwm"; + defaultSession = "none+dwm"; lightdm = { enable = true; greeters.mini = { diff --git a/modules/zsh.nix b/modules/zsh.nix index 9d4c50f..6cec083 100644 --- a/modules/zsh.nix +++ b/modules/zsh.nix @@ -29,8 +29,8 @@ style = "bold red"; }; sudo ={ - format = "[ ](#7aa2f7)"; - disabled = false; + format = "[ ](#7aa2f7)"; + disabled = false; }; }; }; diff --git a/suckless/default.nix b/suckless/default.nix index e3dd46a..90e1826 100644 --- a/suckless/default.nix +++ b/suckless/default.nix @@ -1,34 +1,9 @@ (final: super: rec { - st = (super.st.override { patches = [ -#scrolling - (super.fetchpatch { - url = "https://st.suckless.org/patches/scrollback/st-scrollback-0.8.5.diff"; - sha256 = "sha256-ZZAbrWyIaYRtw+nqvXKw8eXRWf0beGNJgoupRKsr2lc="; - }) -#scrolling with shift+scrollwheel - (super.fetchpatch { - url = "https://st.suckless.org/patches/scrollback/st-scrollback-mouse-20220127-2c5edf2.diff"; - sha256 = "sha256-CuNJ5FdKmAtEjwbgKeBKPJTdEfJvIdmeSAphbz0u3Uk="; - }) - (super.fetchpatch { - url = "https://st.suckless.org/patches/bold-is-not-bright/st-bold-is-not-bright-20190127-3be4cf1.diff"; - sha256 = "sha256-IhrTgZ8K3tcf5HqSlHm3GTacVJLOhO7QPho6SCGXTHw="; - }) - (super.fetchpatch { - url = "https://st.suckless.org/patches/anysize/st-anysize-20220718-baa9357.diff"; - sha256 = "sha256-yx9VSwmPACx3EN3CAdQkxeoJKJxQ6ziC9tpBcoWuWHc="; - }) - (super.fetchpatch { - url = "https://st.suckless.org/patches/desktopentry/st-desktopentry-0.8.5.diff"; - sha256 = "sha256-JUFRFEHeUKwtvj8OV02CqHFYTsx+pvR3s+feP9P+ezo="; - }) - (super.fetchpatch { - url = "https://st.suckless.org/patches/boxdraw/st-boxdraw_v2-0.8.5.diff"; - sha256 = "sha256-WN/R6dPuw1eviHOvVVBw2VBSMDtfi1LCkXyX36EJKi4="; - }) - ]; - }).overrideAttrs (oldAttrs: rec { - configFile = super.writeText "config.h" (builtins.readFile ./st/config.h); - postPatch = "${oldAttrs.postPatch}\ncp ${configFile} config.h\n"; - }); + st = (super.st.override { extraLibs = with super; [ xorg.libXcursor harfbuzz ]; + }).overrideAttrs (oldAttrs: rec { + src = ./st; + }); + dwm = (super.dwm.override {}).overrideAttrs (oldAttrs: rec { + src = ./dwm; + }); }) diff --git a/suckless/dwm/config.def.h b/suckless/dwm/config.def.h index e02e508..eb8d0b6 100644 --- a/suckless/dwm/config.def.h +++ b/suckless/dwm/config.def.h @@ -11,12 +11,12 @@ static const int startontag = 0; /* 0 means no tag active on star static const double activeopacity = 1.0f; /* Window opacity when it's focused (0 <= opacity <= 1) */ static const double inactiveopacity = 0.875f; /* Window opacity when it's inactive (0 <= opacity <= 1) */ static Bool bUseOpacity = True; /* Starts with opacity on any unfocused windows */ -static const int user_bh = 0; /* 0 means that dwm will calculate bar height, >= 1 means dwm willcalculate bar height, >= 1 means dwm will user_bh as bar height */ -static const int barwidth = 250; +static const int user_bh = 20; /* 0 means that dwm will calculate bar height, >= 1 means dwm willcalculate bar height, >= 1 means dwm will user_bh as bar height */ +static const int barwidth = 225; static const int focusonwheel = 0; static const int vertpad = 10; /* vertical padding of bar */ static const int sidepad = 10; /* horizontal padding of bar */ -static const char *fonts[] = { "monospace:size=15" }; +static const char *fonts[] = { "monospace:size=12" }; static const char dmenufont[] = "monospace:size=12"; static const char col_gray1[] = "#000000"; static const char col_gray2[] = "#79dac8"; diff --git a/systems/desktop.nix b/systems/desktop.nix index 79f1dde..84061ea 100644 --- a/systems/desktop.nix +++ b/systems/desktop.nix @@ -7,7 +7,6 @@ ../modules/packages.nix ../modules/nvidia.nix ../modules/fonts.nix - ../modules/thunar.nix ../modules/scripts.nix ../modules/vfio.nix ../modules/refreshrate.nix @@ -49,7 +48,7 @@ }; }; systemd.services.mining = { - enable = true; + enable = false; path = with pkgs; [t-rex-miner afk-cmds st zsh dbus xmrig]; wantedBy = [ "graphical.target" ]; script = '' diff --git a/systems/laptop.nix b/systems/laptop.nix index 798b965..1501ea2 100644 --- a/systems/laptop.nix +++ b/systems/laptop.nix @@ -8,7 +8,6 @@ ../modules/nvidia.nix ../modules/packages.nix ../modules/fonts.nix - ../modules/thunar.nix ../modules/scripts.nix ../modules/xserver.nix ../modules/zsh.nix