Merge branch 'dev' into 'main'

ZaneyOS 2.2 Release

See merge request Zaney/zaneyos!49
This commit is contained in:
Tyler Kelley 2024-06-18 19:49:42 +00:00
commit 496ed27b42
45 changed files with 3370 additions and 4362 deletions

View File

@ -19,3 +19,27 @@ Simple bug fixes.
- Should have fixed some Steam issues, but I have had some crashes due to Steam so be aware of that. - Should have fixed some Steam issues, but I have had some crashes due to Steam so be aware of that.
- The flake got an update, so all the packages are fresh. - The flake got an update, so all the packages are fresh.
**ZaneyOS 2.2**
This release has a big theming change as well as including the move back to rofi. It is a massive improvement in many ways.
- Revert the switch from rofi to wofi. Rofi is just better.
- Switch from Nix Colors to Stylix. It can build colorschemes from a wallpaper.
- Simplified the notification center.
- Improved emoji selection menu and options.
- Adding fine-cmdline plugin for Neovim.
- Removed theme changing scripts as the theme is generated by the image set with stylix.image in the config.nix file.
- Starship is now setup in the config.nix file.
- Switched from SDDM to tuigreet and greetd.
- Added Plymouth for better looking booting.
- Improve the fonts being installed and properly separate them from regular packages.
- Separated Neovim configuration for readability.
- Updated flake and added fix for popups going to wrkspc 1 in Hyprland.
- Removed a few of the packages that aren't necessary and smartd by default.
- Removed unnecessary Hyprland input in flake as home manager doesn't use it.
- Turned off nfs by default
- Hyprland plugins are now disabled in the config by default.
- Fastfetch is now replacing neofetch.
- Btop is back baby!
- Switching to Brave as the default to protect user privacy.
- Replaced lsd with eza for a better looking experience.

View File

