From 8a5807970632b75f6b06f4ce31d34e329dbbbd63 Mon Sep 17 00:00:00 2001 From: stitchy Date: Sun, 21 Jan 2024 01:53:24 +0000 Subject: [PATCH] wow it actually is sorta workable now --- config/hypr/binds.conf | 107 ++++++++++ config/hypr/exec-start.conf | 13 ++ config/hypr/hyprland.conf | 114 +++++++++++ config/hypr/hyprpaper.conf | 10 + config/hypr/monitors.conf | 19 ++ config/hypr/portal.sh | 8 + config/hypr/windowrules.conf | 22 +++ configuration.nix | 90 +++------ flake.lock | 262 ++++++++++++++++++++++--- flake.nix | 61 +++--- hosts/lappy/default.nix | 24 ++- hosts/lappy/hardware-configuration.nix | 6 + packages/art.nix | 2 +- packages/default.nix | 36 ++-- users/stitchynyan/home.nix | 54 ++++- 15 files changed, 688 insertions(+), 140 deletions(-) create mode 100644 config/hypr/binds.conf create mode 100644 config/hypr/exec-start.conf create mode 100755 config/hypr/hyprland.conf create mode 100644 config/hypr/hyprpaper.conf create mode 100644 config/hypr/monitors.conf create mode 100755 config/hypr/portal.sh create mode 100644 config/hypr/windowrules.conf diff --git a/config/hypr/binds.conf b/config/hypr/binds.conf new file mode 100644 index 0000000..e043e69 --- /dev/null +++ b/config/hypr/binds.conf @@ -0,0 +1,107 @@ +# Binding Config File for Hyprland + +# Main Bindings +# +# Foot, you done goofed +#bind=ALT,RETURN,exec,foot +bind=ALT,RETURN,exec,kitty + +bind=ALT,Q,killactive, +bind=SUPER,M,exec,pkill Hyprland +bind=ALT,E,exec,dolphin +bind=ALT,V,togglefloating, +bindr=ALTSHIFT,RETURN,exec,pkill wofi || wofi -S drun --allow-images +bind=ALTSHIFT,F,fullscreen +bind=,Print,exec,grim -g "$(slurp)" -t jpeg - | wl-copy +bind=SHIFT,Print,exec,grim -g "$(slurp)" -t jpeg Downloads/screenshot.jpeg + +# trigger when the switch is toggled +bindl=,switch:Lid Switch,exec,swaylock --effect-greyscale + + + +# Games +bind=ALTSHIFT,T,exec,gamescope -w 1280 -h 960 -F fsr -f -r 60 wine "/home/flyingstitchman/Documents/Games/Touhou 15 - Legacy of Lunatic Kingdom/th15.exe" +bind=ALTSHIFT,O,exec,osu-lazer +bind=ALTSHIFT,C,exec,"/home/flyingstitchman/Documents/Games/Celeste/Celeste" +bind=ALTSHIFT,S,exec,"/home/flyingstitchman/Documents/Games/Stardew Valley/StardewValley" +bind=ALTSHIFT,R,exec,"/home/flyingstitchman/Documents/Games/factorio/bin/x64/factorio" + + +# Window Moving +bindm=SUPER,mouse:272,movewindow +bindm=SUPER,mouse:273,resizewindow + +# Quick Bindings +bindle=,XF86MonBrightnessDown,exec,brightnessctl -d intel_backlight set 1%- +bindle=,XF86MonBrightnessUp,exec,brightnessctl -d intel_backlight set +1% + +bindle=,XF86AudioRaiseVolume,exec,${XDG_CONFIG_HOME:-~/.config}/dunst/scripts/volumeNotify.sh 1%+ +bindle=,XF86AudioLowerVolume,exec,${XDG_CONFIG_HOME:-~/.config}/dunst/scripts/volumeNotify.sh 1%- + +bindl=,XF86AudioMute,exec,${XDG_CONFIG_HOME:-~/.config}/dunst/scripts/muteToggle.sh + +bindl=,XF86AudioPlay,exec,playerctl play-pause +bindl=,XF86AudioPrev,exec,playerctl previous +bindl=,XF86AudioNext,exec,playerctl next + +# Movement Bindings +bind=ALT,H,movefocus,l +bind=ALT,L,movefocus,r +bind=ALT,K,movefocus,u +bind=ALT,J,movefocus,d + +# Swap window +bind=ALTSHIFT,J,swapwindow, d +bind=ALTSHIFT,k,swapwindow, u +bind=ALTSHIFT,h,swapwindow, l +bind=ALTSHIFT,l,swapwindow, r + +# Switch Workspace Bindings +bind=ALT,1,workspace,1 +bind=ALT,2,workspace,2 +bind=ALT,3,workspace,3 +bind=ALT,4,workspace,4 +bind=ALT,5,workspace,5 +bind=ALT,6,workspace,6 +bind=ALT,7,workspace,7 +bind=ALT,8,workspace,8 +bind=ALT,9,workspace,9 +bind=ALT,0,workspace,10 + +# Move to Workspace Bindings +bind=ALTSHIFT,1,movetoworkspace,1 +bind=ALTSHIFT,2,movetoworkspace,2 +bind=ALTSHIFT,3,movetoworkspace,3 +bind=ALTSHIFT,4,movetoworkspace,4 +bind=ALTSHIFT,5,movetoworkspace,5 +bind=ALTSHIFT,6,movetoworkspace,6 +bind=ALTSHIFT,7,movetoworkspace,7 +bind=ALTSHIFT,8,movetoworkspace,8 +bind=ALTSHIFT,9,movetoworkspace,9 +bind=ALTSHIFT,10,movetoworkspace,0 + +# Submap for resizing windows +bind=ALT,R,submap,resize # will switch to a submap called resize + +submap=resize # will start a submap called "resize" + +binde=,L,resizeactive,10 0 +binde=,H,resizeactive,-10 0 +binde=,K,resizeactive,0 -10 +binde=,J,resizeactive,0 10 + +binde=SHIFT,L,resizeactive,50 0 +binde=SHIFT,H,resizeactive,-50 0 +binde=SHIFT,K,resizeactive,0 -50 +binde=SHIFT,J,resizeactive,0 50 + +bind=ALT,R,submap,reset # use reset to go back to the global submap + +submap=reset # will reset the submap, meaning end the current one and return to the global one. + +# Submap to disable all keybinds (for blender) +bind=ALT,U,submap,clean +submap=clean +bind=ALT,U,submap,reset +submap=reset diff --git a/config/hypr/exec-start.conf b/config/hypr/exec-start.conf new file mode 100644 index 0000000..a21e8a1 --- /dev/null +++ b/config/hypr/exec-start.conf @@ -0,0 +1,13 @@ +# Executable Startup File for Hyprland +#exec-once=uclampset -M 10 waybar +exec-once=eww open bar +exec-once=swayidle +exec-once=hyprpaper +exec-once=systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once=dbus-daemon --session --address=unix:path=$XDG_RUNTIME_DIR/bus +exec-once=dunst +exec-once=${XDG_CONFIG_HOME:-~/.config}/dunst/scripts/low-battery.sh +exec-once=fcitx5 +#exec-once=~/.config/hypr/portal.sh +exec-once=systemctl --user import-environment DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once=wl-paste -p --watch wl-copy -pc diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf new file mode 100755 index 0000000..811af4d --- /dev/null +++ b/config/hypr/hyprland.conf @@ -0,0 +1,114 @@ +# This is an example Hyprland config file. +# Syntax is the same as in Hypr, but settings might differ. +# +# Refer to the wiki for more information. +# Edited by FlyingStitchman 28 Aug 2022 + +# Config Home Variable +$ConfigHome=~/.config/hypr + + +# Config for Monitors and Workspaces as they don't Carry Between Computers +source=$ConfigHome/monitors.conf + +# Startup Config +source=$ConfigHome/exec-start.conf + +# Config for Bindings +source=$ConfigHome/binds.conf + +# Windowrules +source=$ConfigHome/windowrules.conf + +input { + follow_mouse=1 + + sensitivity=.4 + accel_profile=adaptive + + touchpad { + natural_scroll=false + disable_while_typing=false + } + +} + +general { + gaps_in=5 + gaps_out=15 + border_size=3 + col.active_border=0xff7733cc + col.inactive_border=0xff333333 + + layout=dwindle +} + +decoration { + blur { + # Blur Options + enabled=true + size=4 + passes=3 + ignore_opacity=false + new_optimizations=true + } + + # Shadow + drop_shadow=0 + shadow_range=15 + shadow_render_power=2 + shadow_ignore_window=1 + col.shadow=0xdb331153 + col.shadow_inactive=0x99333333 + shadow_offset=3 2 + + # Other + rounding=15 + inactive_opacity=.8 + fullscreen_opacity=1 multiplier +} + +animations { + enabled=true + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default +} + +dwindle { + pseudotile=true # enable pseudotiling on dwindle + preserve_split=true +} + +master { + new_is_master=true +} + +misc { + layers_hog_keyboard_focus=true + vfr=1 + vrr=on + disable_hyprland_logo=true + disable_splash_rendering=true +} + +xwayland { + force_zero_scaling=true +} + +debug { + damage_tracking=-2 + damage_blink=false + disable_scale_checks=true +} + +gestures { + workspace_swipe = true + workspace_swipe_distance = 350 +} diff --git a/config/hypr/hyprpaper.conf b/config/hypr/hyprpaper.conf new file mode 100644 index 0000000..9c9d36d --- /dev/null +++ b/config/hypr/hyprpaper.conf @@ -0,0 +1,10 @@ + +preload = ~/.config/hypr/wallpapers/wallpaper2.png + + +wallpaper = eDP-1,~/.config/hypr/wallpapers/wallpaper2.png +wallpaper = DP-1,~/.config/hypr/wallpapers/wallpaper2.png +wallpaper = DP-2,~/.config/hypr/wallpapers/wallpaper2.png +wallpaper = DP-3,~/.config/hypr/wallpapers/wallpaper2.png +wallpaper = DP-4,~/.config/hypr/wallpapers/wallpaper2.png +ipc = off diff --git a/config/hypr/monitors.conf b/config/hypr/monitors.conf new file mode 100644 index 0000000..335946e --- /dev/null +++ b/config/hypr/monitors.conf @@ -0,0 +1,19 @@ +# Configure Monitor Setup for Hyprland + +# Assign Monitors +#monitor=DP-2,3440x1440@100,0x0,1 +#monitor=HDMI-A-1,1920x1080@60,3440x160,1 +#monitor=DP-3,disable + +# Set Default Workspaces +#workspace=HDMI-A-1,7 +#workspace=DP-2,1 + + +monitor=eDP-1,2256x1504@60,0x0,1.5 +#monitor=DP-2,1024x786,2256x0,1 +workspace=eDP-1,1 +#monitor=DP-1,preferred,auto,1 +#monitor=DP-2,preferred,auto,1 +#monitor=DP-3,preferred,auto,1 +#monitor=DP-4,preferred,auto,1 diff --git a/config/hypr/portal.sh b/config/hypr/portal.sh new file mode 100755 index 0000000..8f692bf --- /dev/null +++ b/config/hypr/portal.sh @@ -0,0 +1,8 @@ +#!/bin/bash +sleep 1 +killall xdg-desktop-portal-hyprland +killall xdg-desktop-portal-wlr +killall xdg-desktop-portal +/usr/lib/xdg-desktop-portal-hyprland & +sleep 2 +/usr/lib/xdg-desktop-portal & diff --git a/config/hypr/windowrules.conf b/config/hypr/windowrules.conf new file mode 100644 index 0000000..cbefe83 --- /dev/null +++ b/config/hypr/windowrules.conf @@ -0,0 +1,22 @@ +# Window Rule Config File + +# WLogout Configuration +# Might move to separate file cause screen resolutions whack + +windowrule=nofocus,ibus,^(Ibus-ui-gtk3)$ + +windowrule=move 720 222,wlogout +windowrule=size 2000 1000,wlogout +windowrule=tile,xyz +windowrule=float,wlogout +windowrule=pseudo,abc +windowrule=monitor 0,wlogout + +# Don't blur performance intensive applications +windowrule=noblur,osu! +windowrule=noblur,^(firefox)$ +windowrule=noblur,^(librewolf)$ +windowrule=noblur,Blender +windowrule=noblur,Steam +windowrule=noblur,nheko +#windowrulev2=noblur,fullscreen:1 diff --git a/configuration.nix b/configuration.nix index c15abe5..e71161c 100644 --- a/configuration.nix +++ b/configuration.nix @@ -3,51 +3,35 @@ # and in the NixOS manual (accessible by running `nixos-help`). -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: { imports = - [ # Include the results of the hardware scan. + [ ./packages/default.nix - ./hosts/lappy/default.nix ]; # Use the systemd-boot EFI boot loader. boot.kernelPackages = pkgs.linuxPackages_zen; boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = false; - boot.kernelParams = [ - "intel_pstate=no_hwp" - "kernel.yama.ptrace_scope=0" - "mem_sleep_default=deep" - "module_blacklist=hid_sensor_hub" - "intel_iommu=on" - "iommu=pt" - "i915.enable_guc=7" - ]; + nix.settings.experimental-features = [ "nix-command" "flakes" ]; - # Select internationalisation properties. - # i18n.defaultLocale = "en_US.UTF-8"; - # console = { - # font = "Lat2-Terminus16"; - # keyMap = "us"; - # useXkbConfig = true; # use xkbOptions in tty. - # }; - # Enable the X11 windowing system. services.xserver.enable = false; # Enable CUPS to print documents. services.printing.enable = true; - programs.waybar.enable = true; # Swaylock allow to unlock security.pam.services.swaylock = {}; + security.sudo.wheelNeedsPassword=false; security.rtkit.enable = true; services.gnome.gnome-keyring.enable = true; + services.usbmuxd.enable = true; services.pipewire = { enable = true; pulse.enable = true; @@ -55,6 +39,9 @@ }; programs.zsh.enable = true; + programs.openvpn3.enable = true; + programs.hyprland.enable = true; + programs.neovim = { enable = true; @@ -77,15 +64,13 @@ }; }; - hardware.opengl = { - enable = true; - driSupport = true; - extraPackages = with pkgs; [ - intel-compute-runtime - intel-media-driver - ]; - }; + boot.kernel.sysctl."kernel.sched_rt_runtime_us" = -1; + + nixpkgs.config.allowUnfreePredicate = pkg: + builtins.elem ( lib.getName pkg) [ + "osu-lazer" + ]; users.mutableUsers = false; users.users.stitchynyan = { @@ -94,35 +79,24 @@ home = "/home/stitchynyan"; description = "Personal user"; extraGroups = [ "wheel" "networkmanager" "kvm" "libvirt" "audio" ]; - initialHashedPassword = "$y$j9T$.1iv0BlWGzmxQlrpLGJ4H0$JhjoFDhA9mUpPa.uNbVhkBSiO/7rk8D2i.A4jUy94IC"; + initialHashedPassword = "$y$j9T$rvySCWHYE4AO4A9J0Vf20.$x5hpBNsOWovQFtNfFUIt17OAH5MJFwFBGjxbaEIagJ3"; }; - # 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 = [ 22000 ]; - networking.firewall.allowedUDPPorts = [ 22000 ]; - # Or disable the firewall altogether. - networking.firewall.enable = true; - - # 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? - + networking.firewall = { + enable = true; + # if packets are still dropped, they will show up in dmesg + logReversePathDrops = true; + # wireguard trips rpfilter up + extraCommands = '' + ip46tables -t mangle -I nixos-fw-rpfilter -p udp -m udp --sport 47111 -j RETURN + ip46tables -t mangle -I nixos-fw-rpfilter -p udp -m udp --dport 47111 -j RETURN + ''; + extraStopCommands = '' + ip46tables -t mangle -D nixos-fw-rpfilter -p udp -m udp --sport 47111 -j RETURN || true + ip46tables -t mangle -D nixos-fw-rpfilter -p udp -m udp --dport 47111 -j RETURN || true + ''; + # Open ports in the firewall. + allowedTCPPorts = [ 22000 ]; + allowedUDPPorts = [ 22000 ]; + }; } - diff --git a/flake.lock b/flake.lock index cbcde07..0a03497 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,87 @@ { "nodes": { + "eww": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1703102678, + "narHash": "sha256-MR91Ytt9Jf63dshn7LX64LWAVygbZgQYkcTIKhfVNXI=", + "owner": "elkowar", + "repo": "eww", + "rev": "65d622c81f2e753f462d23121fa1939b0a84a3e0", + "type": "github" + }, + "original": { + "owner": "elkowar", + "repo": "eww", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1627913399, + "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "locked": { + "lastModified": 1656928814, + "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "locked": { + "lastModified": 1623875721, + "narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "f7e004a55b120c02ecb6219596820fcd32ca8772", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -7,11 +89,11 @@ ] }, "locked": { - "lastModified": 1691225770, - "narHash": "sha256-O5slH8nW8msTAqVAS5rkvdHSkjmrO+JauuSDzZCmv2M=", + "lastModified": 1705446327, + "narHash": "sha256-n7FCuAR2BI1SvLjF6eFc8VE6WLZCMlbToyfqU2ihbkU=", "owner": "nix-community", "repo": "home-manager", - "rev": "0a014a729cdd54d9919ff36b714d047909d7a4c8", + "rev": "16cefa78cc801911ebd4ff1faddc6280ab3c9228", "type": "github" }, "original": { @@ -24,16 +106,17 @@ "hyprland": { "inputs": { "hyprland-protocols": "hyprland-protocols", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_2", + "systems": "systems", "wlroots": "wlroots", "xdph": "xdph" }, "locked": { - "lastModified": 1691270973, - "narHash": "sha256-mm4JEJ8zTfSZPurYFOczJFuUUVlI+iBZKxbpcgKWN+M=", + "lastModified": 1705332646, + "narHash": "sha256-D/7HUGGYBZHn8Zjs8Agf2i8mL64uqksKEjXz1QAd80c=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "a077b7a92e87a3edd1cebb9bdd4c4fa3ec3d7bb7", + "rev": "3c964a9fdc220250a85b1c498e5b6fad9390272f", "type": "github" }, "original": { @@ -47,14 +130,18 @@ "nixpkgs": [ "hyprland", "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" ] }, "locked": { - "lastModified": 1684265364, - "narHash": "sha256-AxNnWbthsuNx73HDQr0eBxrcE3+yfl/WsaXZqUFmkpQ=", + "lastModified": 1691753796, + "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "8c279b9fb0f2b031427dc5ef4eab53f2ed835530", + "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03", "type": "github" }, "original": { @@ -63,29 +150,51 @@ "type": "github" } }, - "nixpkgs": { + "hyprlang": { + "inputs": { + "nixpkgs": [ + "hyprland", + "xdph", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1690179384, - "narHash": "sha256-+arbgqFTAtoeKtepW9wCnA0njCOyoiDFyl0Q0SBSOtE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "b12803b6d90e2e583429bb79b859ca53c348b39a", + "lastModified": 1704287638, + "narHash": "sha256-TuRXJGwtK440AXQNl5eiqmQqY4LZ/9+z/R7xC0ie3iA=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "6624f2bb66d4d27975766e81f77174adbe58ec97", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-unstable", + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1661353537, + "narHash": "sha256-1E2IGPajOsrkR49mM5h55OtYnU0dGyre6gl60NXKITE=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0e304ff0d9db453a4b230e9386418fd974d5804a", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1691186842, - "narHash": "sha256-wxBVCvZUwq+XS4N4t9NqsHV4E64cPVqQ2fdDISpjcw0=", + "lastModified": 1705133751, + "narHash": "sha256-rCIsyE80jgiOU78gCWN3A0wE0tR2GI5nH6MlS+HaaSQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "18036c0be90f4e308ae3ebcab0e14aae0336fe42", + "rev": "9b19f5e77dd906cb52dade0b7bd280339d2a1f3d", "type": "github" }, "original": { @@ -95,29 +204,119 @@ "type": "github" } }, + "nixpkgs_3": { + "locked": { + "lastModified": 1705316053, + "narHash": "sha256-J2Ey5mPFT8gdfL2XC0JTZvKaBw/b2pnyudEXFvl+dQM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c3e128f3c0ecc1fb04aef9f72b3dcc2f6cecf370", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1628148846, + "narHash": "sha256-V8aZJBROfNDk40cvFjKUnOnL7sF+BYwCQUUpLP8y4uE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9a8eb5a464f373e79d19d0ed2e53e0d31f78fe92", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" + } + }, + "osu-nixos": { + "inputs": { + "flake-compat": "flake-compat_2", + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1695759061, + "narHash": "sha256-s9OYi0tzWSjFUaGLnLg08tTm8OEu1uZqGTtKmIRwHic=", + "owner": "Asqiir", + "repo": "osu-nixos", + "rev": "4e0096e1eee74383b9350962d8bff094648a7968", + "type": "github" + }, + "original": { + "owner": "Asqiir", + "repo": "osu-nixos", + "type": "github" + } + }, "root": { "inputs": { + "eww": "eww", "home-manager": "home-manager", "hyprland": "hyprland", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_3", + "osu-nixos": "osu-nixos" + } + }, + "rust-overlay": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "eww", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1661655464, + "narHash": "sha256-by9Hb0mNVdiCR7TBvUHIgDb0QIv3znp8VMGh7Bl35VQ=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "0c4c1432353e12b325d1472bea99e364871d2cb3", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" } }, "wlroots": { "flake": false, "locked": { "host": "gitlab.freedesktop.org", - "lastModified": 1691073628, - "narHash": "sha256-LlxE3o3UzRY7APYVLGNKM30DBMcDifCRIQiMVSbYLIc=", + "lastModified": 1703963193, + "narHash": "sha256-ke8drv6PTrdQDruWbajrRJffP9A9PU6FRyjJGNZRTs4=", "owner": "wlroots", "repo": "wlroots", - "rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5", + "rev": "f81c3d93cd6f61b20ae784297679283438def8df", "type": "gitlab" }, "original": { "host": "gitlab.freedesktop.org", "owner": "wlroots", "repo": "wlroots", - "rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5", + "rev": "f81c3d93cd6f61b20ae784297679283438def8df", "type": "gitlab" } }, @@ -127,17 +326,22 @@ "hyprland", "hyprland-protocols" ], + "hyprlang": "hyprlang", "nixpkgs": [ "hyprland", "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" ] }, "locked": { - "lastModified": 1685385764, - "narHash": "sha256-r+XMyOoRXq+hlfjayb+fyi9kq2JK48TrwuNIAXqlj7U=", + "lastModified": 1704659450, + "narHash": "sha256-3lyoUVtUWz1LuxbltAtkJSK2IlVXmKhxCRU2/0PYCms=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "4d9ff0c17716936e0b5ca577a39e263633901ed1", + "rev": "6a5de92769d5b7038134044053f90e7458f6a197", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 90f1be9..01818d7 100644 --- a/flake.nix +++ b/flake.nix @@ -1,6 +1,37 @@ { description = "System Configuration Flake"; + + outputs = inputs@{ + nixpkgs, + home-manager, + hyprland, + eww, + osu-nixos, + ... + } : { + + nixosConfigurations = { + lappy = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { inherit inputs; }; + modules = [ + + ./configuration.nix + ./hosts/lappy/default.nix + + home-manager.nixosModules.home-manager + { + home-manager.extraSpecialArgs = {inherit inputs;}; + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.stitchynyan = import ./users/stitchynyan/home.nix; + } + ]; + }; + }; + }; + inputs = { nixpkgs = { url = "github:NixOS/nixpkgs/nixos-unstable"; @@ -12,33 +43,7 @@ }; hyprland.url = "github:hyprwm/Hyprland"; - }; - - outputs = { - nixpkgs, - home-manager, - hyprland, - ... - } @inputs : { - - system = "x86_64-linux"; - - - pkgs = import nixpkgs { - #config.allowUnfree = true; - }; - - stitchynyan = nixpkgs.lib.nixosSystem { - modules = [ - - ./configuration.nix - home-manager.nixosModules.home-manager - - { - _module.args = {inherit inputs;}; - home-manager.extraSpecialArgs = {inherit inputs;}; - } - ]; - }; + eww.url = "github:elkowar/eww"; + osu-nixos.url = "github:Asqiir/osu-nixos"; }; } diff --git a/hosts/lappy/default.nix b/hosts/lappy/default.nix index 70602fd..6e84dbd 100644 --- a/hosts/lappy/default.nix +++ b/hosts/lappy/default.nix @@ -10,13 +10,29 @@ system.nixos.tags = [ "Nya_Beginnings" ]; - networking.hostName = "stitchynyan"; + networking.hostName = "lappy"; networking.networkmanager.enable = true; time.timeZone = "America/Lost_Angeles"; + boot.kernelParams = [ + "intel_pstate=no_hwp" + "kernel.yama.ptrace_scope=0" + "mem_sleep_default=deep" + "module_blacklist=hid_sensor_hub" + "intel_iommu=on" + "iommu=pt" + "i915.enable_guc=7" + ]; + hardware.opengl = { + enable = true; + driSupport = true; + extraPackages = with pkgs; [ + intel-compute-runtime + intel-media-driver + ]; + }; - - - + # Read the Docs before Changing + system.stateVersion = "23.05"; } diff --git a/hosts/lappy/hardware-configuration.nix b/hosts/lappy/hardware-configuration.nix index e4b52bd..52e290e 100644 --- a/hosts/lappy/hardware-configuration.nix +++ b/hosts/lappy/hardware-configuration.nix @@ -16,6 +16,12 @@ options = [ "subvol=@nix-root" ]; }; + fileSystems."/home" = + { device = "/dev/disk/by-uuid/d626409d-8166-45c2-a168-09dfab31b8a4"; + fsType = "btrfs"; + options = [ "subvol=@home" ]; + }; + boot.initrd.luks.devices."luksdev".device = "/dev/disk/by-uuid/100a5596-671b-48ba-a1d1-0723559baf87"; swapDevices = [ ]; diff --git a/packages/art.nix b/packages/art.nix index 5e51933..5429ec9 100644 --- a/packages/art.nix +++ b/packages/art.nix @@ -1,5 +1,5 @@ -{ pkgs }: { +{ pkgs, ... }: { environment.systemPackages = with pkgs; [ blender diff --git a/packages/default.nix b/packages/default.nix index c8360ef..e0ee204 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -1,43 +1,43 @@ -{pkgs}: { +{ pkgs, inputs, ... }: { - import = [ + imports = [ ./art.nix - ./tools.nix + #./tools.nix ]; environment.systemPackages = with pkgs; [ + osu-lazer + inputs.osu-nixos + pinentry wget - librewolf - kitty - exa + python3 + libnotify + networkmanager-openvpn + eza + fd git zoxide - nheko gnupg - hyprpaper - xdg-desktop-portal-hyprland - dunst - pavucontrol - slurp - grim - wofi brightnessctl - imv - qt5ct - qt6ct neofetch wl-clipboard glib dracula-theme btop - swaylock-effects vimPlugins.nvim-lspconfig vimPlugins.nvim-cmp vimPlugins.cmp-nvim-lsp vimPlugins.luasnip vimPlugins.cmp_luasnip vimPlugins.tokyonight-nvim + # temporary home manager things + inotify-tools + eww-wayland + jq + socat + libimobiledevice + ifuse ]; fonts.packages= with pkgs; [ diff --git a/users/stitchynyan/home.nix b/users/stitchynyan/home.nix index 01ed186..bbe427e 100644 --- a/users/stitchynyan/home.nix +++ b/users/stitchynyan/home.nix @@ -1,12 +1,62 @@ -{ config, pkgs, ... }: +{ config, + nixosConfig, + pkgs, + inputs, + home-manager, + ... }: { imports = [ - inputs.nix-index-db.hmModules.nix-index + #inputs.nix-index-db.hmModules.nix-index ]; + # systemd.user.services.mailsync = { + #} + + home.packages = with pkgs; [ + cider + prismlauncher + firefox + librewolf + neomutt + dunst + mutt-wizard + cyrus-sasl-xoauth2 + pass + isync + msmtp + notmuch + kitty + lynx + playerctl + nheko + hyprpaper + xdg-desktop-portal-hyprland + pavucontrol + slurp + grim + wofi + imv + swaylock-effects + qt5ct + qt6ct + ]; + #programs.hyprland.enable = true; + # hyprland.homeManagerModules.default + #wayland.windowManager.hyprland.enable = true; + + xdg.configFile = { + "hypr" = { + source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/hypr"; + recursive = true; + }; + }; + + # Read the Docs before change + home.stateVersion = "23.05"; + home.homeDirectory = "/home/stitchynyan"; }