Compare commits

...

7 commits

12 changed files with 621 additions and 88 deletions

View file

@ -15,6 +15,7 @@
(gnu home services shells) (gnu home services shells)
(gnu home services desktop) (gnu home services desktop)
(gnu home services gnupg) (gnu home services gnupg)
(gnu home services fontutils)
(gnu home services) (gnu home services)
(ryan-services pipewire) (ryan-services pipewire)
(ryan-services spotify) (ryan-services spotify)
@ -134,7 +135,7 @@
"signal-desktop" "signal-desktop"
"sc-im" "sc-im"
"git-lfs")) "git-lfs"))
(list my-neovim wl-mirror firefox-wrapped calcurse-fixed ))) (list my-neovim wl-mirror calcurse-fixed )))
;; Below is the list of Home services. To search for available ;; Below is the list of Home services. To search for available
;; services, run 'guix home search KEYWORD' in a terminal. ;; services, run 'guix home search KEYWORD' in a terminal.
@ -155,6 +156,7 @@
("nvim/after/ftplugin/mail/custom.vim" ,(local-file "nvim/config/after/ftplugin/mail/custom.vim")) ("nvim/after/ftplugin/mail/custom.vim" ,(local-file "nvim/config/after/ftplugin/mail/custom.vim"))
("sway" ,(local-file "sway" #:recursive? #t)) ("sway" ,(local-file "sway" #:recursive? #t))
("hypr" ,(local-file "hypr" #:recursive? #t)) ("hypr" ,(local-file "hypr" #:recursive? #t))
("wpaperd" ,(local-file "wpaperd" #:recursive? #t))
("mpv" ,(local-file "mpv" #:recursive? #t)) ("mpv" ,(local-file "mpv" #:recursive? #t))
("foot" ,(local-file "foot" #:recursive? #t)) ("foot" ,(local-file "foot" #:recursive? #t))
("pulse/client.conf" ,(local-file "pulseaudio/client.conf")) ("pulse/client.conf" ,(local-file "pulseaudio/client.conf"))
@ -165,15 +167,34 @@
`((".local/share/nvim/site/autoload/plug.vim" ,(local-file "nvim/plugin-manager/plug.vim")) `((".local/share/nvim/site/autoload/plug.vim" ,(local-file "nvim/plugin-manager/plug.vim"))
(".ssh/config" ,(local-file "ssh/config")) (".ssh/config" ,(local-file "ssh/config"))
(".icons" ,(local-file "icons" #:recursive? #t)) (".icons" ,(local-file "icons" #:recursive? #t))
(".mozilla/native-messaging-hosts/tridactyl.json" ,(local-file "tridactyl/tridactyl.json")) ;(".mozilla/native-messaging-hosts/tridactyl.json" ,(local-file "tridactyl/tridactyl.json"))
;(".gnupg/sshcontrol" ,(local-file "gnupg/sshcontrol")) ;(".gnupg/sshcontrol" ,(local-file "gnupg/sshcontrol"))
;(".gnupg/gpg-agent.conf" ,(local-file "gnupg/gpg-agent.conf")) ;(".gnupg/gpg-agent.conf" ,(local-file "gnupg/gpg-agent.conf"))
(".fonts" ,(local-file "fonts" #:recursive? #t)) (".local/share/fonts" ,(local-file "fonts" #:recursive? #t))
(".gitconfig" ,(local-file "gitconfig")) (".gitconfig" ,(local-file "gitconfig"))
(".docker/cli-plugins" ,(local-file "docker/cli-plugins" #:recursive? #t)) (".docker/cli-plugins" ,(local-file "docker/cli-plugins" #:recursive? #t))
(".nix-channels" ,(local-file "nix-channels")))) (".nix-channels" ,(local-file "nix-channels"))))
(service home-pipewire-service-type) (service home-pipewire-service-type)
(service home-spotifyd-service-type) (service home-spotifyd-service-type)
; font things for nix to play nice
(simple-service 'additional-fonts-service
home-fontconfig-service-type
(list "~/.nix-profile/share/fonts"
'(match (@ (target "pattern"))
(edit (@ (name "family") (mode "prepend"))
(string "DejaVu Sans")))
'(alias
(family "serif")
(prefer
(family "DejaVu Serif")))
'(alias
(family "sans")
(prefer
(family "DejaVu Sans")))
'(alias
(family "monospace")
(prefer
(family "DejaVu Sans Mono")))))
(service home-dbus-service-type) (service home-dbus-service-type)
;;; trying some changes ;;; trying some changes
;(template-files "." ;(template-files "."

View file

@ -11,7 +11,9 @@ nice -n13 swww init &
#~/.config/hypr/wallpaper-daemon.sh & #~/.config/hypr/wallpaper-daemon.sh &
wpaperd -d & wpaperd -d &
swayidle -w timeout 300 'swaylock --screenshots --clock --indicator --grace 3 --fade-in 1 --effect-blur 7x5 --effect-greyscale' timeout 600 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' before-sleep 'swaylock -f -c 000000' & #swayidle -w timeout 300 'swaylock --screenshots --clock --indicator --grace 3 --fade-in 1 --effect-blur 7x5 --effect-greyscale' timeout 600 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' before-sleep 'swaylock -f -c 000000' &
hypridle &
syncthing serve --no-browser & syncthing serve --no-browser &

View file

@ -0,0 +1,16 @@
general {
lock_cmd = pidof hyprlock || hyprlock
before_sleep_cmd = loginctl lock-session
after_sleep_cmd = hyprctl dispatch dpms on
}
listener {
timeout = 300
on-timeout = loginctl lock-session
}
listener {
timeout = 600
on-timeout = hyprctl dispatch dpms off
on-resume = hyprctl dispatch dpms on
}

View file

@ -14,6 +14,8 @@ env = HYPRCURSOR_SIZE,26
env = XCURSOR_THEME,XCursor-Pro-Dark env = XCURSOR_THEME,XCursor-Pro-Dark
env = XCURSOR_SIZE,26 env = XCURSOR_SIZE,26
env = AQ_NO_MODIFIERS,1
# See https://wiki.hyprland.org/Configuring/Keywords/ for more # See https://wiki.hyprland.org/Configuring/Keywords/ for more
@ -72,10 +74,12 @@ decoration {
new_optimizations = on new_optimizations = on
} }
drop_shadow = yes shadow {
shadow_range = 4 enabled = true
shadow_render_power = 3 range = 4
col.shadow = rgba(1a1a1aee) render_power = 3
color = rgba(1a1a1aee)
}
} }
animations { animations {
@ -203,8 +207,11 @@ bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow bindm = $mainMod, mouse:273, resizewindow
# Bind mainMod + L to screenlocker # Bind mainMod + L to screenlocker
bind = $mainMod, L, exec, swaylock --screenshots --clock --indicator --fade-in 0.3 --effect-blur 7x5 --effect-greyscale bind = $mainMod, L, exec, hyprlock
bind = $mainMod SHIFT, L, exec, swaylock --screenshots --clock --indicator --effect-blur 7x5 --effect-greyscale & sleep 0.5; loginctl suspend bind = $mainMod SHIFT, L, exec, loginctl suspend
# Keybind to toggle "performance mode" (toggles GPU intensive things)
bind = $mainMod, F1, exec, ~/.config/hypr/perf_mode.sh
# Keybind for screenshot # Keybind for screenshot
bind = $mainMod SHIFT, S, exec, grimblast copy area bind = $mainMod SHIFT, S, exec, grimblast copy area
@ -236,7 +243,7 @@ windowrulev2 = suppressevent fullscreen maximize, class:^(firefox)$, title:^(Fir
# Weather # Weather
windowrulev2 = float,class:^(ala-wttr)$ windowrulev2 = float,class:^(ala-wttr)$
windowrulev2 = size 740 712, class:^(ala-wttr)$ windowrulev2 = size 822 1026, class:^(ala-wttr)$
# Floating terminal # Floating terminal
windowrulev2 = float,class:^(float-foot)$ windowrulev2 = float,class:^(float-foot)$

View file

@ -1,6 +1,7 @@
background { background {
monitor = monitor =
path = /home/ryan/.config/hypr/Wallpapers/static/autumn1.png #path = /home/ryan/.config/hypr/Wallpapers/static/autumn1.png
path = screenshot
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
blur_passes = 2 # 0 disables blurring blur_passes = 2 # 0 disables blurring
@ -52,4 +53,5 @@ label {
position = 0, 300 position = 0, 300
halign = center halign = center
valign = center valign = center
font_family = Lilex Nerd Font
} }

View file

@ -2,11 +2,6 @@ profile {
output "AU Optronics 0x103D Unknown" enable output "AU Optronics 0x103D Unknown" enable
} }
profile tylerdesk {
output "AU Optronics 0x103D Unknown" disable
output "Dell Inc. DELL U3421WE 6WK8753" enable
}
profile emilydesk { profile emilydesk {
output "AU Optronics 0x103D Unknown" disable output "AU Optronics 0x103D Unknown" disable
output "Dell Inc. DELL U2422H JN4SF83" position 0,0 mode 1920x1080 output "Dell Inc. DELL U2422H JN4SF83" position 0,0 mode 1920x1080
@ -19,3 +14,9 @@ profile justindesk {
output "Dell Inc. DELL U2417H XVNNT7CDC80L" position 1920,0 mode 1920x1080 output "Dell Inc. DELL U2417H XVNNT7CDC80L" position 1920,0 mode 1920x1080
output "Dell Inc. DELL U2417H XVNNT82M978L" position 3840,0 mode 1920x1080 output "Dell Inc. DELL U2417H XVNNT82M978L" position 3840,0 mode 1920x1080
} }
profile homedesk {
output "AU Optronics 0x103D Unknown" disable
output "Samsung Electric Company C27F390 H1AK500000" position 0,0 mode 1920x1080
output "Samsung Electric Company S22R35x H4TNA01683" position 1920,0 mode 1920x1080
}

14
home-config/hypr/perf_mode.sh Executable file
View file

@ -0,0 +1,14 @@
#!/usr/bin/env bash
HYPRGAMEMODE=$(hyprctl getoption animations:enabled | awk 'NR==1{print $2}')
if [ "$HYPRGAMEMODE" = 1 ] ; then
hyprctl --batch "\
keyword animations:enabled 0;\
keyword decoration:drop_shadow 0;\
keyword decoration:blur:enabled 0;\
keyword general:gaps_in 0;\
keyword general:gaps_out 0;\
keyword general:border_size 1;\
keyword decoration:rounding 0"
exit
fi
hyprctl reload

View file

@ -20,11 +20,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1727261104, "lastModified": 1730968822,
"narHash": "sha256-rxDI7WrxIRV9it9mDCHcLa7xQykf1JloXnoXr5xQ8zI=", "narHash": "sha256-NocDjINsh6ismkhb0Xr6xPRksmhuB2WGf8ZmXMhxu7Y=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "b82fdaff917582a9d568969e15e61b398c71e990", "rev": "a49bc3583ff223f426cb3526fdaa4bcaa247ec14",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -33,6 +33,22 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"locked": { "locked": {
"lastModified": 1659877975, "lastModified": 1659877975,
@ -48,6 +64,28 @@
"type": "github" "type": "github"
} }
}, },
"gitignore": {
"inputs": {
"nixpkgs": [
"hyprland",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -55,17 +93,17 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1729321331, "lastModified": 1731604581,
"narHash": "sha256-KVyQq+ez/oB30/WbdNgVD8g/bda34z8NiU187QKQb74=", "narHash": "sha256-Qq2YZZaDTB3FZLWU/Hgh1uuWlUBl3cMLGB99bm7rFUM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "122f70545b29ccb922e655b08acfe05bfb44ec68", "rev": "1d0862ee2d7c6f6cd720d6f32213fa425004be10",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "122f70545b29ccb922e655b08acfe05bfb44ec68", "rev": "1d0862ee2d7c6f6cd720d6f32213fa425004be10",
"type": "github" "type": "github"
} }
}, },
@ -85,11 +123,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1727532803, "lastModified": 1728669738,
"narHash": "sha256-ZaZ7h7PY8mQc4vtGmVqWLAq9CAO02gHMyNR5yY8zDmM=", "narHash": "sha256-EDNAU9AYcx8OupUzbTbWE1d3HYdeG0wO6Msg3iL1muk=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprcursor", "repo": "hyprcursor",
"rev": "b98726e431d4d3ed58bd58bee1047cdb81cec69f", "rev": "0264e698149fcb857a66a53018157b41f8d97bb0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -109,20 +147,21 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems", "systems": "systems",
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1728478479, "lastModified": 1731162467,
"narHash": "sha256-AbfdIlK92oWpI39xlIaUekPeL9u95sXzxVsSqhIMfIc=", "narHash": "sha256-b0w2XOVCuEdBIiTpKaaeSesKux1Q51YWEWdKbljDXPE=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland", "repo": "hyprland",
"rev": "4520b30d498daca8079365bdb909a8dea38e8d55", "rev": "a425fbebe4cf4238e48a42f724ef2208959d66cf",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hyprwm", "owner": "hyprwm",
"ref": "v0.44.1", "ref": "v0.45.0",
"repo": "hyprland", "repo": "hyprland",
"type": "github" "type": "github"
} }
@ -139,38 +178,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1727451107, "lastModified": 1728345020,
"narHash": "sha256-qV9savtHwmZUa0eJE294WYJjKPGB2+bJhwByFShsVyo=", "narHash": "sha256-xGbkc7U/Roe0/Cv3iKlzijIaFBNguasI31ynL2IlEoM=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-protocols", "repo": "hyprland-protocols",
"rev": "6b3261ee13a6d2b99de79a31d352f6996e35bde3", "rev": "a7c183800e74f337753de186522b9017a07a8cee",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprland-protocols_2": {
"inputs": {
"nixpkgs": [
"hyprland",
"xdph",
"nixpkgs"
],
"systems": [
"hyprland",
"xdph",
"systems"
]
},
"locked": {
"lastModified": 1721326555,
"narHash": "sha256-zCu4R0CSHEactW9JqYki26gy8h9f6rHmSwj4XJmlHgg=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "5a11232266bf1a1f5952d5b179c3f4b2facaaa84",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -195,11 +207,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1725997860, "lastModified": 1728168612,
"narHash": "sha256-d/rZ/fHR5l1n7PeyLw0StWMNLXVU9c4HFyfskw568so=", "narHash": "sha256-AnB1KfiXINmuiW7BALYrKqcjCnsLZPifhb/7BsfPbns=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprlang", "repo": "hyprlang",
"rev": "dfeb5811dd6485490cce18d6cc1e38a055eea876", "rev": "f054f2e44d6a0b74607a6bc0f52dba337a3db38e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -244,11 +256,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1727300645, "lastModified": 1730968903,
"narHash": "sha256-OvAtVLaSRPnbXzOwlR1fVqCXR7i+ICRX3aPMCdIiv+c=", "narHash": "sha256-zFvzLXcSm0Ia4XI1SE4FQ9KE63hlGrRWhLtwMolWuR8=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "3f5293432b6dc6a99f26aca2eba3876d2660665c", "rev": "3ce0cde8709cdacbfba471f8e828433b58a561e9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -356,17 +368,57 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1729168305, "lastModified": 1731603729,
"narHash": "sha256-jmhxZnrlOyLEMUL2+JkVfkN0XWXI5uE6EB5kVZFR0fo=", "narHash": "sha256-ChqaWsSIi+8zprudu16K3MskXr7iORzMGmYutWHCmKQ=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2a55bdc8cfcf41551323a4a6cef24d3f566c824d", "rev": "f49e820fbc9450736bb6ba982a2ff0a8d014ad1e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2a55bdc8cfcf41551323a4a6cef24d3f566c824d", "rev": "f49e820fbc9450736bb6ba982a2ff0a8d014ad1e",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1730741070,
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1730814269,
"narHash": "sha256-fWPHyhYE6xvMI1eGY3pwBTq85wcy1YXqdzTZF+06nOg=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "d70155fdc00df4628446352fc58adc640cd705c2",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github" "type": "github"
} }
}, },
@ -376,7 +428,29 @@
"hyprland": "hyprland", "hyprland": "hyprland",
"hyprpicker-git": "hyprpicker-git", "hyprpicker-git": "hyprpicker-git",
"nixgl": "nixgl", "nixgl": "nixgl",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs",
"wpaperd": "wpaperd"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"wpaperd",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729391507,
"narHash": "sha256-as0I9xieJUHf7kiK2a9znDsVZQTFWhM1pLivII43Gi0=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "784981a9feeba406de38c1c9a3decf966d853cca",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
} }
}, },
"systems": { "systems": {
@ -409,9 +483,50 @@
"type": "github" "type": "github"
} }
}, },
"systems_3": {
"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"
}
},
"wpaperd": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay",
"systems": "systems_3"
},
"locked": {
"lastModified": 1731514601,
"narHash": "sha256-NnDxLG02klftsWl8i8ZmRIUeIPCx2HtBsEFQwzbJ3ws=",
"owner": "danyspin97",
"repo": "wpaperd",
"rev": "7865433233ff58f33ca4af94fd5031e26f409f52",
"type": "github"
},
"original": {
"owner": "danyspin97",
"repo": "wpaperd",
"rev": "7865433233ff58f33ca4af94fd5031e26f409f52",
"type": "github"
}
},
"xdph": { "xdph": {
"inputs": { "inputs": {
"hyprland-protocols": "hyprland-protocols_2", "hyprland-protocols": [
"hyprland",
"hyprland-protocols"
],
"hyprlang": [ "hyprlang": [
"hyprland", "hyprland",
"hyprlang" "hyprlang"
@ -434,11 +549,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1727524473, "lastModified": 1730743262,
"narHash": "sha256-1DGktDtSWIJpnDbVoj/qpvJSH5zg6JbOfuh6xqZMap0=", "narHash": "sha256-iTLqj3lU8kFehPm5tXpctzkD274t/k1nwSSq3qCWXeg=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "7e500e679ede40e79cf2d89b5f5fa3e34923bd26", "rev": "09b23cef06fe248e61cec8862c04b9bcb62f4b6d",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -3,9 +3,9 @@
inputs = { inputs = {
# Specify the source of Home Manager and Nixpkgs. # Specify the source of Home Manager and Nixpkgs.
nixpkgs.url = "github:nixos/nixpkgs/2a55bdc8cfcf41551323a4a6cef24d3f566c824d"; nixpkgs.url = "github:nixos/nixpkgs/f49e820fbc9450736bb6ba982a2ff0a8d014ad1e";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/122f70545b29ccb922e655b08acfe05bfb44ec68"; url = "github:nix-community/home-manager/1d0862ee2d7c6f6cd720d6f32213fa425004be10";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
hyprpicker-git = { hyprpicker-git = {
@ -13,22 +13,28 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
hyprland = { hyprland = {
url = "github:hyprwm/hyprland/v0.44.1"; url = "github:hyprwm/hyprland/v0.45.0";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nixgl = { nixgl = {
url = "github:nix-community/nixGL/310f8e49a149e4c9ea52f1adf70cdc768ec53f8a"; url = "github:nix-community/nixGL/310f8e49a149e4c9ea52f1adf70cdc768ec53f8a";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
wpaperd = {
url = "github:danyspin97/wpaperd/7865433233ff58f33ca4af94fd5031e26f409f52";
inputs.nixpkgs.follows = "nixpkgs";
};
#mozff.url = "github:mozilla/nixpkgs-mozilla";
}; };
outputs = { nixpkgs, home-manager, hyprpicker-git, hyprland, nixgl, ... }@inputs: outputs = { nixpkgs, home-manager, hyprpicker-git, hyprland, nixgl, wpaperd, ... }@inputs:
let let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
overlays = [ overlays = [
hyprpicker-git.overlays.default hyprpicker-git.overlays.default
nixgl.overlay nixgl.overlay
#mozff.overlays.firefox
]; ];
in { in {
homeConfigurations."ryan" = home-manager.lib.homeManagerConfiguration { homeConfigurations."ryan" = home-manager.lib.homeManagerConfiguration {
@ -37,19 +43,20 @@
# Specify your home configuration modules here, for example, # Specify your home configuration modules here, for example,
# the path to your home.nix. # the path to your home.nix.
modules = [ modules = [
./home.nix
{nixpkgs.overlays = overlays;} {nixpkgs.overlays = overlays;}
./home.nix
{ {
_module.args = { _module.args = {
inherit hyprland; inherit hyprland;
inherit nixgl; inherit nixgl;
inherit wpaperd;
}; };
} }
]; ];
# Optionally use extraSpecialArgs # Optionally use extraSpecialArgs
# to pass through arguments to home.nix # to pass through arguments to home.nix
#extraSpecialArgs = { inherit inputs; }; # extraSpecialArgs = { inherit overlays; };
}; };
}; };
} }

View file

@ -1,5 +1,14 @@
{ config, pkgs, hyprland, nixgl, ... }: { config, pkgs, hyprland, nixgl, wpaperd, ... }:
let
lock-false = {
Value = false;
Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
in
{ {
# Home Manager needs a bit of information about you and the paths it should # Home Manager needs a bit of information about you and the paths it should
# manage. # manage.
@ -20,9 +29,319 @@
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
#targets.genericLinux.enable = true; #targets.genericLinux.enable = true;
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
fonts.fontconfig.defaultFonts = {
monospace = [ "DejaVu Sans Mono" ];
sansSerif = [ "DejaVu Sans" ];
serif = [ "DejaVu Serif" ];
};
# wayland.windowManager.hyprland.enable = true; # wayland.windowManager.hyprland.enable = true;
# Install firefox and add some customizations
programs.firefox = {
enable = true;
policies = {
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
EmailTracking = true;
};
UserMessaging = {
WhatsNew = false;
ExtensionRecommendations = false;
FeatureRecommendations = false;
UrlbarInterventions = false;
SkipOnboarding = true;
MoreFromMozilla = false;
Labs = false;
Locked = true;
};
DisableAppUpdate = true;
DisableAccounts = true;
DisableFirefoxAccounts = true;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableTelemetry = true;
AutofillAddressEnabled = false;
AutofillCreditCardEnabled = false;
DisableMasterPasswordCreation = true;
PasswordManagerEnabled = false;
PrimaryPassword = false;
OfferToSaveLogins = false;
NoDefaultBookmarks = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
FirefoxHome = {
Search = true;
TopSites = true;
SponsoredTopSites = false;
Highlights = false;
Pocket = false;
SponsoredPocket = false;
Snippets = false;
Locked = true;
};
SearchSuggestEnabled = true;
FirefoxSuggest = {
WebSuggestions = true;
SponsoredSuggestions = false;
ImproveSuggest = false;
Locked = true;
};
PictureInPicture = lock-true;
HardwareAcceleration = true;
Certificates = {
ImportEnterpriseRoots = true;
};
ExtensionSettings = {
#"*".installation_mode = "blocked";
# uBlock Origin
"uBlock0@raymondhill.net" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
installation_mode = "force_installed";
};
# Bitwarden
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi";
installation_mode = "force_installed";
};
# SponsorBlock
"sponsorBlocker@ajay.app" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/sponsorblock/latest.xpi";
installation_mode = "force_installed";
};
# DeArrow
"deArrow@ajay.app" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/dearrow/latest.xpi";
installation_mode = "force_installed";
};
# Return Youtube Dislike
"{762f9885-5a13-4abd-9c77-433dcd38b8fd}" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/return-youtube-dislikes/latest.xpi";
installation_mode = "force_installed";
};
# Youtube Nonstop
"{0d7cafdd-501c-49ca-8ebb-e3341caaa55e}" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/youtube-nonstop/latest.xpi";
installation_mode = "force_installed";
};
# Sidebery
"{3c078156-979c-498b-8990-85f7987dd929}" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/sidebery/latest.xpi";
installation_mode = "normal_installed";
};
# TamperMonkey
"firefox@tampermonkey.net" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/tampermonkey/latest.xpi";
installation_mode = "force_installed";
};
# Floccus
"floccus@handmadeideas.org" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/floccus/latest.xpi";
installation_mode = "force_installed";
};
};
Preferences = {
"browser.startup.homepage" = "https://d.in.rschanz.org";
"extensions.activeThemeID" = {
Value = "firefox-compact-dark@mozilla.org";
Status = "locked";
};
"toolkit.legacyUserProfileCustomizations.stylesheets" = lock-true;
"xpinstall.whitelist.required" = lock-true;
"dom.webgpu.enabled" = lock-true;
"media.eme.enabled" = lock-true;
"general.autoScroll" = lock-true;
"general.smoothScroll" = lock-true;
"browser.crashReports.unsubmittedCheck.autoSubmit2" = lock-false;
"browser.aboutConfig.showWarning" = lock-false;
};
};
profiles.${config.home.username} = {
name = "${config.home.username}";
isDefault = true;
containersForce = true;
containers = {
rit = {
name = "RIT";
color = "orange";
icon = "dollar";
id = 1;
};
ritwork = {
name = "RIT Work";
color = "green";
icon = "briefcase";
id = 2;
};
other = {
name = "Other";
color = "blue";
icon = "fingerprint";
id = 3;
};
};
search = {
force = true;
default = "DuckDuckGo";
order = ["DuckDuckGo" "Google"];
engines = {
"Nix Packages" = {
urls = [
{
template = "https://search.nixos.org/packages";
params = [
{
name = "type";
value = "packages";
}
{
name = "channel";
value = "unstable";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["@np"];
};
};
};
userChrome = "
#main-window #titlebar {
overflow: hidden;
transition: height 0.3s 0.3s !important;
}
/* Default state: Set initial height to enable animation */
#main-window #titlebar { height: 3em !important; }
#main-window[uidensity=\"touch\"] #titlebar { height: 3.35em !important; }
#main-window[uidensity=\"compact\"] #titlebar { height: 2.7em !important; }
/* Hidden state: Hide native tabs strip */
#main-window[titlepreface*=\"\"] #titlebar { height: 0 !important; }
/* Hidden state: Fix z-index of active pinned tabs */
#main-window[titlepreface*=\"\"] #tabbrowser-tabs { z-index: 0 !important; }
/* Sidebery expand on mouse-over and hide otherwise */
/* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/autohide_sidebar.css made available under Mozilla Public License v. 2.0
See the above repository for updates as well as full license text. */
/* Show sidebar only when the cursor is over it */
/* The border controlling sidebar width will be removed so you'll need to modify these values to change width */
#sidebar-box{
--uc-sidebar-width: 60px;
--uc-sidebar-hover-width: 230px;
--uc-autohide-sidebar-delay: 200ms; /* Wait 0.2s before hiding sidebar */
--uc-autohide-transition-duration: 115ms;
--uc-autohide-transition-type: linear;
--browser-area-z-index-sidebar: 3;
position: relative;
min-width: var(--uc-sidebar-width) !important;
width: var(--uc-sidebar-width) !important;
max-width: var(--uc-sidebar-width) !important;
z-index: var(--browser-area-z-index-sidebar,3);
}
#sidebar-box[positionend]{ direction: rtl }
#sidebar-box[positionend] > *{ direction: ltr }
#sidebar-box[positionend]:-moz-locale-dir(rtl){ direction: ltr }
#sidebar-box[positionend]:-moz-locale-dir(rtl) > *{ direction: rtl }
#main-window[sizemode=\"fullscreen\"] #sidebar-box{ --uc-sidebar-width: 1px; }
#sidebar-splitter{ display: none }
#sidebar-header{
overflow: hidden;
color: var(--chrome-color, inherit) !important;
padding-inline: 0 !important;
}
#sidebar-header::before,
#sidebar-header::after{
content: \"\";
display: flex;
padding-left: 8px;
}
#sidebar-header,
#sidebar{
transition: min-width var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important;
min-width: var(--uc-sidebar-width) !important;
will-change: min-width;
}
#sidebar-box:hover > #sidebar-header,
#sidebar-box:hover > #sidebar{
min-width: var(--uc-sidebar-hover-width) !important;
transition-delay: 0ms !important;
}
.sidebar-panel{
background-color: transparent !important;
color: var(--newtab-text-primary-color) !important;
}
.sidebar-panel #search-box{
-moz-appearance: none !important;
background-color: rgba(249,249,250,0.1) !important;
color: inherit !important;
}
/* Add sidebar divider and give it background */
#sidebar,
#sidebar-header{
background-color: inherit !important;
border-inline: 1px solid rgb(80,80,80);
border-inline-width: 0px 1px;
}
#sidebar-box:not([positionend]) > :-moz-locale-dir(rtl),
#sidebar-box[positionend] > *{
border-inline-width: 1px 0px;
}
/* Move statuspanel to the other side when sidebar is hovered so it doesn't get covered by sidebar */
#sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel{
inset-inline: auto 0px !important;
}
#sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel-label{
margin-inline: 0px !important;
border-left-style: solid !important;
}
/* Remove the tabs label and move the Sidebary icon to the center of the box */
#sidebar-box:hover [id=\"sidebar-icon\"] {
transform: translateX(0px) !important;
transition-delay: 0ms !important;
}
#sidebar-box [id=\"sidebar-icon\"] {
transform: translateX(9px);
transition: transform var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important;
}
#sidebar-box [id=\"sidebar-title\"] {
visibility: hidden !important;
transition: visibility var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important;
}
#sidebar-box:hover [id=\"sidebar-title\"] {
visibility: visible !important;
transition-delay: 0ms !important;
}
";
};
};
# The home.packages option allows you to install Nix packages into your # The home.packages option allows you to install Nix packages into your
# environment. # environment.
home.packages = with pkgs; [ home.packages = with pkgs; [
@ -38,14 +357,12 @@
aerc aerc
pkg-config pkg-config
wttrbar wttrbar
swww
wl-clip-persist wl-clip-persist
gifski gifski
waypaper waypaper
gdu gdu
spotify-player spotify-player
hyprpicker hyprpicker
hyprlock
xwayland xwayland
xdg-desktop-portal xdg-desktop-portal
xdg-desktop-portal-gtk xdg-desktop-portal-gtk
@ -53,15 +370,27 @@
imv imv
libva libva
libvdpau libvdpau
wpaperd #wpaperd
hypridle
#latest.firefox-nightly-bin
eza
# Wrapped programs for some env variables
(pkgs.writeScriptBin "hyprlock" ''
#! ${pkgs.bash}/bin/bash
export LD_PRELOAD="/run/current-system/profile/lib/libpam.so.0:/run/current-system/profile/lib/libfontconfig.so:$LD_PRELOAD"
exec ${pkgs.hyprlock}/bin/hyprlock "$@"
'')
# Flakes specific things defined in flake.nix # Flakes specific things defined in flake.nix
hyprland.packages.${pkgs.system}.default hyprland.packages.${pkgs.system}.default
hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland
nixgl.packages.${pkgs.system}.nixGLIntel nixgl.packages.${pkgs.system}.nixGLIntel
wpaperd.packages.${pkgs.system}.wpaperd
# Fonts! # Fonts!
noto-fonts noto-fonts
dejavu_fonts
liberation_ttf liberation_ttf
noto-fonts-cjk-sans noto-fonts-cjk-sans
noto-fonts-emoji noto-fonts-emoji

View file

@ -0,0 +1,4 @@
[default]
duration = "30m"
path = "~/.config/hypr/Wallpapers/static/"
transition-time = 2000

View file

@ -4,6 +4,7 @@
#:use-module (gnu system setuid) #:use-module (gnu system setuid)
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module (gnu packages avahi) #:use-module (gnu packages avahi)
#:use-module (gnu packages wm)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (gnu packages shells) #:use-module (gnu packages shells)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
@ -129,6 +130,7 @@
;"swaylock-effects" ;"swaylock-effects"
"fuzzel" "fuzzel"
"foot" "foot"
"linux-pam" ; installed directly to get libs in profile directly
"pinentry-qt" "pinentry-qt"
"adwaita-icon-theme" "adwaita-icon-theme"
"hicolor-icon-theme" "hicolor-icon-theme"
@ -161,7 +163,7 @@
"wireshark" "wireshark"
"webkitgtk-with-libsoup2" ; Needed for Go wails development "webkitgtk-with-libsoup2" ; Needed for Go wails development
"zsh")) "zsh"))
(list my-ca-certs virt-manager-ovmf bluez-ryan blueman-ryan swayidle-new) (list my-ca-certs virt-manager-ovmf bluez-ryan blueman-ryan)
%my-base-packages )) %my-base-packages ))
;; Below is the list of system services. To search for available ;; Below is the list of system services. To search for available
@ -188,11 +190,24 @@
(socket "/var/run/tailscale/tailscaled.sock"))) (socket "/var/run/tailscale/tailscaled.sock")))
(service containerd-service-type) (service containerd-service-type)
(service nix-service-type) (service nix-service-type)
(simple-service 'hyprlock-pam pam-root-service-type
(list
(pam-service
(name "hyprlock")
(auth
(list
(pam-entry (control "include")
(module "login")))))))
(service libvirt-service-type (service libvirt-service-type
(libvirt-configuration (libvirt-configuration
(libvirt libvirt-ovmf) (libvirt libvirt-ovmf)
(unix-sock-group "libvirt"))) (unix-sock-group "libvirt")))
(service virtlog-service-type) (service virtlog-service-type)
;(service screen-locker-service-type
; (screen-locker-configuration
; (name "hyprlock")
; (program (file-append swaylock "/bin/swaylock"))
; (using-pam? #t)))
(simple-service 'spice-polkit polkit-service-type (list spice-gtk)) (simple-service 'spice-polkit polkit-service-type (list spice-gtk))
(simple-service 'hwdb-creation etc-service-type (list `("udev-here-oneoneone" ,(plain-file "issue" "test\n")))) (simple-service 'hwdb-creation etc-service-type (list `("udev-here-oneoneone" ,(plain-file "issue" "test\n"))))
(service bluetooth-service-type (service bluetooth-service-type