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 desktop)
(gnu home services gnupg)
(gnu home services fontutils)
(gnu home services)
(ryan-services pipewire)
(ryan-services spotify)
@ -134,7 +135,7 @@
"signal-desktop"
"sc-im"
"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
;; 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"))
("sway" ,(local-file "sway" #:recursive? #t))
("hypr" ,(local-file "hypr" #:recursive? #t))
("wpaperd" ,(local-file "wpaperd" #:recursive? #t))
("mpv" ,(local-file "mpv" #:recursive? #t))
("foot" ,(local-file "foot" #:recursive? #t))
("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"))
(".ssh/config" ,(local-file "ssh/config"))
(".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/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"))
(".docker/cli-plugins" ,(local-file "docker/cli-plugins" #:recursive? #t))
(".nix-channels" ,(local-file "nix-channels"))))
(service home-pipewire-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)
;;; trying some changes
;(template-files "."

View file

@ -11,7 +11,9 @@ nice -n13 swww init &
#~/.config/hypr/wallpaper-daemon.sh &
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 &

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_SIZE,26
env = AQ_NO_MODIFIERS,1
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
@ -72,10 +74,12 @@ decoration {
new_optimizations = on
}
drop_shadow = yes
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
shadow {
enabled = true
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
}
animations {
@ -203,8 +207,11 @@ bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Bind mainMod + L to screenlocker
bind = $mainMod, L, exec, swaylock --screenshots --clock --indicator --fade-in 0.3 --effect-blur 7x5 --effect-greyscale
bind = $mainMod SHIFT, L, exec, swaylock --screenshots --clock --indicator --effect-blur 7x5 --effect-greyscale & sleep 0.5; loginctl suspend
bind = $mainMod, L, exec, hyprlock
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
bind = $mainMod SHIFT, S, exec, grimblast copy area
@ -236,7 +243,7 @@ windowrulev2 = suppressevent fullscreen maximize, class:^(firefox)$, title:^(Fir
# Weather
windowrulev2 = float,class:^(ala-wttr)$
windowrulev2 = size 740 712, class:^(ala-wttr)$
windowrulev2 = size 822 1026, class:^(ala-wttr)$
# Floating terminal
windowrulev2 = float,class:^(float-foot)$

View file

@ -1,6 +1,7 @@
background {
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
blur_passes = 2 # 0 disables blurring
@ -52,4 +53,5 @@ label {
position = 0, 300
halign = center
valign = center
font_family = Lilex Nerd Font
}

View file

@ -2,11 +2,6 @@ profile {
output "AU Optronics 0x103D Unknown" enable
}
profile tylerdesk {
output "AU Optronics 0x103D Unknown" disable
output "Dell Inc. DELL U3421WE 6WK8753" enable
}
profile emilydesk {
output "AU Optronics 0x103D Unknown" disable
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 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": {
"lastModified": 1727261104,
"narHash": "sha256-rxDI7WrxIRV9it9mDCHcLa7xQykf1JloXnoXr5xQ8zI=",
"lastModified": 1730968822,
"narHash": "sha256-NocDjINsh6ismkhb0Xr6xPRksmhuB2WGf8ZmXMhxu7Y=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "b82fdaff917582a9d568969e15e61b398c71e990",
"rev": "a49bc3583ff223f426cb3526fdaa4bcaa247ec14",
"type": "github"
},
"original": {
@ -33,6 +33,22 @@
"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": {
"locked": {
"lastModified": 1659877975,
@ -48,6 +64,28 @@
"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": {
"inputs": {
"nixpkgs": [
@ -55,17 +93,17 @@
]
},
"locked": {
"lastModified": 1729321331,
"narHash": "sha256-KVyQq+ez/oB30/WbdNgVD8g/bda34z8NiU187QKQb74=",
"lastModified": 1731604581,
"narHash": "sha256-Qq2YZZaDTB3FZLWU/Hgh1uuWlUBl3cMLGB99bm7rFUM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "122f70545b29ccb922e655b08acfe05bfb44ec68",
"rev": "1d0862ee2d7c6f6cd720d6f32213fa425004be10",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"rev": "122f70545b29ccb922e655b08acfe05bfb44ec68",
"rev": "1d0862ee2d7c6f6cd720d6f32213fa425004be10",
"type": "github"
}
},
@ -85,11 +123,11 @@
]
},
"locked": {
"lastModified": 1727532803,
"narHash": "sha256-ZaZ7h7PY8mQc4vtGmVqWLAq9CAO02gHMyNR5yY8zDmM=",
"lastModified": 1728669738,
"narHash": "sha256-EDNAU9AYcx8OupUzbTbWE1d3HYdeG0wO6Msg3iL1muk=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "b98726e431d4d3ed58bd58bee1047cdb81cec69f",
"rev": "0264e698149fcb857a66a53018157b41f8d97bb0",
"type": "github"
},
"original": {
@ -109,20 +147,21 @@
"nixpkgs": [
"nixpkgs"
],
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems",
"xdph": "xdph"
},
"locked": {
"lastModified": 1728478479,
"narHash": "sha256-AbfdIlK92oWpI39xlIaUekPeL9u95sXzxVsSqhIMfIc=",
"lastModified": 1731162467,
"narHash": "sha256-b0w2XOVCuEdBIiTpKaaeSesKux1Q51YWEWdKbljDXPE=",
"owner": "hyprwm",
"repo": "hyprland",
"rev": "4520b30d498daca8079365bdb909a8dea38e8d55",
"rev": "a425fbebe4cf4238e48a42f724ef2208959d66cf",
"type": "github"
},
"original": {
"owner": "hyprwm",
"ref": "v0.44.1",
"ref": "v0.45.0",
"repo": "hyprland",
"type": "github"
}
@ -139,38 +178,11 @@
]
},
"locked": {
"lastModified": 1727451107,
"narHash": "sha256-qV9savtHwmZUa0eJE294WYJjKPGB2+bJhwByFShsVyo=",
"lastModified": 1728345020,
"narHash": "sha256-xGbkc7U/Roe0/Cv3iKlzijIaFBNguasI31ynL2IlEoM=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "6b3261ee13a6d2b99de79a31d352f6996e35bde3",
"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",
"rev": "a7c183800e74f337753de186522b9017a07a8cee",
"type": "github"
},
"original": {
@ -195,11 +207,11 @@
]
},
"locked": {
"lastModified": 1725997860,
"narHash": "sha256-d/rZ/fHR5l1n7PeyLw0StWMNLXVU9c4HFyfskw568so=",
"lastModified": 1728168612,
"narHash": "sha256-AnB1KfiXINmuiW7BALYrKqcjCnsLZPifhb/7BsfPbns=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "dfeb5811dd6485490cce18d6cc1e38a055eea876",
"rev": "f054f2e44d6a0b74607a6bc0f52dba337a3db38e",
"type": "github"
},
"original": {
@ -244,11 +256,11 @@
]
},
"locked": {
"lastModified": 1727300645,
"narHash": "sha256-OvAtVLaSRPnbXzOwlR1fVqCXR7i+ICRX3aPMCdIiv+c=",
"lastModified": 1730968903,
"narHash": "sha256-zFvzLXcSm0Ia4XI1SE4FQ9KE63hlGrRWhLtwMolWuR8=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "3f5293432b6dc6a99f26aca2eba3876d2660665c",
"rev": "3ce0cde8709cdacbfba471f8e828433b58a561e9",
"type": "github"
},
"original": {
@ -356,17 +368,57 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1729168305,
"narHash": "sha256-jmhxZnrlOyLEMUL2+JkVfkN0XWXI5uE6EB5kVZFR0fo=",
"lastModified": 1731603729,
"narHash": "sha256-ChqaWsSIi+8zprudu16K3MskXr7iORzMGmYutWHCmKQ=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2a55bdc8cfcf41551323a4a6cef24d3f566c824d",
"rev": "f49e820fbc9450736bb6ba982a2ff0a8d014ad1e",
"type": "github"
},
"original": {
"owner": "nixos",
"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"
}
},
@ -376,7 +428,29 @@
"hyprland": "hyprland",
"hyprpicker-git": "hyprpicker-git",
"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": {
@ -409,9 +483,50 @@
"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": {
"inputs": {
"hyprland-protocols": "hyprland-protocols_2",
"hyprland-protocols": [
"hyprland",
"hyprland-protocols"
],
"hyprlang": [
"hyprland",
"hyprlang"
@ -434,11 +549,11 @@
]
},
"locked": {
"lastModified": 1727524473,
"narHash": "sha256-1DGktDtSWIJpnDbVoj/qpvJSH5zg6JbOfuh6xqZMap0=",
"lastModified": 1730743262,
"narHash": "sha256-iTLqj3lU8kFehPm5tXpctzkD274t/k1nwSSq3qCWXeg=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "7e500e679ede40e79cf2d89b5f5fa3e34923bd26",
"rev": "09b23cef06fe248e61cec8862c04b9bcb62f4b6d",
"type": "github"
},
"original": {

View file

@ -3,9 +3,9 @@
inputs = {
# Specify the source of Home Manager and Nixpkgs.
nixpkgs.url = "github:nixos/nixpkgs/2a55bdc8cfcf41551323a4a6cef24d3f566c824d";
nixpkgs.url = "github:nixos/nixpkgs/f49e820fbc9450736bb6ba982a2ff0a8d014ad1e";
home-manager = {
url = "github:nix-community/home-manager/122f70545b29ccb922e655b08acfe05bfb44ec68";
url = "github:nix-community/home-manager/1d0862ee2d7c6f6cd720d6f32213fa425004be10";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprpicker-git = {
@ -13,22 +13,28 @@
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland = {
url = "github:hyprwm/hyprland/v0.44.1";
url = "github:hyprwm/hyprland/v0.45.0";
inputs.nixpkgs.follows = "nixpkgs";
};
nixgl = {
url = "github:nix-community/nixGL/310f8e49a149e4c9ea52f1adf70cdc768ec53f8a";
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
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
overlays = [
hyprpicker-git.overlays.default
nixgl.overlay
#mozff.overlays.firefox
];
in {
homeConfigurations."ryan" = home-manager.lib.homeManagerConfiguration {
@ -37,19 +43,20 @@
# Specify your home configuration modules here, for example,
# the path to your home.nix.
modules = [
./home.nix
{nixpkgs.overlays = overlays;}
./home.nix
{
_module.args = {
inherit hyprland;
inherit nixgl;
inherit wpaperd;
};
}
];
# Optionally use extraSpecialArgs
# 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
# manage.
@ -20,9 +29,319 @@
nixpkgs.config.allowUnfree = true;
#targets.genericLinux.enable = true;
fonts.fontconfig.enable = true;
fonts.fontconfig.defaultFonts = {
monospace = [ "DejaVu Sans Mono" ];
sansSerif = [ "DejaVu Sans" ];
serif = [ "DejaVu Serif" ];
};
# 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
# environment.
home.packages = with pkgs; [
@ -38,14 +357,12 @@
aerc
pkg-config
wttrbar
swww
wl-clip-persist
gifski
waypaper
gdu
spotify-player
hyprpicker
hyprlock
xwayland
xdg-desktop-portal
xdg-desktop-portal-gtk
@ -53,15 +370,27 @@
imv
libva
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
hyprland.packages.${pkgs.system}.default
hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland
nixgl.packages.${pkgs.system}.nixGLIntel
wpaperd.packages.${pkgs.system}.wpaperd
# Fonts!
noto-fonts
dejavu_fonts
liberation_ttf
noto-fonts-cjk-sans
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 packages admin)
#:use-module (gnu packages avahi)
#:use-module (gnu packages wm)
#:use-module (guix packages)
#:use-module (gnu packages shells)
#:use-module (guix build-system trivial)
@ -129,6 +130,7 @@
;"swaylock-effects"
"fuzzel"
"foot"
"linux-pam" ; installed directly to get libs in profile directly
"pinentry-qt"
"adwaita-icon-theme"
"hicolor-icon-theme"
@ -161,7 +163,7 @@
"wireshark"
"webkitgtk-with-libsoup2" ; Needed for Go wails development
"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 ))
;; Below is the list of system services. To search for available
@ -188,11 +190,24 @@
(socket "/var/run/tailscale/tailscaled.sock")))
(service containerd-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
(libvirt-configuration
(libvirt libvirt-ovmf)
(unix-sock-group "libvirt")))
(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 'hwdb-creation etc-service-type (list `("udev-here-oneoneone" ,(plain-file "issue" "test\n"))))
(service bluetooth-service-type