@ -10,8 +10,8 @@ ZaneyOS is a simple way of reproducing my configuration on any NixOS system. Thi
</div> </div>
> **This project has a [Wiki](https://zaney.org/zaneyos-2.0/). Find out how to use ZaneyOS here!** > **This project has a [Wiki](https://zaney.org/zaneyos-2.2/). Find out how to use ZaneyOS here!**
> **I have put a lot of effort into the [documentation](https://zaney.org/zaneyos-2.0/) so it should be accurate. However, please if you notice that something is wrong with it create an issue or reach out to me on Discord.** > **I have put a lot of effort into the [documentation](https://zaney.org/zaneyos-2.2/) so it should be accurate. However, please if you notice that something is wrong with it create an issue or reach out to me on Discord.**
#### 🍖 Requirements #### 🍖 Requirements
- You must be running on NixOS. - You must be running on NixOS.
@ -38,7 +38,7 @@ ZaneyOS is a simple way of reproducing my configuration on any NixOS system. Thi
<div align="center"> <div align="center">
Please do yourself a favor and [read the wiki](https://zaney.org/zaneyos-2.0/). Please do yourself a favor and [read the wiki](https://zaney.org/zaneyos-2.2/).
</div> </div>

View File

@ -1,11 +0,0 @@
${c1} .--.
.-./ ___\ ||
`-'\|. .| ||
__\=/__ .-.
.' \:/ `. /\/|
/ /( : )\ V /||
\_\( : ) `-' ||
(_(__:__) __||___
\ | / / /
|__|__| ( (
(___V___) \______\\

View File

@ -1,251 +0,0 @@
3024
apathy
apprentice
ashes
atelier-cave-light
atelier-cave
atelier-dune-light
atelier-dune
atelier-estuary-light
atelier-estuary
atelier-forest-light
atelier-forest
atelier-heath-light
atelier-heath
atelier-lakeside-light
atelier-lakeside
atelier-plateau-light
atelier-plateau
atelier-savanna-light
atelier-savanna
atelier-seaside-light
atelier-seaside
atelier-sulphurpool-light
atelier-sulphurpool
atlas
ayu-dark
ayu-light
ayu-mirage
bespin
black-metal-bathory
black-metal-burzum
black-metal-dark-funeral
black-metal-gorgoroth
black-metal-immortal
black-metal-khold
black-metal-marduk
black-metal-mayhem
black-metal-nile
black-metal-venom
black-metal
blueforest
blueish
brewer
bright
brogrammer
brushtrees-dark
brushtrees
caroline
catppuccin-frappe
catppuccin-latte
catppuccin-macchiato
catppuccin-mocha
chalk
circus
classic-dark
classic-light
codeschool
colors
cupcake
cupertino
da-one-black
da-one-gray
da-one-ocean
da-one-paper
da-one-sea
da-one-white
danqing-light
danqing
darcula
darkmoss
darktooth
darkviolet
decaf
default-dark
default-light
dirtysea
dracula
edge-dark
edge-light
eighties
embers
emil
equilibrium-dark
equilibrium-gray-dark
equilibrium-gray-light
equilibrium-light
eris
espresso
eva-dim
eva
evenok-dark
everforest-dark-hard
everforest
flat
framer
fruit-soda
gigavolt
github
google-dark
google-light
gotham
grayscale-dark
grayscale-light
greenscreen
gruber
gruvbox-dark-hard
gruvbox-dark-medium
gruvbox-dark-pale
gruvbox-dark-soft
gruvbox-light-hard
gruvbox-light-medium
gruvbox-light-soft
gruvbox-material-dark-hard
gruvbox-material-dark-medium
gruvbox-material-dark-soft
gruvbox-material-light-hard
gruvbox-material-light-medium
gruvbox-material-light-soft
hardcore
harmonic16-dark
harmonic16-light
heetch-light
heetch
helios
hopscotch
horizon-dark
horizon-light
horizon-terminal-dark
horizon-terminal-light
humanoid-dark
humanoid-light
ia-dark
ia-light
icy
irblack
isotope
kanagawa
katy
kimber
lime
macintosh
marrakesh
materia
material-darker
material-lighter
material-palenight
material-vivid
material
mellow-purple
mexico-light
mocha
monokai
mountain
nebula
nord
nova
ocean
oceanicnext
one-light
onedark
outrun-dark
oxocarbon-dark
oxocarbon-light
pandora
papercolor-dark
papercolor-light
paraiso
pasque
phd
pico
pinky
pop
porple
primer-dark-dimmed
primer-dark
primer-light
purpledream
qualia
railscasts
rebecca
rose-pine-dawn
rose-pine-moon
rose-pine
sagelight
sakura
sandcastle
selenized-black
selenized-dark
selenized-light
selenized-white
seti
shades-of-purple
shadesmear-dark
shadesmear-light
shapeshifter
silk-dark
silk-light
snazzy
solarflare-light
solarflare
solarized-dark
solarized-light
spaceduck
spacemacs
standardized-dark
standardized-light
stella
still-alive
summercamp
summerfruit-dark
summerfruit-light
synth-midnight-dark
synth-midnight-light
tango
tarot
tender
tokyo-city-dark
tokyo-city-light
tokyo-city-terminal-dark
tokyo-city-terminal-light
tokyo-night-dark
tokyo-night-light
tokyo-night-storm
tokyo-night-terminal-dark
tokyo-night-terminal-light
tokyo-night-terminal-storm
tokyodark-terminal
tokyodark
tomorrow-night-eighties
tomorrow-night
tomorrow
tube
twilight
unikitty-dark
unikitty-light
unikitty-reversible
uwunicorn
vice
vulcan
windows-10-light
windows-10
windows-95-light
windows-95
windows-highcontrast-light
windows-highcontrast
windows-nt-light
windows-nt
woodland
xcode-dusk
zenbones
zenburn

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 694 KiB

File diff suppressed because it is too large Load Diff

1855
config/emoji.nix Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,104 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"source": "~/.config/fastfetch/nixos.png",
"type": "kitty-direct",
"height": 15,
"width": 30,
"padding": {
"top": 3,
"left": 3
}
},
"modules": [
"break",
{
"type": "custom",
"format": "\u001b[90m┌──────────────────────Hardware──────────────────────┐"
},
{
"type": "cpu",
"key": "│ ",
"keyColor": "35"
},
{
"type": "gpu",
"key": "│ 󰍛",
"keyColor": "35"
},
{
"type": "memory",
"key": "│ 󰑭",
"keyColor": "35"
},
{
"type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
},
"break",
{
"type": "custom",
"format": "\u001b[90m┌──────────────────────Software──────────────────────┐"
},
{
"type": "custom",
"format": "\u001b[31m OS -> ZaneyOS 2.2"
},
{
"type": "kernel",
"key": "│ ├",
"keyColor": "31"
},
{
"type": "packages",
"key": "│ ├󰏖",
"keyColor": "31"
},
{
"type": "shell",
"key": "└ └",
"keyColor": "31"
},
"break",
{
"type": "wm",
"key": " WM",
"keyColor": "32"
},
{
"type": "wmtheme",
"key": "│ ├󰉼",
"keyColor": "32"
},
{
"type": "terminal",
"key": "└ └",
"keyColor": "32"
},
{
"type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
},
"break",
{
"type": "custom",
"format": "\u001b[90m┌────────────────────Uptime / Age────────────────────┐"
},
{
"type": "command",
"key": "│ ",
"keyColor": "33",
"text": "birth_install=$(stat -c %W /); current=$(date +%s); time_progression=$((current - birth_install)); days_difference=$((time_progression / 86400)); echo $days_difference days"
},
{
"type": "uptime",
"key": "│ ",
"keyColor": "33"
},
{
"type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
},
"break"
]
}

BIN
config/fastfetch/nixos.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,19 +1,17 @@
{ {
pkgs,
config,
lib, lib,
inputs,
username, username,
host, host,
inputs,
pkgs,
config,
... ...
}: }:
let let
theme = config.colorScheme.palette;
hyprplugins = inputs.hyprland-plugins.packages.${pkgs.system}; hyprplugins = inputs.hyprland-plugins.packages.${pkgs.system};
inherit (import ../hosts/${host}/variables.nix) inherit (import ../hosts/${host}/variables.nix)
browser browser
borderAnim
terminal terminal
extraMonitorSettings extraMonitorSettings
; ;
@ -24,191 +22,189 @@ with lib;
enable = true; enable = true;
xwayland.enable = true; xwayland.enable = true;
systemd.enable = true; systemd.enable = true;
plugins = [ # plugins = [
# hyprplugins.hyprtrails # hyprplugins.hyprtrails
]; # ];
extraConfig = extraConfig =
let let
modifier = "SUPER"; modifier = "SUPER";
in in
concatStrings [ concatStrings [
'' ''
env = NIXOS_OZONE_WL, 1 env = NIXOS_OZONE_WL, 1
env = NIXPKGS_ALLOW_UNFREE, 1 env = NIXPKGS_ALLOW_UNFREE, 1
env = XDG_CURRENT_DESKTOP, Hyprland env = XDG_CURRENT_DESKTOP, Hyprland
env = XDG_SESSION_TYPE, wayland env = XDG_SESSION_TYPE, wayland
env = XDG_SESSION_DESKTOP, Hyprland env = XDG_SESSION_DESKTOP, Hyprland
env = GDK_BACKEND, wayland, x11 env = GDK_BACKEND, wayland, x11
env = CLUTTER_BACKEND, wayland env = CLUTTER_BACKEND, wayland
env = QT_QPA_PLATFORM=wayland;xcb env = QT_QPA_PLATFORM=wayland;xcb
env = QT_WAYLAND_DISABLE_WINDOWDECORATION, 1 env = QT_WAYLAND_DISABLE_WINDOWDECORATION, 1
env = QT_AUTO_SCREEN_SCALE_FACTOR, 1 env = QT_AUTO_SCREEN_SCALE_FACTOR, 1
env = SDL_VIDEODRIVER, wayland env = SDL_VIDEODRIVER, x11
env = MOZ_ENABLE_WAYLAND, 1 env = MOZ_ENABLE_WAYLAND, 1
exec-once = dbus-update-activation-environment --systemd --all exec-once = dbus-update-activation-environment --systemd --all
exec-once = systemctl --user import-environment QT_QPA_PLATFORMTHEME WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = systemctl --user import-environment QT_QPA_PLATFORMTHEME WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = killall -q swww;sleep .5 && swww init exec-once = killall -q swww;sleep .5 && swww init
exec-once = killall -q waybar;sleep .5 && waybar exec-once = killall -q waybar;sleep .5 && waybar
exec-once = killall -q swaync;sleep .5 && swaync exec-once = killall -q swaync;sleep .5 && swaync
exec-once = nm-applet --indicator exec-once = nm-applet --indicator
exec-once = lxqt-policykit-agent exec-once = lxqt-policykit-agent
exec-once = swww img /home/${username}/Pictures/Wallpapers/zaney-wallpaper.jpg exec-once = sleep 1.5 && swww img /home/${username}/Pictures/Wallpapers/beautifulmountainscape.jpg
monitor=,preferred,auto,1 monitor=,preferred,auto,1
${extraMonitorSettings} ${extraMonitorSettings}
general { general {
gaps_in = 6 gaps_in = 6
gaps_out = 8 gaps_out = 8
border_size = 2 border_size = 2
col.active_border = rgba(${theme.base0C}ff) rgba(${theme.base0D}ff) rgba(${theme.base0B}ff) rgba(${theme.base0E}ff) 45deg layout = dwindle
col.inactive_border = rgba(${theme.base00}cc) rgba(${theme.base01}cc) 45deg resize_on_border = true
layout = dwindle col.active_border = rgb(${config.stylix.base16Scheme.base08}) rgb(${config.stylix.base16Scheme.base0C}) 45deg
resize_on_border = true col.inactive_border = rgb(${config.stylix.base16Scheme.base01})
} }
input {
input { kb_layout = us
kb_layout = us kb_options = grp:alt_shift_toggle
kb_options = grp:alt_shift_toggle kb_options = caps:super
kb_options=caps:super follow_mouse = 1
follow_mouse = 1 touchpad {
touchpad { natural_scroll = false
natural_scroll = false }
} sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
sensitivity = 0 # -1.0 - 1.0, 0 means no modification. accel_profile = flat
accel_profile = flat }
} windowrule = noborder,^(wofi)$
windowrule = noborder,^(wofi)$ windowrule = center,^(wofi)$
windowrule = center,^(wofi)$ windowrule = center,^(steam)$
windowrule = center,^(steam)$ windowrule = float, nm-connection-editor|blueman-manager
windowrulev2 = stayfocused, title:^()$,class:^(steam)$ windowrule = float, swayimg|vlc|Viewnior|pavucontrol
windowrulev2 = minsize 1 1, title:^()$,class:^(steam)$ windowrule = float, nwg-look|qt5ct|mpv
gestures { windowrule = float, zoom
workspace_swipe = true windowrulev2 = stayfocused, title:^()$,class:^(steam)$
workspace_swipe_fingers = 3 windowrulev2 = minsize 1 1, title:^()$,class:^(steam)$
} windowrulev2 = opacity 0.9 0.7, class:^(Brave)$
misc { windowrulev2 = opacity 0.9 0.7, class:^(thunar)$
mouse_move_enables_dpms = true gestures {
key_press_enables_dpms = false workspace_swipe = true
} workspace_swipe_fingers = 3
animations { }
enabled = yes misc {
bezier = wind, 0.05, 0.9, 0.1, 1.05 initial_workspace_tracking = 0
bezier = winIn, 0.1, 1.1, 0.1, 1.1 mouse_move_enables_dpms = true
bezier = winOut, 0.3, -0.3, 0, 1 key_press_enables_dpms = false
bezier = liner, 1, 1, 1, 1 }
animation = windows, 1, 6, wind, slide animations {
animation = windowsIn, 1, 6, winIn, slide enabled = yes
animation = windowsOut, 1, 5, winOut, slide bezier = wind, 0.05, 0.9, 0.1, 1.05
animation = windowsMove, 1, 5, wind, slide bezier = winIn, 0.1, 1.1, 0.1, 1.1
animation = border, 1, 1, liner bezier = winOut, 0.3, -0.3, 0, 1
${ bezier = liner, 1, 1, 1, 1
if borderAnim == true then animation = windows, 1, 6, wind, slide
'' animation = windowsIn, 1, 6, winIn, slide
animation = borderangle, 1, 30, liner, loop animation = windowsOut, 1, 5, winOut, slide
'' animation = windowsMove, 1, 5, wind, slide
else animation = border, 1, 1, liner
'''' animation = fade, 1, 10, default
} animation = workspaces, 1, 5, wind
animation = fade, 1, 10, default }
animation = workspaces, 1, 5, wind decoration {
} rounding = 10
decoration { drop_shadow = true
rounding = 10 shadow_range = 4
drop_shadow = false shadow_render_power = 3
blur { col.shadow = rgba(1a1a1aee)
enabled = true blur {
size = 5 enabled = true
passes = 3 size = 5
new_optimizations = on passes = 3
ignore_opacity = on new_optimizations = on
} ignore_opacity = off
} }
plugin { }
hyprtrails { plugin {
color = rgba(${theme.base0A}ff) hyprtrails {
} }
} }
dwindle { dwindle {
pseudotile = true pseudotile = true
preserve_split = true preserve_split = true
} }
master { bind = ${modifier},Return,exec,${terminal}
new_is_master = true bind = ${modifier}SHIFT,Return,exec,rofi-launcher
} bind = ${modifier}SHIFT,W,exec,web-search
bind = ${modifier},Return,exec,${terminal} bind = ${modifier}ALT,W,exec,wallsetter
bind = ${modifier}SHIFT,Return,exec,wofi bind = ${modifier}SHIFT,N,exec,swaync-client -rs
bind = ${modifier}SHIFT,W,exec,web-search bind = ${modifier},W,exec,${browser}
bind = ${modifier}ALT,W,exec,wallsetter bind = ${modifier},E,exec,emopicker9000
bind = ${modifier}SHIFT,N,exec,swaync-client -rs bind = ${modifier},S,exec,screenshootin
bind = ${modifier},W,exec,${browser} bind = ${modifier},D,exec,discord
bind = ${modifier},E,exec,emopicker9000 bind = ${modifier},O,exec,obs
bind = ${modifier},S,exec,screenshootin bind = ${modifier},C,exec,hyprpicker
bind = ${modifier},D,exec,discord bind = ${modifier},G,exec,gimp
bind = ${modifier},O,exec,obs bind = ${modifier}SHIFT,G,exec,godot4
bind = ${modifier},G,exec,gimp bind = ${modifier},T,exec,thunar
bind = ${modifier}SHIFT,G,exec,godot4 bind = ${modifier},M,exec,spotify
bind = ${modifier},T,exec,thunar bind = ${modifier},Q,killactive,
bind = ${modifier},M,exec,spotify bind = ${modifier},P,pseudo,
bind = ${modifier},Q,killactive, bind = ${modifier}SHIFT,I,togglesplit,
bind = ${modifier},P,pseudo, bind = ${modifier},F,fullscreen,
bind = ${modifier}SHIFT,I,togglesplit, bind = ${modifier}SHIFT,F,togglefloating,
bind = ${modifier},F,fullscreen, bind = ${modifier}SHIFT,C,exit,
bind = ${modifier}SHIFT,F,togglefloating, bind = ${modifier}SHIFT,left,movewindow,l
bind = ${modifier}SHIFT,C,exit, bind = ${modifier}SHIFT,right,movewindow,r
bind = ${modifier}SHIFT,left,movewindow,l bind = ${modifier}SHIFT,up,movewindow,u
bind = ${modifier}SHIFT,right,movewindow,r bind = ${modifier}SHIFT,down,movewindow,d
bind = ${modifier}SHIFT,up,movewindow,u bind = ${modifier}SHIFT,h,movewindow,l
bind = ${modifier}SHIFT,down,movewindow,d bind = ${modifier}SHIFT,l,movewindow,r
bind = ${modifier}SHIFT,h,movewindow,l bind = ${modifier}SHIFT,k,movewindow,u
bind = ${modifier}SHIFT,l,movewindow,r bind = ${modifier}SHIFT,j,movewindow,d
bind = ${modifier}SHIFT,k,movewindow,u bind = ${modifier},left,movefocus,l
bind = ${modifier}SHIFT,j,movewindow,d bind = ${modifier},right,movefocus,r
bind = ${modifier},left,movefocus,l bind = ${modifier},up,movefocus,u
bind = ${modifier},right,movefocus,r bind = ${modifier},down,movefocus,d
bind = ${modifier},up,movefocus,u bind = ${modifier},h,movefocus,l
bind = ${modifier},down,movefocus,d bind = ${modifier},l,movefocus,r
bind = ${modifier},h,movefocus,l bind = ${modifier},k,movefocus,u
bind = ${modifier},l,movefocus,r bind = ${modifier},j,movefocus,d
bind = ${modifier},k,movefocus,u bind = ${modifier},1,workspace,1
bind = ${modifier},j,movefocus,d bind = ${modifier},2,workspace,2
bind = ${modifier},1,workspace,1 bind = ${modifier},3,workspace,3
bind = ${modifier},2,workspace,2 bind = ${modifier},4,workspace,4
bind = ${modifier},3,workspace,3 bind = ${modifier},5,workspace,5
bind = ${modifier},4,workspace,4 bind = ${modifier},6,workspace,6
bind = ${modifier},5,workspace,5 bind = ${modifier},7,workspace,7
bind = ${modifier},6,workspace,6 bind = ${modifier},8,workspace,8
bind = ${modifier},7,workspace,7 bind = ${modifier},9,workspace,9
bind = ${modifier},8,workspace,8 bind = ${modifier},0,workspace,10
bind = ${modifier},9,workspace,9 bind = ${modifier}SHIFT,SPACE,movetoworkspace,special
bind = ${modifier},0,workspace,10 bind = ${modifier},SPACE,togglespecialworkspace
bind = ${modifier}SHIFT,SPACE,movetoworkspace,special bind = ${modifier}SHIFT,1,movetoworkspace,1
bind = ${modifier},SPACE,togglespecialworkspace bind = ${modifier}SHIFT,2,movetoworkspace,2
bind = ${modifier}SHIFT,1,movetoworkspace,1 bind = ${modifier}SHIFT,3,movetoworkspace,3
bind = ${modifier}SHIFT,2,movetoworkspace,2 bind = ${modifier}SHIFT,4,movetoworkspace,4
bind = ${modifier}SHIFT,3,movetoworkspace,3 bind = ${modifier}SHIFT,5,movetoworkspace,5
bind = ${modifier}SHIFT,4,movetoworkspace,4 bind = ${modifier}SHIFT,6,movetoworkspace,6
bind = ${modifier}SHIFT,5,movetoworkspace,5 bind = ${modifier}SHIFT,7,movetoworkspace,7
bind = ${modifier}SHIFT,6,movetoworkspace,6 bind = ${modifier}SHIFT,8,movetoworkspace,8
bind = ${modifier}SHIFT,7,movetoworkspace,7 bind = ${modifier}SHIFT,9,movetoworkspace,9
bind = ${modifier}SHIFT,8,movetoworkspace,8 bind = ${modifier}SHIFT,0,movetoworkspace,10
bind = ${modifier}SHIFT,9,movetoworkspace,9 bind = ${modifier}CONTROL,right,workspace,e+1
bind = ${modifier}SHIFT,0,movetoworkspace,10 bind = ${modifier}CONTROL,left,workspace,e-1
bind = ${modifier}CONTROL,right,workspace,e+1 bind = ${modifier},mouse_down,workspace, e+1
bind = ${modifier}CONTROL,left,workspace,e-1 bind = ${modifier},mouse_up,workspace, e-1
bind = ${modifier},mouse_down,workspace, e+1 bindm = ${modifier},mouse:272,movewindow
bind = ${modifier},mouse_up,workspace, e-1 bindm = ${modifier},mouse:273,resizewindow
bindm = ${modifier},mouse:272,movewindow bind = ALT,Tab,cyclenext
bindm = ${modifier},mouse:273,resizewindow bind = ALT,Tab,bringactivetotop
bind = ALT,Tab,cyclenext bind = ,XF86AudioRaiseVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bind = ALT,Tab,bringactivetotop bind = ,XF86AudioLowerVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bind = ,XF86AudioRaiseVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ binde = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bind = ,XF86AudioLowerVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- bind = ,XF86AudioPlay, exec, playerctl play-pause
binde = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle bind = ,XF86AudioPause, exec, playerctl play-pause
bind = ,XF86AudioPlay, exec, playerctl play-pause bind = ,XF86AudioNext, exec, playerctl next
bind = ,XF86AudioPause, exec, playerctl play-pause bind = ,XF86AudioPrev, exec, playerctl previous
bind = ,XF86AudioNext, exec, playerctl next bind = ,XF86MonBrightnessDown,exec,brightnessctl set 5%-
bind = ,XF86AudioPrev, exec, playerctl previous bind = ,XF86MonBrightnessUp,exec,brightnessctl set +5%
bind = ,XF86MonBrightnessDown,exec,brightnessctl set 5%-
bind = ,XF86MonBrightnessUp,exec,brightnessctl set +5%
'' ''
]; ];
}; };

88
config/neovim.nix Normal file
View File

@ -0,0 +1,88 @@
{ pkgs, inputs, ... }:
let
finecmdline = pkgs.vimUtils.buildVimPlugin {
name = "fine-cmdline";
src = inputs.fine-cmdline;
};
in
{
programs = {
neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
withNodeJs = true;
extraPackages = with pkgs; [
lua-language-server
gopls
xclip
wl-clipboard
luajitPackages.lua-lsp
nil
rust-analyzer
#nodePackages.bash-language-server
yaml-language-server
pyright
marksman
];
plugins = with pkgs.vimPlugins; [
alpha-nvim
auto-session
bufferline-nvim
dressing-nvim
indent-blankline-nvim
nui-nvim
finecmdline
nvim-treesitter.withAllGrammars
lualine-nvim
nvim-autopairs
nvim-web-devicons
nvim-cmp
nvim-surround
nvim-lspconfig
cmp-nvim-lsp
cmp-buffer
luasnip
cmp_luasnip
friendly-snippets
lspkind-nvim
comment-nvim
nvim-ts-context-commentstring
plenary-nvim
neodev-nvim
luasnip
telescope-nvim
todo-comments-nvim
nvim-tree-lua
telescope-fzf-native-nvim
vim-tmux-navigator
];
extraConfig = ''
set noemoji
nnoremap : <cmd>FineCmdline<CR>
'';
extraLuaConfig = ''
${builtins.readFile ./nvim/options.lua}
${builtins.readFile ./nvim/keymaps.lua}
${builtins.readFile ./nvim/plugins/alpha.lua}
${builtins.readFile ./nvim/plugins/autopairs.lua}
${builtins.readFile ./nvim/plugins/auto-session.lua}
${builtins.readFile ./nvim/plugins/comment.lua}
${builtins.readFile ./nvim/plugins/cmp.lua}
${builtins.readFile ./nvim/plugins/lsp.lua}
${builtins.readFile ./nvim/plugins/nvim-tree.lua}
${builtins.readFile ./nvim/plugins/telescope.lua}
${builtins.readFile ./nvim/plugins/todo-comments.lua}
${builtins.readFile ./nvim/plugins/treesitter.lua}
${builtins.readFile ./nvim/plugins/fine-cmdline.lua}
require("ibl").setup()
require("bufferline").setup{}
require("lualine").setup({
icons_enabled = true,
})
'';
};
};
}

View File

@ -0,0 +1,33 @@
require('fine-cmdline').setup({
cmdline = {
enable_keymaps = true,
smart_history = true,
prompt = '> '
},
popup = {
position = {
row = '10%',
col = '50%',
},
size = {
width = '60%',
},
border = {
style = 'rounded',
},
win_options = {
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
},
},
hooks = {
before_mount = function(input)
-- code
end,
after_mount = function(input)
-- code
end,
set_keymaps = function(imap, feedkeys)
-- code
end
}
})

View File

@ -0,0 +1,11 @@
{ ... }:
{
home.file.".config/rofi/config-emoji.rasi".text = ''
@import "~/.config/rofi/config-long.rasi"
entry {
width: 45%;
placeholder: "🔎 Search Emoji's 👀";
}
'';
}

View File

@ -0,0 +1,18 @@
{ ... }:
{
home.file.".config/rofi/config-long.rasi".text = ''
@import "~/.config/rofi/config.rasi"
window {
width: 50%;
}
entry {
placeholder: "🔎 Search ";
}
listview {
columns: 1;
lines: 8;
scrollbar: true;
}
'';
}

214
config/rofi/rofi.nix Normal file
View File

@ -0,0 +1,214 @@
{ pkgs, config, ... }:
{
programs = {
rofi = {
enable = true;
package = pkgs.rofi-wayland;
extraConfig = {
modi = "drun,filebrowser,run";
show-icons = true;
icon-theme = "Papirus";
location = 0;
font = "JetBrainsMono Nerd Font Mono 12";
drun-display-format = "{icon} {name}";
display-drun = " Apps";
display-run = " Run";
display-filebrowser = " File";
};
theme =
let
inherit (config.lib.formats.rasi) mkLiteral;
in
{
"*" = {
bg = mkLiteral "#${config.stylix.base16Scheme.base00}";
bg-alt = mkLiteral "#${config.stylix.base16Scheme.base09}";
foreground = mkLiteral "#${config.stylix.base16Scheme.base01}";
selected = mkLiteral "#${config.stylix.base16Scheme.base08}";
active = mkLiteral "#${config.stylix.base16Scheme.base0B}";
text-selected = mkLiteral "#${config.stylix.base16Scheme.base00}";
text-color = mkLiteral "#${config.stylix.base16Scheme.base05}";
border-color = mkLiteral "#${config.stylix.base16Scheme.base0F}";
urgent = mkLiteral "#${config.stylix.base16Scheme.base0E}";
};
"window" = {
width = mkLiteral "50%";
transparency = "real";
orientation = mkLiteral "vertical";
cursor = mkLiteral "default";
spacing = mkLiteral "0px";
border = mkLiteral "2px";
border-color = "@border-color";
border-radius = mkLiteral "20px";
background-color = mkLiteral "@bg";
};
"mainbox" = {
padding = mkLiteral "15px";
enabled = true;
orientation = mkLiteral "vertical";
children = map mkLiteral [
"inputbar"
"listbox"
];
background-color = mkLiteral "transparent";
};
"inputbar" = {
enabled = true;
padding = mkLiteral "10px 10px 200px 10px";
margin = mkLiteral "10px";
background-color = mkLiteral "transparent";
border-radius = "25px";
orientation = mkLiteral "horizontal";
children = map mkLiteral [
"entry"
"dummy"
"mode-switcher"
];
background-image = mkLiteral ''url("~/Pictures/Wallpapers/beautifulmountainscape.jpg", width)'';
};
"entry" = {
enabled = true;
expand = false;
width = mkLiteral "20%";
padding = mkLiteral "10px";
border-radius = mkLiteral "12px";
background-color = mkLiteral "@selected";
text-color = mkLiteral "@text-selected";
cursor = mkLiteral "text";
placeholder = "🖥 Search ";
placeholder-color = mkLiteral "inherit";
};
"listbox" = {
spacing = mkLiteral "10px";
padding = mkLiteral "10px";
background-color = mkLiteral "transparent";
orientation = mkLiteral "vertical";
children = map mkLiteral [
"message"
"listview"
];
};
"listview" = {
enabled = true;
columns = 2;
lines = 6;
cycle = true;
dynamic = true;
scrollbar = false;
layout = mkLiteral "vertical";
reverse = false;
fixed-height = false;
fixed-columns = true;
spacing = mkLiteral "10px";
background-color = mkLiteral "transparent";
border = mkLiteral "0px";
};
"dummy" = {
expand = true;
background-color = mkLiteral "transparent";
};
"mode-switcher" = {
enabled = true;
spacing = mkLiteral "10px";
background-color = mkLiteral "transparent";
};
"button" = {
width = mkLiteral "5%";
padding = mkLiteral "12px";
border-radius = mkLiteral "12px";
background-color = mkLiteral "@text-selected";
text-color = mkLiteral "@text-color";
cursor = mkLiteral "pointer";
};
"button selected" = {
background-color = mkLiteral "@selected";
text-color = mkLiteral "@text-selected";
};
"scrollbar" = {
width = mkLiteral "4px";
border = 0;
handle-color = mkLiteral "@border-color";
handle-width = mkLiteral "8px";
padding = 0;
};
"element" = {
enabled = true;
spacing = mkLiteral "10px";
padding = mkLiteral "10px";
border-radius = mkLiteral "12px";
background-color = mkLiteral "transparent";
cursor = mkLiteral "pointer";
};
"element normal.normal" = {
background-color = mkLiteral "inherit";
text-color = mkLiteral "inherit";
};
"element normal.urgent" = {
background-color = mkLiteral "@urgent";
text-color = mkLiteral "@foreground";
};
"element normal.active" = {
background-color = mkLiteral "@active";
text-color = mkLiteral "@foreground";
};
"element selected.normal" = {
background-color = mkLiteral "@selected";
text-color = mkLiteral "@text-selected";
};
"element selected.urgent" = {
background-color = mkLiteral "@urgent";
text-color = mkLiteral "@text-selected";
};
"element selected.active" = {
background-color = mkLiteral "@urgent";
text-color = mkLiteral "@text-selected";
};
"element alternate.normal" = {
background-color = mkLiteral "transparent";
text-color = mkLiteral "inherit";
};
"element alternate.urgent" = {
background-color = mkLiteral "transparent";
text-color = mkLiteral "inherit";
};
"element alternate.active" = {
background-color = mkLiteral "transparent";
text-color = mkLiteral "inherit";
};
"element-icon" = {
background-color = mkLiteral "transparent";
text-color = mkLiteral "inherit";
size = mkLiteral "36px";
cursor = mkLiteral "inherit";
};
"element-text" = {
background-color = mkLiteral "transparent";
font = "JetBrainsMono Nerd Font Mono 12";
text-color = mkLiteral "inherit";
cursor = mkLiteral "inherit";
vertical-align = mkLiteral "0.5";
horizontal-align = mkLiteral "0.0";
};
"message" = {
background-color = mkLiteral "transparent";
border = mkLiteral "0px";
};
"textbox" = {
padding = mkLiteral "12px";
border-radius = mkLiteral "10px";
background-color = mkLiteral "@bg-alt";
text-color = mkLiteral "@bg";
vertical-align = mkLiteral "0.5";
horizontal-align = mkLiteral "0.0";
};
"error-message" = {
padding = mkLiteral "12px";
border-radius = mkLiteral "20px";
background-color = mkLiteral "@bg-alt";
text-color = mkLiteral "@bg";
};
};
};
};
}

View File

@ -1,148 +0,0 @@
## FIRST LINE/ROW: Info & Status
# First param ─┌
[username]
format = " [╭─$user]($style)@"
show_always = true
style_root = "bold red"
style_user = "bold red"
# Second param
[hostname]
disabled = false
format = "[$hostname]($style) in "
ssh_only = false
style = "bold dimmed red"
# If enabled hostnames with dashes will be cut off ##
#trim_at = "-"
# Third param
[directory]
style = "purple"
truncate_to_repo = true
truncation_length = 0
truncation_symbol = "repo: "
# Fourth param
[sudo]
disabled = false
# Before all the version info (python, nodejs, php, etc.)
[git_status]
ahead = "⇡${count}"
behind = "⇣${count}"
deleted = "x"
diverged = "⇕⇡${ahead_count}⇣${behind_count}"
style = "white"
# Last param in the first line/row
[cmd_duration]
disabled = true
format = "took [$duration]($style)"
min_time = 1
## SECOND LINE/ROW: Prompt
# Somethere at the beginning
[battery]
charging_symbol = ""
disabled = true
discharging_symbol = ""
full_symbol = ""
[[battery.display]] # "bold red" style when capacity is between 0% and 10%
disabled = false
style = "bold red"
threshold = 15
[[battery.display]] # "bold yellow" style when capacity is between 10% and 30%
disabled = true
style = "bold yellow"
threshold = 50
[[battery.display]] # "bold green" style when capacity is between 10% and 30%
disabled = true
style = "bold green"
threshold = 80
# Prompt: optional param 1
[time]
disabled = true
format = " 🕙 $time($style)\n"
style = "bright-white"
time_format = "%T"
# Prompt: param 2
[character]
error_symbol = " [×](bold red)"
success_symbol = " [╰─](bold red)"
# SYMBOLS
[status]
disabled = false
format = '[\[$symbol$status_common_meaning$status_signal_name$status_maybe_int\]]($style)'
map_symbol = true
pipestatus = true
symbol = "🔴"
[aws]
symbol = " "
[conda]
symbol = " "
[dart]
symbol = " "
[docker_context]
symbol = " "
[elixir]
symbol = " "
[elm]
symbol = " "
[git_branch]
symbol = " "
[golang]
symbol = " "
[hg_branch]
symbol = " "
[java]
symbol = " "
[julia]
symbol = " "
[nim]
symbol = " "
[nix_shell]
symbol = " "
[nodejs]
symbol = " "
[package]
symbol = " "
[perl]
symbol = " "
[php]
symbol = " "
[python]
symbol = " "
[ruby]
symbol = " "
[rust]
symbol = " "
[swift]
symbol = "ﯣ "

View File

@ -1,432 +1,312 @@
{ pkgs, config, ... }: { config, ... }:
let
palette = config.colorScheme.palette;
in
{ {
home.file.".config/swaync/config.json".text = '' home.file.".config/swaync/config.json".text = ''
{ {
"$schema": "/etc/xdg/swaync/configSchema.json", "$schema": "/etc/xdg/swaync/configSchema.json",
"positionX": "right", "positionX": "right",
"positionY": "top", "positionY": "top",
"control-center-margin-top": 10, "control-center-margin-top": 10,
"control-center-margin-bottom": 10, "control-center-margin-bottom": 10,
"control-center-margin-right": 10, "control-center-margin-right": 10,
"control-center-margin-left": 10, "control-center-margin-left": 10,
"notification-icon-size": 64, "notification-icon-size": 64,
"notification-body-image-height": 100, "notification-body-image-height": 100,
"notification-body-image-width": 200, "notification-body-image-width": 200,
"timeout": 10, "timeout": 10,
"timeout-low": 5, "timeout-low": 5,
"timeout-critical": 0, "timeout-critical": 0,
"fit-to-screen": false, "fit-to-screen": false,
"control-center-width": 500, "control-center-width": 500,
"control-center-height": 1025, "control-center-height": 1025,
"notification-window-width": 500, "notification-window-width": 500,
"keyboard-shortcuts": true, "keyboard-shortcuts": true,
"image-visibility": "when-available", "image-visibility": "when-available",
"transition-time": 200, "transition-time": 200,
"hide-on-clear": false, "hide-on-clear": false,
"hide-on-action": true, "hide-on-action": true,
"script-fail-notify": true, "script-fail-notify": true,
"widgets": [ "widgets": [
"title", "title",
"buttons-grid", "mpris",
"mpris", "volume",
"volume", "backlight",
"backlight", "dnd",
"dnd", "notifications"
"notifications" ],
], "widget-config": {
"widget-config": { "title": {
"title": { "text": "Notification Center",
"text": "Notification Center", "clear-all-button": true,
"clear-all-button": true, "button-text": "󰆴 Clear All"
"button-text": "󰆴 Clear All" },
}, "dnd": {
"dnd": { "text": "Do Not Disturb"
"text": "Do Not Disturb" },
}, "label": {
"label": { "max-lines": 1,
"max-lines": 1, "text": "Notification Center"
"text": "Notification Center" },
}, "mpris": {
"mpris": { "image-size": 96,
"image-size": 96, "image-radius": 7
"image-radius": 7 },
}, "volume": {
"volume": { "label": "󰕾"
"label": "󰕾" },
}, "backlight": {
"backlight": { "label": "󰃟"
"label": "󰃟" },
}, }
"buttons-grid": {
"actions": [
{
"label": "",
"command": "systemctl poweroff"
},
{
"label": "🔄",
"command": "systemctl reboot"
},
{
"label": "🚪",
"command": "hyprctl dispatch exit"
},
{
"label": "🗃",
"command": "thunar"
},
{
"label": "📸",
"command": "gimp"
},
{
"label": "📣",
"command": "pactl set-sink-mute @DEFAULT_SINK@ toggle"
},
{
"label": "🎙",
"command": "pactl set-source-mute @DEFAULT_SOURCE@ toggle"
},
{
"label": "🎮",
"command": "steam"
},
{
"label": "🌏",
"command": "firefox"
},
{
"label": "📹",
"command": "obs"
}
]
}
}
} }
''; '';
home.file.".config/swaync/style.css".text = '' home.file.".config/swaync/style.css".text = ''
* { * {
font-family: Ubuntu; font-family: JetBrainsMono Nerd Font Mono;
font-weight: bolder; font-weight: bold;
} }
.control-center .notification-row:focus, .control-center .notification-row:focus,
.control-center .notification-row:hover { .control-center .notification-row:hover {
opacity: 0.9; opacity: 0.9;
background: #${palette.base00} background: #${config.stylix.base16Scheme.base00}
} }
.notification-row { .notification-row {
outline: none; outline: none;
margin: 10px; margin: 10px;
padding: 0; padding: 0;
} }
.notification { .notification {
background: transparent; background: transparent;
padding: 0; padding: 0;
margin: 0px; margin: 0px;
} }
.notification-content { .notification-content {
background: #${palette.base00}; background: #${config.stylix.base16Scheme.base00};
padding: 10px; padding: 10px;
border-radius: 5px; border-radius: 5px;
border: 2px solid #${palette.base0D}; border: 2px solid #${config.stylix.base16Scheme.base0D};
margin: 0; margin: 0;
} }
.notification-default-action { .notification-default-action {
margin: 0; margin: 0;
padding: 0; padding: 0;
border-radius: 5px; border-radius: 5px;
} }
.close-button { .close-button {
background: #${palette.base08}; background: #${config.stylix.base16Scheme.base08};
color: #${palette.base00}; color: #${config.stylix.base16Scheme.base00};
text-shadow: none; text-shadow: none;
padding: 0; padding: 0;
border-radius: 5px; border-radius: 5px;
margin-top: 5px; margin-top: 5px;
margin-right: 5px; margin-right: 5px;
} }
.close-button:hover { .close-button:hover {
box-shadow: none; box-shadow: none;
background: #${palette.base0D}; background: #${config.stylix.base16Scheme.base0D};
transition: all .15s ease-in-out; transition: all .15s ease-in-out;
border: none border: none
} }
.notification-action { .notification-action {
border: 2px solid #${palette.base0D}; border: 2px solid #${config.stylix.base16Scheme.base0D};
border-top: none; border-top: none;
border-radius: 5px; border-radius: 5px;
} }
.notification-default-action:hover, .notification-default-action:hover,
.notification-action:hover { .notification-action:hover {
color: #${palette.base0B}; color: #${config.stylix.base16Scheme.base0B};
background: #${palette.base0B} background: #${config.stylix.base16Scheme.base0B}
} }
.notification-default-action { .notification-default-action {
border-radius: 5px; border-radius: 5px;
margin: 0px; margin: 0px;
} }
.notification-default-action:not(:only-child) { .notification-default-action:not(:only-child) {
border-bottom-left-radius: 7px; border-bottom-left-radius: 7px;
border-bottom-right-radius: 7px border-bottom-right-radius: 7px
} }
.notification-action:first-child { .notification-action:first-child {
border-bottom-left-radius: 10px; border-bottom-left-radius: 10px;
background: #${palette.base00} background: #${config.stylix.base16Scheme.base00}
} }
.notification-action:last-child { .notification-action:last-child {
border-bottom-right-radius: 10px; border-bottom-right-radius: 10px;
background: #${palette.base00} background: #${config.stylix.base16Scheme.base00}
} }
.inline-reply { .inline-reply {
margin-top: 8px margin-top: 8px
} }
.inline-reply-entry { .inline-reply-entry {
background: #${palette.base00}; background: #${config.stylix.base16Scheme.base00};
color: #${palette.base05}; color: #${config.stylix.base16Scheme.base05};
caret-color: #${palette.base05}; caret-color: #${config.stylix.base16Scheme.base05};
border: 1px solid #${palette.base09}; border: 1px solid #${config.stylix.base16Scheme.base09};
border-radius: 5px border-radius: 5px
} }
.inline-reply-button { .inline-reply-button {
margin-left: 4px; margin-left: 4px;
background: #${palette.base00}; background: #${config.stylix.base16Scheme.base00};
border: 1px solid #${palette.base09}; border: 1px solid #${config.stylix.base16Scheme.base09};
border-radius: 5px; border-radius: 5px;
color: #${palette.base05} color: #${config.stylix.base16Scheme.base05}
} }
.inline-reply-button:disabled { .inline-reply-button:disabled {
background: initial; background: initial;
color: #${palette.base03}; color: #${config.stylix.base16Scheme.base03};
border: 1px solid transparent border: 1px solid transparent
} }
.inline-reply-button:hover { .inline-reply-button:hover {
background: #${palette.base00} background: #${config.stylix.base16Scheme.base00}
} }
.body-image { .body-image {
margin-top: 6px; margin-top: 6px;
background-color: #${palette.base05}; background-color: #${config.stylix.base16Scheme.base05};
border-radius: 5px border-radius: 5px
} }
.summary { .summary {
font-size: 16px; font-size: 16px;
font-weight: 700; font-weight: 700;
background: transparent; background: transparent;
color: rgba(158, 206, 106, 1); color: rgba(158, 206, 106, 1);
text-shadow: none text-shadow: none
} }
.time { .time {
font-size: 16px; font-size: 16px;
font-weight: 700; font-weight: 700;
background: transparent; background: transparent;
color: #${palette.base05}; color: #${config.stylix.base16Scheme.base05};
text-shadow: none; text-shadow: none;
margin-right: 18px margin-right: 18px
} }
.body { .body {
font-size: 15px; font-size: 15px;
font-weight: 400; font-weight: 400;
background: transparent; background: transparent;
color: #${palette.base05}; color: #${config.stylix.base16Scheme.base05};
text-shadow: none text-shadow: none
} }
.control-center { .control-center {
background: #${palette.base00}; background: #${config.stylix.base16Scheme.base00};
border: 2px solid #${palette.base0C}; border: 2px solid #${config.stylix.base16Scheme.base0C};
border-radius: 5px; border-radius: 5px;
} }
.control-center-list { .control-center-list {
background: transparent background: transparent
} }
.control-center-list-placeholder { .control-center-list-placeholder {
opacity: .5 opacity: .5
} }
.floating-notifications { .floating-notifications {
background: transparent background: transparent
} }
.blank-window { .blank-window {
background: alpha(black, 0) background: alpha(black, 0)
} }
.widget-title { .widget-title {
color: #${palette.base0B}; color: #${config.stylix.base16Scheme.base0B};
background: #${palette.base00}; background: #${config.stylix.base16Scheme.base00};
padding: 5px 10px; padding: 5px 10px;
margin: 10px 10px 5px 10px; margin: 10px 10px 5px 10px;
font-size: 1.5rem; font-size: 1.5rem;
border-radius: 5px; border-radius: 5px;
} }
.widget-title>button { .widget-title>button {
font-size: 1rem; font-size: 1rem;
color: #${palette.base05}; color: #${config.stylix.base16Scheme.base05};
text-shadow: none; text-shadow: none;
background: #${palette.base00}; background: #${config.stylix.base16Scheme.base00};
box-shadow: none; box-shadow: none;
border-radius: 5px; border-radius: 5px;
} }
.widget-title>button:hover { .widget-title>button:hover {
background: #${palette.base08}; background: #${config.stylix.base16Scheme.base08};
color: #${palette.base00}; color: #${config.stylix.base16Scheme.base00};
} }
.widget-dnd { .widget-dnd {
background: #${palette.base00}; background: #${config.stylix.base16Scheme.base00};
padding: 5px 10px; padding: 5px 10px;
margin: 10px 10px 5px 10px; margin: 10px 10px 5px 10px;
border-radius: 5px; border-radius: 5px;
font-size: large; font-size: large;
color: #${palette.base0B}; color: #${config.stylix.base16Scheme.base0B};
} }
.widget-dnd>switch { .widget-dnd>switch {
border-radius: 5px; border-radius: 5px;
/* border: 1px solid #${palette.base0B}; */ /* border: 1px solid #${config.stylix.base16Scheme.base0B}; */
background: #${palette.base0B}; background: #${config.stylix.base16Scheme.base0B};
} }
.widget-dnd>switch:checked { .widget-dnd>switch:checked {
background: #${palette.base08}; background: #${config.stylix.base16Scheme.base08};
border: 1px solid #${palette.base08}; border: 1px solid #${config.stylix.base16Scheme.base08};
} }
.widget-dnd>switch slider { .widget-dnd>switch slider {
background: #${palette.base00}; background: #${config.stylix.base16Scheme.base00};
border-radius: 5px border-radius: 5px
} }
.widget-dnd>switch:checked slider { .widget-dnd>switch:checked slider {
background: #${palette.base00}; background: #${config.stylix.base16Scheme.base00};
border-radius: 5px border-radius: 5px
} }
.widget-label { .widget-label {
margin: 10px 10px 5px 10px; margin: 10px 10px 5px 10px;
} }
.widget-label>label { .widget-label>label {
font-size: 1rem; font-size: 1rem;
color: #${palette.base05}; color: #${config.stylix.base16Scheme.base05};
} }
.widget-mpris { .widget-mpris {
color: #${palette.base05}; color: #${config.stylix.base16Scheme.base05};
background: #${palette.base00}; padding: 5px 10px;
padding: 5px 10px; margin: 10px 10px 5px 10px;
margin: 10px 10px 5px 10px; border-radius: 5px;
border-radius: 5px;
} }
.widget-mpris > box > button { .widget-mpris > box > button {
border-radius: 5px; border-radius: 5px;
} }
.widget-mpris-player { .widget-mpris-player {
padding: 5px 10px; padding: 5px 10px;
margin: 10px margin: 10px
} }
.widget-mpris-title { .widget-mpris-title {
font-weight: 700; font-weight: 700;
font-size: 1.25rem font-size: 1.25rem
} }
.widget-mpris-subtitle { .widget-mpris-subtitle {
font-size: 1.1rem font-size: 1.1rem
} }
.widget-buttons-grid {
font-size: x-large;
padding: 5px;
margin: 10px 10px 5px 10px;
border-radius: 5px;
background: #${palette.base01};
}
.widget-buttons-grid>flowbox>flowboxchild>button {
margin: 3px;
background: #${palette.base00};
border-radius: 5px;
color: #${palette.base05};
}
.widget-buttons-grid>flowbox>flowboxchild>button:hover {
background: rgba(122, 162, 247, 1);
color: #${palette.base00};
}
.widget-menubar>box>.menu-button-bar>button { .widget-menubar>box>.menu-button-bar>button {
border: none; border: none;
background: transparent background: transparent
} }
.topbar-buttons>button { .topbar-buttons>button {
border: none; border: none;
background: transparent background: transparent
} }
.widget-volume { .widget-volume {
background: #${palette.base01}; background: #${config.stylix.base16Scheme.base01};
padding: 5px; padding: 5px;
margin: 10px 10px 5px 10px; margin: 10px 10px 5px 10px;
border-radius: 5px; border-radius: 5px;
font-size: x-large; font-size: x-large;
color: #${palette.base05}; color: #${config.stylix.base16Scheme.base05};
} }
.widget-volume>box>button { .widget-volume>box>button {
background: #${palette.base0B}; background: #${config.stylix.base16Scheme.base0B};
border: none border: none
} }
.per-app-volume { .per-app-volume {
background-color: #${palette.base00}; background-color: #${config.stylix.base16Scheme.base00};
padding: 4px 8px 8px; padding: 4px 8px 8px;
margin: 0 8px 8px; margin: 0 8px 8px;
border-radius: 5px; border-radius: 5px;
} }
.widget-backlight { .widget-backlight {
background: #${palette.base01}; background: #${config.stylix.base16Scheme.base01};
padding: 5px; padding: 5px;
margin: 10px 10px 5px 10px; margin: 10px 10px 5px 10px;
border-radius: 5px; border-radius: 5px;
font-size: x-large; font-size: x-large;
color: #${palette.base05} color: #${config.stylix.base16Scheme.base05}
} }
''; '';
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 KiB

View File

@ -1,15 +1,14 @@
{ {
pkgs, pkgs,
config,
lib, lib,
host, host,
config,
... ...
}: }:
let let
palette = config.colorScheme.palette;
betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)"; betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
inherit (import ../hosts/${host}/variables.nix) clock24h waybarAnimations; inherit (import ../hosts/${host}/variables.nix) clock24h;
in in
with lib; with lib;
{ {
@ -32,7 +31,6 @@ with lib;
]; ];
modules-right = [ modules-right = [
"custom/hyprbindings" "custom/hyprbindings"
"custom/themeselector"
"custom/notification" "custom/notification"
"custom/exit" "custom/exit"
"battery" "battery"
@ -114,11 +112,6 @@ with lib;
}; };
on-click = "sleep 0.1 && pavucontrol"; on-click = "sleep 0.1 && pavucontrol";
}; };
"custom/themeselector" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && theme-selector";
};
"custom/exit" = { "custom/exit" = {
tooltip = false; tooltip = false;
format = ""; format = "";
@ -128,7 +121,7 @@ with lib;
tooltip = false; tooltip = false;
format = ""; format = "";
# exec = "rofi -show drun"; # exec = "rofi -show drun";
on-click = "sleep 0.1 && wofi"; on-click = "sleep 0.1 && rofi-launcher";
}; };
"custom/hyprbindings" = { "custom/hyprbindings" = {
tooltip = false; tooltip = false;
@ -190,20 +183,20 @@ with lib;
style = concatStrings [ style = concatStrings [
'' ''
* { * {
font-family: JetBrainsMono Nerd Font Mono;
font-size: 16px; font-size: 16px;
border-radius: 0px; border-radius: 0px;
border: none; border: none;
font-family: JetBrainsMono Nerd Font Mono;
min-height: 0px; min-height: 0px;
} }
window#waybar { window#waybar {
background-color: #${palette.base00}; background: rgba(0,0,0,0);
} }
#workspaces { #workspaces {
color: #${palette.base00}; color: #${config.stylix.base16Scheme.base00};
background: #${palette.base01}; background: #${config.stylix.base16Scheme.base01};
margin: 4px 4px; margin: 4px 4px;
padding: 8px 5px; padding: 5px 5px;
border-radius: 16px; border-radius: 16px;
} }
#workspaces button { #workspaces button {
@ -211,17 +204,8 @@ with lib;
padding: 0px 5px; padding: 0px 5px;
margin: 0px 3px; margin: 0px 3px;
border-radius: 16px; border-radius: 16px;
color: #${palette.base00}; color: #${config.stylix.base16Scheme.base00};
background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09}); background: linear-gradient(45deg, #${config.stylix.base16Scheme.base08}, #${config.stylix.base16Scheme.base0D});
background-size: 300% 300%;
${
if waybarAnimations == true then
''
animation: gradient_horizontal 15s ease infinite;
''
else
''''
}
opacity: 0.5; opacity: 0.5;
transition: ${betterTransition}; transition: ${betterTransition};
} }
@ -230,17 +214,8 @@ with lib;
padding: 0px 5px; padding: 0px 5px;
margin: 0px 3px; margin: 0px 3px;
border-radius: 16px; border-radius: 16px;
color: #${palette.base00}; color: #${config.stylix.base16Scheme.base00};
background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09}); background: linear-gradient(45deg, #${config.stylix.base16Scheme.base08}, #${config.stylix.base16Scheme.base0D});
background-size: 300% 300%;
${
if waybarAnimations == true then
''
animation: gradient_horizontal 15s ease infinite;
''
else
''''
}
transition: ${betterTransition}; transition: ${betterTransition};
opacity: 1.0; opacity: 1.0;
min-width: 40px; min-width: 40px;
@ -248,69 +223,41 @@ with lib;
#workspaces button:hover { #workspaces button:hover {
font-weight: bold; font-weight: bold;
border-radius: 16px; border-radius: 16px;
color: #${palette.base00}; color: #${config.stylix.base16Scheme.base00};
background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09}); background: linear-gradient(45deg, #${config.stylix.base16Scheme.base08}, #${config.stylix.base16Scheme.base0D});
background-size: 300% 300%;
${
if waybarAnimations == true then
''
animation: gradient_horizontal 15s ease infinite;
''
else
''''
}
opacity: 0.8; opacity: 0.8;
transition: ${betterTransition}; transition: ${betterTransition};
} }
@keyframes gradient_horizontal {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}
@keyframes swiping {
0% {
background-position: 0% 200%;
}
100% {
background-position: 200% 200%;
}
}
tooltip { tooltip {
background: #${palette.base00}; background: #${config.stylix.base16Scheme.base00};
border: 1px solid #${palette.base0E}; border: 1px solid #${config.stylix.base16Scheme.base08};
border-radius: 12px; border-radius: 12px;
} }
tooltip label { tooltip label {
color: #${palette.base07}; color: #${config.stylix.base16Scheme.base08};
} }
#window, #pulseaudio, #cpu, #memory, #idle_inhibitor { #window, #pulseaudio, #cpu, #memory, #idle_inhibitor {
font-weight: bold; font-weight: bold;
margin: 4px 0px; margin: 4px 0px;
margin-left: 7px; margin-left: 7px;
padding: 0px 18px; padding: 0px 18px;
color: #${palette.base05}; background: #${config.stylix.base16Scheme.base04};
background: #${palette.base01}; color: #${config.stylix.base16Scheme.base00};
border-radius: 24px 10px 24px 10px; border-radius: 24px 10px 24px 10px;
} }
#custom-startmenu { #custom-startmenu {
color: #${palette.base0D}; color: #${config.stylix.base16Scheme.base0B};
background: #${palette.base01}; background: #${config.stylix.base16Scheme.base02};
font-size: 28px; font-size: 28px;
margin: 0px; margin: 0px;
padding: 0px 30px 0px 15px; padding: 0px 30px 0px 15px;
border-radius: 0px 0px 40px 0px; border-radius: 0px 0px 40px 0px;
} }
#custom-hyprbindings, #network, #custom-themeselector, #battery, #custom-hyprbindings, #network, #battery,
#custom-notification, #tray, #custom-exit { #custom-notification, #tray, #custom-exit {
font-weight: bold; font-weight: bold;
background: #${palette.base01}; background: #${config.stylix.base16Scheme.base0F};
color: #${palette.base05}; color: #${config.stylix.base16Scheme.base00};
margin: 4px 0px; margin: 4px 0px;
margin-right: 7px; margin-right: 7px;
border-radius: 10px 24px 10px 24px; border-radius: 10px 24px 10px 24px;
@ -318,17 +265,8 @@ with lib;
} }
#clock { #clock {
font-weight: bold; font-weight: bold;
color: #${palette.base00}; color: #0D0E15;
background: linear-gradient(45deg, #${palette.base0C}, #${palette.base0F}, #${palette.base0B}, #${palette.base08}); background: linear-gradient(90deg, #${config.stylix.base16Scheme.base0E}, #${config.stylix.base16Scheme.base0C});
background-size: 300% 300%;
${
if waybarAnimations == true then
''
animation: gradient_horizontal 15s ease infinite;
''
else
''''
}
margin: 0px; margin: 0px;
padding: 0px 15px 0px 30px; padding: 0px 15px 0px 30px;
border-radius: 0px 0px 0px 40px; border-radius: 0px 0px 0px 40px;

View File

@ -1,13 +1,5 @@
{ { config, ... }:
config,
lib,
pkgs,
...
}:
let
palette = config.colorScheme.palette;
in
{ {
programs.wlogout = { programs.wlogout = {
enable = true; enable = true;
@ -59,22 +51,22 @@ in
background-color: rgba(12, 12, 12, 0.1); background-color: rgba(12, 12, 12, 0.1);
} }
button { button {
color: #${palette.base05}; color: #${config.stylix.base16Scheme.base05};
font-size:20px; font-size:20px;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;
background-size: 25%; background-size: 25%;
border-style: solid; border-style: solid;
background-color: rgba(12, 12, 12, 0.3); background-color: rgba(12, 12, 12, 0.3);
border: 3px solid #${palette.base05}; border: 3px solid #${config.stylix.base16Scheme.base05};
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
} }
button:focus, button:focus,
button:active, button:active,
button:hover { button:hover {
color: #${palette.base0E}; color: #${config.stylix.base16Scheme.base0B};
background-color: rgba(12, 12, 12, 0.5); background-color: rgba(12, 12, 12, 0.5);
border: 3px solid #${palette.base0E}; border: 3px solid #${config.stylix.base16Scheme.base0B};
} }
#logout { #logout {
margin: 10px; margin: 10px;

View File

@ -1,18 +1,181 @@
{ {
"nodes": { "nodes": {
"base16-schemes": { "base16": {
"inputs": {
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1708890466,
"narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "665b3c6748534eb766c777298721cece9453fdae",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "base16.nix",
"type": "github"
}
},
"base16-fish": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696158499, "lastModified": 1622559957,
"narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=", "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"type": "github"
}
},
"base16-foot": {
"flake": false,
"locked": {
"lastModified": 1696725948,
"narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-schemes", "repo": "base16-foot",
"rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a", "rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-schemes", "repo": "base16-foot",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1696727917,
"narHash": "sha256-FVrbPk+NtMra0jtlC5oxyNchbm8FosmvXIatkRbYy1g=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "dbe1480d99fe80f08df7970e471fac24c05f2ddb",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-helix",
"type": "github"
}
},
"base16-kitty": {
"flake": false,
"locked": {
"lastModified": 1665001328,
"narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=",
"owner": "kdrag0n",
"repo": "base16-kitty",
"rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805",
"type": "github"
},
"original": {
"owner": "kdrag0n",
"repo": "base16-kitty",
"type": "github"
}
},
"base16-tmux": {
"flake": false,
"locked": {
"lastModified": 1696725902,
"narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=",
"owner": "tinted-theming",
"repo": "base16-tmux",
"rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-tmux",
"type": "github"
}
},
"base16-vim": {
"flake": false,
"locked": {
"lastModified": 1716150083,
"narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=",
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-vim",
"type": "github"
}
},
"fine-cmdline": {
"flake": false,
"locked": {
"lastModified": 1700512774,
"narHash": "sha256-w9wwjClkOWk3wCgEiZIFLZRJ/gAfX38x2LnVRaelKD8=",
"owner": "VonHeikemen",
"repo": "fine-cmdline.nvim",
"rev": "dd676584145d62b30d7e8dbdd011796a8f0a065f",
"type": "github"
},
"original": {
"owner": "VonHeikemen",
"repo": "fine-cmdline.nvim",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"fromYaml": {
"flake": false,
"locked": {
"lastModified": 1689549921,
"narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=",
"owner": "SenchoPens",
"repo": "fromYaml",
"rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "fromYaml",
"type": "github"
}
},
"gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1713702291,
"narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934",
"type": "github"
},
"original": {
"owner": "GNOME",
"ref": "46.1",
"repo": "gnome-shell",
"type": "github" "type": "github"
} }
}, },
@ -22,6 +185,28 @@
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": {
"lastModified": 1718526747,
"narHash": "sha256-sKrD/utGvmtQALvuDj4j0CT3AJXP1idOAq2p+27TpeE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "0a7ffb28e5df5844d0e8039c9833d7075cdee792",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "master",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": { "locked": {
"lastModified": 1715930644, "lastModified": 1715930644,
"narHash": "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=", "narHash": "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=",
@ -32,284 +217,75 @@
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "master",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
}, },
"hyprcursor": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1715791817,
"narHash": "sha256-J069Uhv/gCMFLX1dSh2f+9ZTM09r1Nv3oUfocCnWKow=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "7c3aa03dffb53921e583ade3d4ae3f487e390e7e",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprcursor",
"type": "github"
}
},
"hyprland": {
"inputs": {
"hyprcursor": "hyprcursor",
"hyprlang": "hyprlang",
"hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs",
"systems": "systems",
"xdph": "xdph"
},
"locked": {
"lastModified": 1716063601,
"narHash": "sha256-gAuCKupztnqai1tZ6TyCFCRbeFzbggL0Oe0vl0/cwK8=",
"ref": "refs/heads/main",
"rev": "f8857e6072bd85b95393499688872aaf7f088b5b",
"revCount": 4719,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
},
"original": {
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
}
},
"hyprland-plugins": {
"inputs": {
"hyprland": [
"hyprland"
],
"systems": [
"hyprland-plugins",
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1715722806,
"narHash": "sha256-KrSLG2H3KGELxTFdiBhv8U6D53Q3UsJsQO+KgEabsNA=",
"owner": "hyprwm",
"repo": "hyprland-plugins",
"rev": "c28d1011f4868c1a1ee80b10d9ee79900686df82",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-plugins",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"xdph",
"nixpkgs"
],
"systems": [
"hyprland",
"xdph",
"systems"
]
},
"locked": {
"lastModified": 1691753796,
"narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1715791527,
"narHash": "sha256-HhQ4zvGHrRjR63ltySSeg+x+0jb0lepiutWdnFhLRoo=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "969cb076e5b76f2e823aeca1937a3e1f159812ee",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1715879663,
"narHash": "sha256-/DwglRvj4XF4ECdNtrCIbthleszAZBwOiXG5A6r0K/c=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "f5181a068c1b06f2db51f6222e50a0c665a2b0c3",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"nix-colors": {
"inputs": {
"base16-schemes": "base16-schemes",
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1707825078,
"narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=",
"owner": "misterio77",
"repo": "nix-colors",
"rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1",
"type": "github"
},
"original": {
"owner": "misterio77",
"repo": "nix-colors",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1715787315, "lastModified": 1718318537,
"narHash": "sha256-cYApT0NXJfqBkKcci7D9Kr4CBYZKOQKDYA23q8XNuWg=", "narHash": "sha256-4Zu0RYRcAY/VWuu6awwq4opuiD//ahpc2aFHg2CWqFY=",
"owner": "NixOS", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "33d1e753c82ffc557b4a585c77de43d4c922ebb5", "rev": "e9ee548d90ff586a6471b4ae80ae9cfcbceb3420",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "nixos",
"ref": "nixos-unstable", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs-lib": {
"locked": {
"lastModified": 1697935651,
"narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1716137900, "lastModified": 1714912032,
"narHash": "sha256-sowPU+tLQv8GlqtVtsXioTKeaQvlMz/pefcdwg8MvfM=", "narHash": "sha256-clkcOIkg8G4xuJh+1onLG4HPMpbtzdLv4rHxFzgsH9c=",
"owner": "nixos", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6c0b7a92c30122196a761b440ac0d46d3d9954f1", "rev": "ee4a6e0f566fe5ec79968c57a9c2c3c25f2cf41d",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "NixOS",
"ref": "nixos-unstable", "ref": "nixpkgs-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"root": { "root": {
"inputs": { "inputs": {
"fine-cmdline": "fine-cmdline",
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprland": "hyprland", "nixpkgs": "nixpkgs",
"hyprland-plugins": "hyprland-plugins", "stylix": "stylix"
"nix-colors": "nix-colors",
"nixpkgs": "nixpkgs_2"
} }
}, },
"systems": { "stylix": {
"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"
}
},
"xdph": {
"inputs": { "inputs": {
"hyprland-protocols": "hyprland-protocols", "base16": "base16",
"hyprlang": [ "base16-fish": "base16-fish",
"hyprland", "base16-foot": "base16-foot",
"hyprlang" "base16-helix": "base16-helix",
], "base16-kitty": "base16-kitty",
"nixpkgs": [ "base16-tmux": "base16-tmux",
"hyprland", "base16-vim": "base16-vim",
"nixpkgs" "flake-compat": "flake-compat",
], "gnome-shell": "gnome-shell",
"systems": [ "home-manager": "home-manager_2",
"hyprland", "nixpkgs": "nixpkgs_2"
"systems"
]
}, },
"locked": { "locked": {
"lastModified": 1715788457, "lastModified": 1718634635,
"narHash": "sha256-32HOkjSIyANphV0p5gIwP4ONU/CcinhwOyVFB+tL/d0=", "narHash": "sha256-REUyeY+gD/QuTwAhuJycheej0FWFGPTosI+jiG5TsQk=",
"owner": "hyprwm", "owner": "danth",
"repo": "xdg-desktop-portal-hyprland", "repo": "stylix",
"rev": "af7c87a32f5d67eb2ada908a6a700f4e74831943", "rev": "f13c946181730f98e1a5cd09714100490207b250",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hyprwm", "owner": "danth",
"repo": "xdg-desktop-portal-hyprland", "repo": "stylix",
"type": "github" "type": "github"
} }
} }

View File

@ -5,27 +5,25 @@
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager/master"; home-manager.url = "github:nix-community/home-manager/master";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
nix-colors.url = "github:misterio77/nix-colors"; stylix.url = "github:danth/stylix";
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; fine-cmdline = {
hyprland-plugins = { url = "github:VonHeikemen/fine-cmdline.nvim";
url = "github:hyprwm/hyprland-plugins"; flake = false;
inputs.hyprland.follows = "hyprland";
}; };
# This is required for plugin support.
# hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
# hyprland-plugins = {
# url = "github:hyprwm/hyprland-plugins";
# inputs.hyprland.follows = "hyprland";
# };
}; };
outputs = outputs =
inputs@{ nixpkgs, home-manager, ... }: { nixpkgs, home-manager, ... }@inputs:
let let
system = "x86_64-linux"; system = "x86_64-linux";
host = "familypc"; host = "default";
username = "zaney"; username = "zaney";
pkgs = import nixpkgs {
inherit system;
config = {
allowUnfree = true;
};
};
in in
{ {
nixosConfigurations = { nixosConfigurations = {
@ -38,13 +36,13 @@
}; };
modules = [ modules = [
./hosts/${host}/config.nix ./hosts/${host}/config.nix
inputs.stylix.nixosModules.stylix
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager.extraSpecialArgs = { home-manager.extraSpecialArgs = {
inherit username; inherit username;
inherit inputs; inherit inputs;
inherit host; inherit host;
inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) gtkThemeFromScheme;
}; };
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;

View File

@ -2,7 +2,6 @@
config, config,
pkgs, pkgs,
host, host,
inputs,
username, username,
options, options,
... ...
@ -20,38 +19,100 @@
../../modules/local-hardware-clock.nix ../../modules/local-hardware-clock.nix
]; ];
# Kernel boot = {
boot.kernelPackages = pkgs.linuxPackages; # Kernel
# boot.kernelPackages = pkgs.linuxPackages_zen; kernelPackages = pkgs.linuxPackages_zen;
# This is for OBS Virtual Cam Support
# Bootloader. kernelModules = [ "v4l2loopback" ];
boot.loader.systemd-boot.enable = true; extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
boot.loader.efi.canTouchEfiVariables = true; # Needed For Some Steam Games
boot.kernel.sysctl = { kernel.sysctl = {
"vm.max_map_count" = 2147483642; "vm.max_map_count" = 2147483642;
}; };
boot.tmp.useTmpfs = false; # Bootloader.
boot.tmp.tmpfsSize = "30%"; loader.systemd-boot.enable = true;
boot.binfmt.registrations.appimage = { loader.efi.canTouchEfiVariables = true;
wrapInterpreterInShell = false; # Make /tmp a tmpfs
interpreter = "${pkgs.appimage-run}/bin/appimage-run"; tmp = {
recognitionType = "magic"; useTmpfs = false;
offset = 0; tmpfsSize = "30%";
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff''; };
magicOrExtension = ''\x7fELF....AI\x02''; # Appimage Support
binfmt.registrations.appimage = {
wrapInterpreterInShell = false;
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
recognitionType = "magic";
offset = 0;
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
magicOrExtension = ''\x7fELF....AI\x02'';
};
plymouth.enable = true;
}; };
# This is for OBS Virtual Cam Support - v4l2loopback setup # Styling Options
boot.kernelModules = [ "v4l2loopback" ]; stylix = {
boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ]; enable = true;
image = ../../config/wallpapers/beautifulmountainscape.jpg;
# base16Scheme = {
# base00 = "232136";
# base01 = "2a273f";
# base02 = "393552";
# base03 = "6e6a86";
# base04 = "908caa";
# base05 = "e0def4";
# base06 = "e0def4";
# base07 = "56526e";
# base08 = "eb6f92";
# base09 = "f6c177";
# base0A = "ea9a97";
# base0B = "3e8fb0";
# base0C = "9ccfd8";
# base0D = "c4a7e7";
# base0E = "f6c177";
# base0F = "56526e";
# };
polarity = "dark";
opacity.terminal = 0.8;
cursor.package = pkgs.bibata-cursors;
cursor.name = "Bibata-Modern-Ice";
cursor.size = 24;
fonts = {
monospace = {
package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
name = "JetBrainsMono Nerd Font Mono";
};
sansSerif = {
package = pkgs.montserrat;
name = "Montserrat";
};
serif = {
package = pkgs.montserrat;
name = "Montserrat";
};
sizes = {
applications = 12;
terminal = 15;
desktop = 11;
popups = 12;
};
};
};
# Configure network proxy if necessary # Extra Module Options
# networking.proxy.default = "http://user:password@proxy:port/"; drivers.amdgpu.enable = true;
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; drivers.nvidia.enable = false;
drivers.nvidia-prime = {
enable = false;
intelBusID = "";
nvidiaBusID = "";
};
drivers.intel.enable = false;
vm.guest-services.enable = false;
local.hardware-clock.enable = false;
# Enable networking # Enable networking
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
networking.hostName = "${host}"; networking.hostName = host;
networking.timeServers = options.networking.timeServers.default ++ [ "pool.ntp.org" ]; networking.timeServers = options.networking.timeServers.default ++ [ "pool.ntp.org" ];
# Set your time zone. # Set your time zone.
@ -73,12 +134,76 @@
}; };
programs = { programs = {
hyprland = { firefox.enable = false;
starship = {
enable = true; enable = true;
package = inputs.hyprland.packages.${pkgs.system}.hyprland; settings = {
xwayland.enable = true; add_newline = false;
buf = {
symbol = " ";
};
c = {
symbol = " ";
};
directory = {
read_only = " 󰌾";
};
docker_context = {
symbol = " ";
};
fossil_branch = {
symbol = " ";
};
git_branch = {
symbol = " ";
};
golang = {
symbol = " ";
};
hg_branch = {
symbol = " ";
};
hostname = {
ssh_symbol = " ";
};
lua = {
symbol = " ";
};
memory_usage = {
symbol = "󰍛 ";
};
meson = {
symbol = "󰔷 ";
};
nim = {
symbol = "󰆥 ";
};
nix_shell = {
symbol = " ";
};
nodejs = {
symbol = " ";
};
ocaml = {
symbol = " ";
};
package = {
symbol = "󰏗 ";
};
python = {
symbol = " ";
};
rust = {
symbol = " ";
};
swift = {
symbol = " ";
};
zig = {
symbol = " ";
};
};
}; };
firefox.enable = true;
dconf.enable = true; dconf.enable = true;
seahorse.enable = true; seahorse.enable = true;
fuse.userAllowOther = true; fuse.userAllowOther = true;
@ -96,7 +221,10 @@
}; };
thunar = { thunar = {
enable = true; enable = true;
plugins = with pkgs.xfce; [ thunar-archive-plugin thunar-volman ]; plugins = with pkgs.xfce; [
thunar-archive-plugin
thunar-volman
];
}; };
}; };
@ -106,111 +234,134 @@
mutableUsers = true; mutableUsers = true;
}; };
environment.systemPackages = environment.systemPackages = with pkgs; [
let vim
sugar = pkgs.callPackage ../../pkgs/sddm-sugar-dark.nix { }; wget
tokyo-night = pkgs.libsForQt5.callPackage ../../pkgs/sddm-tokyo-night.nix { }; killall
in eza
with pkgs; git
[ cmatrix
vim lolcat
wget fastfetch
killall htop
git brave
cmatrix libvirt
lolcat lxqt.lxqt-policykit
neofetch lm_sensors
htop unzip
libvirt unrar
lxqt.lxqt-policykit libnotify
mangohud v4l-utils
lm_sensors ydotool
unzip duf
unrar ncdu
libnotify wl-clipboard
eza pciutils
v4l-utils ffmpeg
ydotool socat
wl-clipboard cowsay
lm_sensors ripgrep
pciutils lshw
socat bat
cowsay pkg-config
ripgrep meson
lsd hyprpicker
lshw ninja
pkg-config brightnessctl
meson virt-viewer
gnumake swappy
ninja appimage-run
symbola networkmanagerapplet
noto-fonts-color-emoji yad
material-icons inxi
brightnessctl playerctl
virt-viewer nh
swappy nixfmt-rfc-style
appimage-run discord
networkmanagerapplet libvirt
yad swww
playerctl grim
nh slurp
nixfmt-rfc-style gnome.file-roller
discord swaynotificationcenter
libvirt imv
swww mpv
grim gimp
slurp pavucontrol
gnome.file-roller tree
swaynotificationcenter spotify
imv neovide
transmission-gtk greetd.tuigreet
distrobox ];
mpv
gimp fonts = {
obs-studio packages = with pkgs; [
rustup noto-fonts-emoji
audacity noto-fonts-cjk
pavucontrol
tree
protonup-qt
font-awesome font-awesome
spotify symbola
neovide material-icons
(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
sugar.sddm-sugar-dark # Name: sugar-dark
tokyo-night # Name: tokyo-night-sddm
pkgs.libsForQt5.qt5.qtgraphicaleffects
]; ];
};
environment.variables = { environment.variables = {
ZANEYOS_VERSION = "2.1"; ZANEYOS_VERSION = "2.2";
ZANEYOS = "true"; ZANEYOS = "true";
}; };
# Extra Portal Configuration
xdg.portal = {
enable = true;
wlr.enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal
];
configPackages = [
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-hyprland
pkgs.xdg-desktop-portal
];
};
# Services to start # Services to start
services = { services = {
xserver = { xserver = {
enable = true; enable = false;
displayManager.sddm = {
enable = true;
autoNumlock = true;
wayland.enable = true;
theme = "sugar-dark";
};
desktopManager.cinnamon.enable = false;
xkb = { xkb = {
layout = "us"; layout = "us";
variant = ""; variant = "";
}; };
}; };
smartd = { greetd = {
enable = true; enable = true;
vt = 3;
settings = {
default_session = {
# Wayland Desktop Manager is installed only for user ryan via home-manager!
user = username;
# .wayland-session is a script generated by home-manager, which links to the current wayland compositor(sway/hyprland or others).
# with such a vendor-no-locking script, we can switch to another wayland compositor without modifying greetd's config here.
# command = "$HOME/.wayland-session"; # start a wayland session directly without a login manager
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland"; # start Hyprland with a TUI login manager
};
};
};
smartd = {
enable = false;
autodetect = true; autodetect = true;
}; };
libinput.enable = true; libinput.enable = true;
fstrim.enable = true;
gvfs.enable = true;
openssh.enable = true; openssh.enable = true;
flatpak.enable = false; flatpak.enable = false;
printing.enable = true; printing = {
enable = true;
drivers = [
# pkgs.hplipWithPlugin
];
};
gnome.gnome-keyring.enable = true; gnome.gnome-keyring.enable = true;
avahi = { avahi = {
enable = true; enable = true;
@ -230,11 +381,10 @@
alsa.support32Bit = true; alsa.support32Bit = true;
pulse.enable = true; pulse.enable = true;
}; };
rpcbind.enable = true; rpcbind.enable = false;
nfs.server.enable = true; nfs.server.enable = false;
}; };
systemd.services.flatpak-repo = { systemd.services.flatpak-repo = {
wantedBy = [ "multi-user.target" ];
path = [ pkgs.flatpak ]; path = [ pkgs.flatpak ];
script = '' script = ''
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
@ -245,8 +395,16 @@
extraBackends = [ pkgs.sane-airscan ]; extraBackends = [ pkgs.sane-airscan ];
disabledDefaultBackends = [ "escl" ]; disabledDefaultBackends = [ "escl" ];
}; };
# Extra Logitech Support
hardware.logitech.wireless.enable = true; hardware.logitech.wireless.enable = true;
hardware.logitech.wireless.enableGraphical = true; hardware.logitech.wireless.enableGraphical = true;
# Bluetooth Support
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
services.blueman.enable = true;
# Enable sound with pipewire. # Enable sound with pipewire.
sound.enable = true; sound.enable = true;
hardware.pulseaudio.enable = false; hardware.pulseaudio.enable = false;
@ -270,6 +428,11 @@
} }
}) })
''; '';
security.pam.services.swaylock = {
text = ''
auth include login
'';
};
# Optimization settings and garbage collection automation # Optimization settings and garbage collection automation
nix = { nix = {
@ -304,18 +467,6 @@
driSupport32Bit = true; driSupport32Bit = true;
}; };
# Extra Module Options
drivers.amdgpu.enable = true;
drivers.nvidia.enable = false;
drivers.nvidia-prime = {
enable = false;
intelBusID = "";
nvidiaBusID = "";
};
drivers.intel.enable = false;
vm.guest-services.enable = false;
local.hardware-clock.enable = false;
# Open ports in the firewall. # Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ];

View File

@ -1,7 +1,7 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, username, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:
{ {
imports = imports =
@ -14,17 +14,12 @@
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/9e36b8f0-e272-4e69-99ad-dba17949887f"; { device = "/dev/disk/by-uuid/c537152e-ea4f-4bb7-b453-088612e0024a";
fsType = "ext4"; fsType = "ext4";
}; };
# fileSystems."/home/${username}/nfs" =
# { device = "/dev/disk/by-uuid/55555555-5555-5555-5555-555555555555";
# fsType = "nfs";
# };
fileSystems."/boot" = fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/7CBF-413D"; { device = "/dev/disk/by-uuid/DA7B-269C";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ]; options = [ "fmask=0022" "dmask=0022" ];
}; };
@ -37,7 +32,6 @@
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp7s0.useDHCP = lib.mkDefault true; # networking.interfaces.enp7s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp0s20u10.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

View File

@ -1,19 +1,11 @@
{ {
config,
pkgs, pkgs,
inputs,
username, username,
host, host,
gtkThemeFromScheme,
... ...
}: }:
let let
palette = config.colorScheme.palette; inherit (import ./variables.nix) gitUsername gitEmail;
inherit (import ./variables.nix)
gitUsername
gitEmail
theme
;
in in
{ {
# Home Manager Settings # Home Manager Settings
@ -21,63 +13,34 @@ in
home.homeDirectory = "/home/${username}"; home.homeDirectory = "/home/${username}";
home.stateVersion = "23.11"; home.stateVersion = "23.11";
# Set The Colorscheme
colorScheme = inputs.nix-colors.colorSchemes."${theme}";
# Import Program Configurations # Import Program Configurations
imports = [ imports = [
inputs.nix-colors.homeManagerModules.default ../../config/emoji.nix
inputs.hyprland.homeManagerModules.default
../../config/hyprland.nix ../../config/hyprland.nix
../../config/neovim.nix
../../config/rofi/rofi.nix
../../config/rofi/config-emoji.nix
../../config/rofi/config-long.nix
../../config/swaync.nix ../../config/swaync.nix
../../config/waybar.nix ../../config/waybar.nix
../../config/wlogout.nix ../../config/wlogout.nix
]; ];
# Define Settings For Xresources
xresources.properties = {
"Xcursor.size" = 24;
};
# Place Files Inside Home Directory # Place Files Inside Home Directory
home.file."Pictures/Wallpapers" = { home.file."Pictures/Wallpapers" = {
source = ../../config/wallpapers; source = ../../config/wallpapers;
recursive = true; recursive = true;
}; };
home.file.".config/fastfetch" = {
source = ../../config/fastfetch;
recursive = true;
};
home.file.".config/wlogout/icons" = { home.file.".config/wlogout/icons" = {
source = ../../config/wlogout; source = ../../config/wlogout;
recursive = true; recursive = true;
}; };
home.file.".local/share/fonts" = {
source = ../../config/fonts;
recursive = true;
};
home.file.".config/starship.toml".source = ../../config/starship.toml;
home.file.".config/ascii-neofetch".source = ../../config/ascii-neofetch;
home.file.".base16-themes".source = ../../config/base16-themes;
home.file.".emoji".source = ../../config/emoji;
home.file.".face.icon".source = ../../config/face.jpg; home.file.".face.icon".source = ../../config/face.jpg;
home.file.".config/neofetch/config.conf".text = '' home.file.".config/face.jpg".source = ../../config/face.jpg;
print_info() {
prin "$(color 6) ZaneyOS $ZANEYOS_VERSION"
info underline
info "$(color 7) VER" kernel
info "$(color 2) UP " uptime
info "$(color 4) PKG" packages
info "$(color 6) DE " de
info "$(color 5) TER" term
info "$(color 3) CPU" cpu
info "$(color 7) GPU" gpu
info "$(color 5) MEM" memory
prin " "
prin "$(color 1) $(color 2) $(color 3) $(color 4) $(color 5) $(color 6) $(color 7) $(color 8)"
}
distro_shorthand="on"
memory_unit="gib"
cpu_temp="C"
separator=" $(color 4)>"
stdout="off"
'';
home.file.".config/swappy/config".text = '' home.file.".config/swappy/config".text = ''
[Default] [Default]
save_dir=/home/${username}/Pictures/Screenshots save_dir=/home/${username}/Pictures/Screenshots
@ -91,7 +54,6 @@ in
fill_shape=false fill_shape=false
''; '';
# Install & Configure Git # Install & Configure Git
programs.git = { programs.git = {
enable = true; enable = true;
@ -114,27 +76,11 @@ in
}; };
}; };
# Configure Cursor Theme # Styling Options
home.pointerCursor = { stylix.targets.waybar.enable = false;
gtk.enable = true; stylix.targets.rofi.enable = false;
x11.enable = true; stylix.targets.hyprland.enable = false;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Ice";
size = 24;
};
# Theme GTK
gtk = { gtk = {
enable = true;
font = {
name = "Ubuntu";
size = 12;
package = pkgs.ubuntu_font_family;
};
theme = {
name = "${config.colorScheme.slug}";
package = gtkThemeFromScheme { scheme = config.colorScheme; };
};
iconTheme = { iconTheme = {
name = "Papirus-Dark"; name = "Papirus-Dark";
package = pkgs.papirus-icon-theme; package = pkgs.papirus-icon-theme;
@ -146,28 +92,18 @@ in
gtk-application-prefer-dark-theme = 1; gtk-application-prefer-dark-theme = 1;
}; };
}; };
# Theme QT -> GTK
qt = { qt = {
enable = true; enable = true;
platformTheme = "gtk"; style.name = "adwaita-dark";
style = { platformTheme.name = "gtk3";
name = "adwaita-dark";
package = pkgs.adwaita-qt;
};
}; };
# Scripts # Scripts
home.packages = [ home.packages = [
(import ../../scripts/emopicker9000.nix { inherit pkgs; }) (import ../../scripts/emopicker9000.nix { inherit pkgs; })
(import ../../scripts/task-waybar.nix { inherit pkgs; }) (import ../../scripts/task-waybar.nix { inherit pkgs; })
(import ../../scripts/squirtle.nix { inherit pkgs; }) (import ../../scripts/squirtle.nix { inherit pkgs; })
(import ../../scripts/themechange.nix {
inherit pkgs;
inherit host;
inherit username;
})
(import ../../scripts/theme-selector.nix { inherit pkgs; })
(import ../../scripts/nvidia-offload.nix { inherit pkgs; }) (import ../../scripts/nvidia-offload.nix { inherit pkgs; })
(import ../../scripts/wallsetter.nix { (import ../../scripts/wallsetter.nix {
inherit pkgs; inherit pkgs;
@ -182,204 +118,55 @@ in
}) })
]; ];
services = {
hypridle = {
settings = {
general = {
after_sleep_cmd = "hyprctl dispatch dpms on";
ignore_dbus_inhibit = false;
lock_cmd = "hyprlock";
starship = {
enable = true;
package = pkgs.starship;
};
};
listener = [
{
timeout = 900;
on-timeout = "hyprlock";
}
{
timeout = 1200;
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
}
];
};
};
};
programs = { programs = {
gh.enable = true; gh.enable = true;
neovim = { btop = {
enable = true; enable = true;
defaultEditor = true; settings = {
viAlias = true; vim_keys = true;
vimAlias = true; };
vimdiffAlias = true;
withNodeJs = true;
extraPackages = with pkgs; [
lua-language-server
gopls
xclip
wl-clipboard
luajitPackages.lua-lsp
nil
rust-analyzer
nodePackages.bash-language-server
yaml-language-server
pyright
marksman
];
plugins = with pkgs.vimPlugins; [
alpha-nvim
auto-session
bufferline-nvim
dressing-nvim
indent-blankline-nvim
nvim-treesitter.withAllGrammars
lualine-nvim
nvim-autopairs
nvim-web-devicons
nvim-cmp
nvim-surround
nvim-lspconfig
cmp-nvim-lsp
cmp-buffer
luasnip
cmp_luasnip
friendly-snippets
lspkind-nvim
comment-nvim
nvim-ts-context-commentstring
{
plugin = dracula-nvim;
config = "colorscheme dracula";
}
plenary-nvim
neodev-nvim
luasnip
telescope-nvim
todo-comments-nvim
nvim-tree-lua
telescope-fzf-native-nvim
vim-tmux-navigator
];
extraConfig = ''
set noemoji
'';
extraLuaConfig = ''
${builtins.readFile ../../config/nvim/options.lua}
${builtins.readFile ../../config/nvim/keymaps.lua}
${builtins.readFile ../../config/nvim/plugins/alpha.lua}
${builtins.readFile ../../config/nvim/plugins/autopairs.lua}
${builtins.readFile ../../config/nvim/plugins/auto-session.lua}
${builtins.readFile ../../config/nvim/plugins/comment.lua}
${builtins.readFile ../../config/nvim/plugins/cmp.lua}
${builtins.readFile ../../config/nvim/plugins/lsp.lua}
${builtins.readFile ../../config/nvim/plugins/nvim-tree.lua}
${builtins.readFile ../../config/nvim/plugins/telescope.lua}
${builtins.readFile ../../config/nvim/plugins/todo-comments.lua}
${builtins.readFile ../../config/nvim/plugins/treesitter.lua}
require("ibl").setup()
require("bufferline").setup{}
require("lualine").setup({
icons_enabled = true,
theme = 'dracula',
})
'';
}; };
kitty = { kitty = {
enable = true; enable = true;
package = pkgs.kitty; package = pkgs.kitty;
font.name = "JetBrainsMono Nerd Font";
font.size = 16;
settings = { settings = {
scrollback_lines = 2000; scrollback_lines = 2000;
wheel_scroll_min_lines = 1; wheel_scroll_min_lines = 1;
window_padding_width = 4; window_padding_width = 4;
confirm_os_window_close = 0; confirm_os_window_close = 0;
background_opacity = "0.9";
}; };
extraConfig = '' extraConfig = ''
foreground #${palette.base05}
background #${palette.base00}
color0 #${palette.base03}
color1 #${palette.base08}
color2 #${palette.base0B}
color3 #${palette.base09}
color4 #${palette.base0D}
color5 #${palette.base0E}
color6 #${palette.base0C}
color7 #${palette.base06}
color8 #${palette.base04}
color9 #${palette.base08}
color10 #${palette.base0B}
color11 #${palette.base0A}
color12 #${palette.base0C}
color13 #${palette.base0E}
color14 #${palette.base0C}
color15 #${palette.base07}
color16 #${palette.base00}
color17 #${palette.base0F}
color18 #${palette.base0B}
color19 #${palette.base09}
color20 #${palette.base0D}
color21 #${palette.base0E}
color22 #${palette.base0C}
color23 #${palette.base06}
cursor #${palette.base07}
cursor_text_color #${palette.base00}
selection_foreground #${palette.base01}
selection_background #${palette.base0D}
url_color #${palette.base0C}
active_border_color #${palette.base04}
inactive_border_color #${palette.base00}
bell_border_color #${palette.base03}
tab_bar_style fade tab_bar_style fade
tab_fade 1 tab_fade 1
active_tab_foreground #${palette.base04}
active_tab_background #${palette.base00}
active_tab_font_style bold active_tab_font_style bold
inactive_tab_foreground #${palette.base07}
inactive_tab_background #${palette.base08}
inactive_tab_font_style bold inactive_tab_font_style bold
tab_bar_background #${palette.base00}
'';
};
starship = {
enable = true;
package = pkgs.starship;
};
wofi = {
enable = true;
settings = {
allow_images = true;
prompt = "Run Programs...";
width = "35%";
hide_scroll = true;
term = "kitty";
show = "drun";
};
style = ''
* {
font-family: JetBrainsMono Nerd Font Mono,monospace;
font-weight: bold;
}
#window {
border-radius: 25px;
border: 2px solid #${palette.base08};
background: #${palette.base00};
}
#input {
border-radius: 10px;
border: 2px solid #${palette.base0B};
margin: 20px;
padding: 15px 25px;
background: #${palette.base00};
color: #${palette.base05};
}
#inner-box {
border: none;
background-color: transparent;
}
#outer-box {
border: none;
font-weight: bold;
font-size: 14px;
}
#text {
border: none;
}
#entry {
margin: 10px 80px;
padding: 20px 20px;
border-radius: 10px;
border: none;
}
#entry:focus {
border: none;
}
#entry:hover {
border: none;
}
#entry:selected {
background-color: #${palette.base0F};
color: #${palette.base00};
}
''; '';
}; };
bash = { bash = {
@ -391,23 +178,23 @@ in
#fi #fi
''; '';
initExtra = '' initExtra = ''
neofetch fastfetch
if [ -f $HOME/.bashrc-personal ]; then if [ -f $HOME/.bashrc-personal ]; then
source $HOME/.bashrc-personal source $HOME/.bashrc-personal
fi fi
''; '';
shellAliases = { shellAliases = {
sv = "sudo nvim"; sv = "sudo nvim";
flake-rebuild = "nh os switch --hostname ${host} /home/${username}/zaneyos"; fr = "nh os switch --hostname ${host} /home/${username}/zaneyos";
flake-update = "nh os switch --hostname ${host} --update /home/${username}/zaneyos"; fu = "nh os switch --hostname ${host} --update /home/${username}/zaneyos";
gcCleanup = "nix-collect-garbage --delete-old && sudo nix-collect-garbage -d && sudo /run/current-system/bin/switch-to-configuration boot"; zu = "sh <(curl -L https://gitlab.com/Zaney/zaneyos/-/raw/main/install-zaneyos.sh)";
ncg = "nix-collect-garbage --delete-old && sudo nix-collect-garbage -d && sudo /run/current-system/bin/switch-to-configuration boot";
v = "nvim"; v = "nvim";
ls = "lsd"; cat = "bat";
ll = "lsd -l"; ls = "eza --icons";
la = "lsd -a"; ll = "eza -lh --icons --grid --group-directories-first";
lal = "lsd -al"; la = "eza -lah --icons --grid --group-directories-first";
".." = "cd .."; ".." = "cd ..";
neofetch="neofetch --ascii ~/.config/ascii-neofetch";
}; };
}; };
home-manager.enable = true; home-manager.enable = true;
@ -427,6 +214,18 @@ in
blur_size = 8; blur_size = 8;
} }
]; ];
image = [
{
path = "/home/${username}/.config/face.jpg";
size = 150;
border_size = 4;
border_color = "rgb(0C96F9)";
rounding = -1; # Negative means circle
position = "0, 200";
halign = "center";
valign = "center";
}
];
input-field = [ input-field = [
{ {
size = "200, 50"; size = "200, 50";
@ -434,9 +233,9 @@ in
monitor = ""; monitor = "";
dots_center = true; dots_center = true;
fade_on_empty = false; fade_on_empty = false;
font_color = "rgb(202, 211, 245)"; font_color = "rgb(CFE6F4)";
inner_color = "rgb(91, 96, 120)"; inner_color = "rgb(657DC2)";
outer_color = "rgb(24, 25, 38)"; outer_color = "rgb(0D0E15)";
outline_thickness = 5; outline_thickness = 5;
placeholder_text = "Password..."; placeholder_text = "Password...";
shadow_passes = 2; shadow_passes = 2;

View File

@ -1,8 +1,6 @@
{ {
pkgs, pkgs,
config,
username, username,
host,
... ...
}: }:
@ -24,7 +22,8 @@ in
]; ];
shell = pkgs.bash; shell = pkgs.bash;
ignoreShellProgramCheck = true; ignoreShellProgramCheck = true;
packages = with pkgs; [ ]; packages = with pkgs; [
];
}; };
# "newuser" = { # "newuser" = {
# homeMode = "755"; # homeMode = "755";

View File

@ -1,20 +1,15 @@
{ {
# Git Configuration ( For Pulling Software Repos ) # Git Configuration ( For Pulling Software Repos )
gitUsername = "John Smith"; gitUsername = "Tyler Kelley";
gitEmail = "example@gmail.com"; gitEmail = "tylerzanekelley@gmail.com";
# Base16 Theme
theme = "dracula";
# Hyprland Settings # Hyprland Settings
borderAnim = true; # Enable / Disable Hyprland Border Animation
extraMonitorSettings = ""; extraMonitorSettings = "";
# Waybar Settings # Waybar Settings
clock24h = false; clock24h = false;
waybarAnimations = false;
# Program Options # Program Options
browser = "firefox"; # Set Default Browser (google-chrome-stable for google-chrome) browser = "brave"; # Set Default Browser (google-chrome-stable for google-chrome)
terminal = "kitty"; # Set Default System Terminal terminal = "kitty"; # Set Default System Terminal
} }

View File

@ -1,334 +0,0 @@
{
config,
pkgs,
host,
inputs,
username,
options,
...
}:
{
imports = [
./hardware.nix
./users.nix
../../modules/amd-drivers.nix
../../modules/nvidia-drivers.nix
../../modules/nvidia-prime-drivers.nix
../../modules/intel-drivers.nix
../../modules/vm-guest-services.nix
../../modules/local-hardware-clock.nix
];
# Kernel
boot.kernelPackages = pkgs.linuxPackages;
# boot.kernelPackages = pkgs.linuxPackages_zen;
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.kernel.sysctl = {
"vm.max_map_count" = 2147483642;
};
boot.tmp.useTmpfs = false;
boot.tmp.tmpfsSize = "30%";
boot.binfmt.registrations.appimage = {
wrapInterpreterInShell = false;
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
recognitionType = "magic";
offset = 0;
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
magicOrExtension = ''\x7fELF....AI\x02'';
};
# This is for OBS Virtual Cam Support - v4l2loopback setup
boot.kernelModules = [ "v4l2loopback" ];
boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
networking.networkmanager.enable = true;
networking.hostName = "${host}";
networking.timeServers = options.networking.timeServers.default ++ [ "pool.ntp.org" ];
# Set your time zone.
time.timeZone = "America/Chicago";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
programs = {
hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
xwayland.enable = true;
};
firefox.enable = true;
dconf.enable = true;
seahorse.enable = true;
fuse.userAllowOther = true;
mtr.enable = true;
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
virt-manager.enable = true;
steam = {
enable = true;
gamescopeSession.enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
};
thunar = {
enable = true;
plugins = with pkgs.xfce; [ thunar-archive-plugin thunar-volman ];
};
};
nixpkgs.config.allowUnfree = true;
users = {
mutableUsers = true;
};
environment.systemPackages =
let
sugar = pkgs.callPackage ../../pkgs/sddm-sugar-dark.nix { };
tokyo-night = pkgs.libsForQt5.callPackage ../../pkgs/sddm-tokyo-night.nix { };
in
with pkgs;
[
vim
wget
handbrake
killall
git
cmatrix
lolcat
neofetch
htop
libvirt
lxqt.lxqt-policykit
mangohud
lm_sensors
unzip
unrar
libnotify
eza
v4l-utils
ydotool
wl-clipboard
lm_sensors
pciutils
ffmpeg
socat
cowsay
ripgrep
lsd
lshw
pkg-config
meson
gnumake
ninja
symbola
noto-fonts-color-emoji
material-icons
brightnessctl
virt-viewer
swappy
appimage-run
networkmanagerapplet
yad
playerctl
nh
nixfmt-rfc-style
discord
libvirt
swww
grim
slurp
gnome.file-roller
swaynotificationcenter
imv
transmission-gtk
distrobox
mpv
gimp
obs-studio
rustup
audacity
pavucontrol
tree
protonup-qt
font-awesome
spotify
neovide
(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
sugar.sddm-sugar-dark # Name: sugar-dark
tokyo-night # Name: tokyo-night-sddm
pkgs.libsForQt5.qt5.qtgraphicaleffects
];
environment.variables = {
ZANEYOS_VERSION = "2.1";
ZANEYOS = "true";
};
# Services to start
services = {
xserver = {
enable = true;
displayManager.sddm = {
enable = true;
autoNumlock = true;
wayland.enable = true;
theme = "sugar-dark";
};
desktopManager.cinnamon.enable = false;
xkb = {
layout = "us";
variant = "";
};
};
smartd = {
enable = true;
autodetect = true;
};
libinput.enable = true;
openssh.enable = true;
flatpak.enable = false;
printing.enable = true;
gnome.gnome-keyring.enable = true;
avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
ipp-usb.enable = true;
syncthing = {
enable = false;
user = "${username}";
dataDir = "/home/${username}";
configDir = "/home/${username}/.config/syncthing";
};
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
rpcbind.enable = true;
nfs.server.enable = true;
};
systemd.services.flatpak-repo = {
wantedBy = [ "multi-user.target" ];
path = [ pkgs.flatpak ];
script = ''
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
'';
};
hardware.sane = {
enable = true;
extraBackends = [ pkgs.sane-airscan ];
disabledDefaultBackends = [ "escl" ];
};
hardware.logitech.wireless.enable = true;
hardware.logitech.wireless.enableGraphical = true;
# Enable sound with pipewire.
sound.enable = true;
hardware.pulseaudio.enable = false;
# Security / Polkit
security.rtkit.enable = true;
security.polkit.enable = true;
security.polkit.extraConfig = ''
polkit.addRule(function(action, subject) {
if (
subject.isInGroup("users")
&& (
action.id == "org.freedesktop.login1.reboot" ||
action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
action.id == "org.freedesktop.login1.power-off" ||
action.id == "org.freedesktop.login1.power-off-multiple-sessions"
)
)
{
return polkit.Result.YES;
}
})
'';
# Optimization settings and garbage collection automation
nix = {
settings = {
auto-optimise-store = true;
experimental-features = [
"nix-command"
"flakes"
];
substituters = [ "https://hyprland.cachix.org" ];
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
};
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
};
# Virtualization / Containers
virtualisation.libvirtd.enable = true;
virtualisation.podman = {
enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enabled = true;
};
# OpenGL
hardware.opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
};
# Extra Module Options
drivers.amdgpu.enable = true;
drivers.nvidia.enable = false;
drivers.nvidia-prime = {
enable = false;
intelBusID = "";
nvidiaBusID = "";
};
drivers.intel.enable = false;
vm.guest-services.enable = false;
local.hardware-clock.enable = false;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# 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. Its 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.11"; # Did you read the comment?
}

View File

@ -1,44 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, username, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "nvme" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/9e36b8f0-e272-4e69-99ad-dba17949887f";
fsType = "ext4";
};
fileSystems."/home/${username}/Documents" =
{ device = "/dev/disk/by-uuid/5605f7ab-73df-4234-a8ed-50c1eae69ffa";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/7CBF-413D";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp7s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp0s20u10.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@ -1,484 +0,0 @@
{
config,
pkgs,
inputs,
username,
host,
gtkThemeFromScheme,
...
}:
let
palette = config.colorScheme.palette;
inherit (import ./variables.nix)
gitUsername
gitEmail
theme
;
in
{
# Home Manager Settings
home.username = "${username}";
home.homeDirectory = "/home/${username}";
home.stateVersion = "23.11";
# Set The Colorscheme
colorScheme = inputs.nix-colors.colorSchemes."${theme}";
# Import Program Configurations
imports = [
inputs.nix-colors.homeManagerModules.default
inputs.hyprland.homeManagerModules.default
../../config/hyprland.nix
../../config/swaync.nix
../../config/waybar.nix
../../config/wlogout.nix
];
# Define Settings For Xresources
xresources.properties = {
"Xcursor.size" = 24;
};
# Place Files Inside Home Directory
home.file."Pictures/Wallpapers" = {
source = ../../config/wallpapers;
recursive = true;
};
home.file.".config/wlogout/icons" = {
source = ../../config/wlogout;
recursive = true;
};
home.file.".local/share/fonts" = {
source = ../../config/fonts;
recursive = true;
};
home.file.".config/starship.toml".source = ../../config/starship.toml;
home.file.".config/ascii-neofetch".source = ../../config/ascii-neofetch;
home.file.".base16-themes".source = ../../config/base16-themes;
home.file.".emoji".source = ../../config/emoji;
home.file.".face.icon".source = ../../config/face.jpg;
home.file.".config/face.jpg".source = ../../config/face.jpg;
home.file.".config/neofetch/config.conf".text = ''
print_info() {
prin "$(color 6) ZaneyOS $ZANEYOS_VERSION"
info underline
info "$(color 7) VER" kernel
info "$(color 2) UP " uptime
info "$(color 4) PKG" packages
info "$(color 6) DE " de
info "$(color 5) TER" term
info "$(color 3) CPU" cpu
info "$(color 7) GPU" gpu
info "$(color 5) MEM" memory
prin " "
prin "$(color 1) $(color 2) $(color 3) $(color 4) $(color 5) $(color 6) $(color 7) $(color 8)"
}
distro_shorthand="on"
memory_unit="gib"
cpu_temp="C"
separator=" $(color 4)>"
stdout="off"
'';
home.file.".config/swappy/config".text = ''
[Default]
save_dir=/home/${username}/Pictures/Screenshots
save_filename_format=swappy-%Y%m%d-%H%M%S.png
show_panel=false
line_size=5
text_size=20
text_font=Ubuntu
paint_mode=brush
early_exit=true
fill_shape=false
'';
# Install & Configure Git
programs.git = {
enable = true;
userName = "${gitUsername}";
userEmail = "${gitEmail}";
};
# Create XDG Dirs
xdg = {
userDirs = {
enable = true;
createDirectories = true;
};
};
dconf.settings = {
"org/virt-manager/virt-manager/connections" = {
autoconnect = [ "qemu:///system" ];
uris = [ "qemu:///system" ];
};
};
# Configure Cursor Theme
home.pointerCursor = {
gtk.enable = true;
x11.enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Ice";
size = 24;
};
# Theme GTK
gtk = {
enable = true;
font = {
name = "Ubuntu";
size = 12;
package = pkgs.ubuntu_font_family;
};
theme = {
name = "${config.colorScheme.slug}";
package = gtkThemeFromScheme { scheme = config.colorScheme; };
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
gtk3.extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
gtk4.extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
};
# Theme QT -> GTK
qt = {
enable = true;
platformTheme = "gtk";
style = {
name = "adwaita-dark";
package = pkgs.adwaita-qt;
};
};
# Scripts
home.packages = [
(import ../../scripts/emopicker9000.nix { inherit pkgs; })
(import ../../scripts/task-waybar.nix { inherit pkgs; })
(import ../../scripts/squirtle.nix { inherit pkgs; })
(import ../../scripts/themechange.nix {
inherit pkgs;
inherit host;
inherit username;
})
(import ../../scripts/theme-selector.nix { inherit pkgs; })
(import ../../scripts/nvidia-offload.nix { inherit pkgs; })
(import ../../scripts/wallsetter.nix {
inherit pkgs;
inherit username;
})
(import ../../scripts/web-search.nix { inherit pkgs; })
(import ../../scripts/rofi-launcher.nix { inherit pkgs; })
(import ../../scripts/screenshootin.nix { inherit pkgs; })
(import ../../scripts/list-hypr-bindings.nix {
inherit pkgs;
inherit host;
})
];
services = {
hypridle = {
settings = {
general = {
after_sleep_cmd = "hyprctl dispatch dpms on";
ignore_dbus_inhibit = false;
lock_cmd = "hyprlock";
};
listener = [
{
timeout = 900;
on-timeout = "hyprlock";
}
{
timeout = 1200;
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
}
];
};
};
};
programs = {
gh.enable = true;
neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
withNodeJs = true;
extraPackages = with pkgs; [
lua-language-server
gopls
xclip
wl-clipboard
luajitPackages.lua-lsp
nil
rust-analyzer
nodePackages.bash-language-server
yaml-language-server
pyright
marksman
];
plugins = with pkgs.vimPlugins; [
alpha-nvim
auto-session
bufferline-nvim
dressing-nvim
indent-blankline-nvim
nvim-treesitter.withAllGrammars
lualine-nvim
nvim-autopairs
nvim-web-devicons
nvim-cmp
nvim-surround
nvim-lspconfig
cmp-nvim-lsp
cmp-buffer
luasnip
cmp_luasnip
friendly-snippets
lspkind-nvim
comment-nvim
nvim-ts-context-commentstring
{
plugin = dracula-nvim;
config = "colorscheme dracula";
}
plenary-nvim
neodev-nvim
luasnip
telescope-nvim
todo-comments-nvim
nvim-tree-lua
telescope-fzf-native-nvim
vim-tmux-navigator
];
extraConfig = ''
set noemoji
'';
extraLuaConfig = ''
${builtins.readFile ../../config/nvim/options.lua}
${builtins.readFile ../../config/nvim/keymaps.lua}
${builtins.readFile ../../config/nvim/plugins/alpha.lua}
${builtins.readFile ../../config/nvim/plugins/autopairs.lua}
${builtins.readFile ../../config/nvim/plugins/auto-session.lua}
${builtins.readFile ../../config/nvim/plugins/comment.lua}
${builtins.readFile ../../config/nvim/plugins/cmp.lua}
${builtins.readFile ../../config/nvim/plugins/lsp.lua}
${builtins.readFile ../../config/nvim/plugins/nvim-tree.lua}
${builtins.readFile ../../config/nvim/plugins/telescope.lua}
${builtins.readFile ../../config/nvim/plugins/todo-comments.lua}
${builtins.readFile ../../config/nvim/plugins/treesitter.lua}
require("ibl").setup()
require("bufferline").setup{}
require("lualine").setup({
icons_enabled = true,
theme = 'dracula',
})
'';
};
kitty = {
enable = true;
package = pkgs.kitty;
font.name = "JetBrainsMono Nerd Font";
font.size = 16;
settings = {
scrollback_lines = 2000;
wheel_scroll_min_lines = 1;
window_padding_width = 4;
confirm_os_window_close = 0;
background_opacity = "0.9";
};
extraConfig = ''
foreground #${palette.base05}
background #${palette.base00}
color0 #${palette.base03}
color1 #${palette.base08}
color2 #${palette.base0B}
color3 #${palette.base09}
color4 #${palette.base0D}
color5 #${palette.base0E}
color6 #${palette.base0C}
color7 #${palette.base06}
color8 #${palette.base04}
color9 #${palette.base08}
color10 #${palette.base0B}
color11 #${palette.base0A}
color12 #${palette.base0C}
color13 #${palette.base0E}
color14 #${palette.base0C}
color15 #${palette.base07}
color16 #${palette.base00}
color17 #${palette.base0F}
color18 #${palette.base0B}
color19 #${palette.base09}
color20 #${palette.base0D}
color21 #${palette.base0E}
color22 #${palette.base0C}
color23 #${palette.base06}
cursor #${palette.base07}
cursor_text_color #${palette.base00}
selection_foreground #${palette.base01}
selection_background #${palette.base0D}
url_color #${palette.base0C}
active_border_color #${palette.base04}
inactive_border_color #${palette.base00}
bell_border_color #${palette.base03}
tab_bar_style fade
tab_fade 1
active_tab_foreground #${palette.base04}
active_tab_background #${palette.base00}
active_tab_font_style bold
inactive_tab_foreground #${palette.base07}
inactive_tab_background #${palette.base08}
inactive_tab_font_style bold
tab_bar_background #${palette.base00}
'';
};
starship = {
enable = true;
package = pkgs.starship;
};
wofi = {
enable = true;
settings = {
allow_images = true;
prompt = "Run Programs...";
width = "35%";
hide_scroll = true;
term = "kitty";
show = "drun";
};
style = ''
* {
font-family: JetBrainsMono Nerd Font Mono,monospace;
font-weight: bold;
}
#window {
border-radius: 25px;
border: 2px solid #${palette.base08};
background: #${palette.base00};
}
#input {
border-radius: 10px;
border: 2px solid #${palette.base0B};
margin: 20px;
padding: 15px 25px;
background: #${palette.base00};
color: #${palette.base05};
}
#inner-box {
border: none;
background-color: transparent;
}
#outer-box {
border: none;
font-weight: bold;
font-size: 14px;
}
#text {
border: none;
}
#entry {
margin: 10px 80px;
padding: 20px 20px;
border-radius: 10px;
border: none;
}
#entry:focus {
border: none;
}
#entry:hover {
border: none;
}
#entry:selected {
background-color: #${palette.base0F};
color: #${palette.base00};
}
'';
};
bash = {
enable = true;
enableCompletion = true;
profileExtra = ''
#if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" = 1 ]; then
# exec Hyprland
#fi
'';
initExtra = ''
neofetch
if [ -f $HOME/.bashrc-personal ]; then
source $HOME/.bashrc-personal
fi
'';
shellAliases = {
sv = "sudo nvim";
flake-rebuild = "nh os switch --hostname ${host} /home/${username}/zaneyos";
flake-update = "nh os switch --hostname ${host} --update /home/${username}/zaneyos";
gcCleanup = "nix-collect-garbage --delete-old && sudo nix-collect-garbage -d && sudo /run/current-system/bin/switch-to-configuration boot";
v = "nvim";
ls = "lsd";
ll = "lsd -l";
la = "lsd -a";
lal = "lsd -al";
".." = "cd ..";
neofetch="neofetch --ascii ~/.config/ascii-neofetch";
};
};
home-manager.enable = true;
hyprlock = {
enable = true;
settings = {
general = {
disable_loading_bar = true;
grace = 10;
hide_cursor = true;
no_fade_in = false;
};
background = [
{
path = "/home/${username}/Pictures/Wallpapers/zaney-wallpaper.jpg";
blur_passes = 3;
blur_size = 8;
}
];
image = [
{
path = "/home/${username}/.config/face.jpg";
size = 150;
border_size = 4;
border_color = "rgb(${palette.base08})";
rounding = -1; # Negative means circle
position = "0, 200";
halign = "center";
valign = "center";
}
];
input-field = [
{
size = "200, 50";
position = "0, -80";
monitor = "";
dots_center = true;
fade_on_empty = false;
font_color = "rgb(${palette.base05})";
inner_color = "rgb(${palette.base01})";
outer_color = "rgb(${palette.base00})";
outline_thickness = 5;
placeholder_text = "Password...";
shadow_passes = 2;
}
];
};
};
};
}

View File

@ -1,43 +0,0 @@
{
pkgs,
config,
username,
host,
...
}:
let
inherit (import ./variables.nix) gitUsername;
in
{
users.users = {
"${username}" = {
homeMode = "755";
isNormalUser = true;
description = "${gitUsername}";
extraGroups = [
"networkmanager"
"wheel"
"libvirtd"
"scanner"
"lp"
];
shell = pkgs.bash;
ignoreShellProgramCheck = true;
packages = with pkgs; [
obs-studio
zeroad
blender-hip
];
};
# "newuser" = {
# homeMode = "755";
# isNormalUser = true;
# description = "New user account";
# extraGroups = [ "networkmanager" "wheel" "libvirtd" ];
# shell = pkgs.bash;
# ignoreShellProgramCheck = true;
# packages = with pkgs; [];
# };
};
}

View File

@ -1,20 +0,0 @@
{
# Git Configuration ( For Pulling Software Repos )
gitUsername = "Tyler Kelley";
gitEmail = "tylerzanekelley@gmail.com";
# Base16 Theme
theme = "tokyo-night-storm";
# Hyprland Settings
borderAnim = true; # Enable / Disable Hyprland Border Animation
extraMonitorSettings = "";
# Waybar Settings
clock24h = false;
waybarAnimations = true;
# Program Options
browser = "firefox"; # Set Default Browser (google-chrome-stable for google-chrome)
terminal = "kitty"; # Set Default System Terminal
}

View File

@ -77,11 +77,9 @@ sudo nixos-generate-config --show-hardware-config > ./hosts/$hostName/hardware.n
echo "-----" echo "-----"
echo "Setting Required Nix Settings & Committing Changes" echo "Setting Required Nix Settings Then Going To Install"
NIX_CONFIG="experimental-features = nix-command flakes" NIX_CONFIG="experimental-features = nix-command flakes"
echo "-----" echo "-----"
echo "ZaneyOS Has Been Setup" sudo nixos-rebuild switch --flake ~/zaneyos/#${hostName}
echo "Please Edit Your Hosts Files"
echo "Then Run: sudo nixos-rebuild switch --flake .#${hostName}"

View File

@ -16,11 +16,5 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
systemd.tmpfiles.rules = [ "L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}" ]; systemd.tmpfiles.rules = [ "L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}" ];
services.xserver.videoDrivers = [ "amdgpu" ]; services.xserver.videoDrivers = [ "amdgpu" ];
# OpenGL
hardware.opengl = {
## amdvlk: an open-source Vulkan driver from AMD
extraPackages = [ pkgs.amdvlk ];
extraPackages32 = [ pkgs.driversi686Linux.amdvlk ];
};
}; };
} }

View File

@ -1,18 +0,0 @@
{ stdenv, fetchFromGitHub }:
{
sddm-sugar-dark = stdenv.mkDerivation rec {
pname = "sddm-sugar-dark-theme";
version = "1.2";
dontBuild = true;
installPhase = ''
mkdir -p $out/share/sddm/themes
cp -aR $src $out/share/sddm/themes/sugar-dark
'';
src = fetchFromGitHub {
owner = "MarianArlt";
repo = "sddm-sugar-dark";
rev = "v${version}";
sha256 = "0gx0am7vq1ywaw2rm1p015x90b75ccqxnb1sz3wy8yjl27v82yhb";
};
};
}

View File

@ -1,34 +0,0 @@
{
lib,
qtbase,
qtsvg,
qtgraphicaleffects,
qtquickcontrols2,
wrapQtAppsHook,
stdenvNoCC,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation rec {
pname = "tokyo-night-sddm";
version = "1..0";
dontBuild = true;
src = fetchFromGitHub {
owner = "rototrash";
repo = "tokyo-night-sddm";
rev = "320c8e74ade1e94f640708eee0b9a75a395697c6";
sha256 = "sha256-JRVVzyefqR2L3UrEK2iWyhUKfPMUNUnfRZmwdz05wL0=";
};
nativeBuildInputs = [ wrapQtAppsHook ];
propagatedUserEnvPkgs = [
qtbase
qtsvg
qtgraphicaleffects
qtquickcontrols2
];
installPhase = ''
mkdir -p $out/share/sddm/themes
cp -aR $src $out/share/sddm/themes/tokyo-night-sddm
'';
}

View File

@ -2,7 +2,7 @@
pkgs.writeShellScriptBin "emopicker9000" '' pkgs.writeShellScriptBin "emopicker9000" ''
# Get user selection via wofi from emoji file. # Get user selection via wofi from emoji file.
chosen=$(cat $HOME/.emoji | ${pkgs.wofi}/bin/wofi -dmenu | awk '{print $1}') chosen=$(cat $HOME/.config/.emoji | ${pkgs.rofi-wayland}/bin/rofi -i -dmenu -config ~/.config/rofi/config-emoji.rasi | awk '{print $1}')
# Exit if none chosen. # Exit if none chosen.
[ -z "$chosen" ] && exit [ -z "$chosen" ] && exit

View File

@ -17,7 +17,8 @@ pkgs.writeShellScriptBin "list-hypr-bindings" ''
--timeout-indicator=right \ --timeout-indicator=right \
" = Windows/Super/CAPS LOCK" "Modifier Key, used for keybindings" "Doesn't really execute anything by itself." \ " = Windows/Super/CAPS LOCK" "Modifier Key, used for keybindings" "Doesn't really execute anything by itself." \
" + ENTER" "Terminal" "${terminal}" \ " + ENTER" "Terminal" "${terminal}" \
" + SHIFT + ENTER" "Wofi App Launcher" "wofi" \ " + SHIFT + ENTER" "App Launcher" "rofi" \
" + ALT + W" "Change Wallpaper" "wallsetter" \
" + Q" "Kill Focused Window" "killactive" \ " + Q" "Kill Focused Window" "killactive" \
" + SHIFT + W" "Search Websites Like Nix Packages" "web-search" \ " + SHIFT + W" "Search Websites Like Nix Packages" "web-search" \
" + SHIFT + N" "Reload SwayNC Styling" "swaync-client -rs" \ " + SHIFT + N" "Reload SwayNC Styling" "swaync-client -rs" \

View File

@ -1,17 +0,0 @@
{ pkgs }:
pkgs.writeShellScriptBin "theme-selector" ''
# Get user selection for new theme from base16-themes file
chosen=$(cat $HOME/.base16-themes | ${pkgs.wofi}/bin/wofi -dmenu)
# Exit if none chosen.
[ -z "$chosen" ] && exit
if [ -n "$1" ]; then
themechange "$chosen"
else
${pkgs.libnotify}/bin/notify-send "$chosen is building please wait" &
themechange "$chosen"
${pkgs.libnotify}/bin/notify-send "Theme: $chosen has been applied." &
fi
''

View File

@ -1,16 +0,0 @@
{
pkgs,
host,
username,
...
}:
pkgs.writeShellScriptBin "themechange" ''
if [[ ! $@ ]];then
echo "No Theme Given"
else
replacement="$1"
sed -i "/^\s*theme[[:space:]]*=[[:space:]]*\"/s/\"\(.*\)\"/\"$replacement\"/" /home/${username}/zaneyos/hosts/${host}/variables.nix
kitty -e pkexec nixos-rebuild switch --flake /home/${username}/zaneyos
fi
''