created streamlined version of rednix

main
The_miro 2024-10-18 15:47:06 +02:00
parent c4ae4235c8
commit 54f3688a13
23 changed files with 1280 additions and 0 deletions

11
Modules/HomeManager.nix Normal file
View File

@ -0,0 +1,11 @@
{ config, lib, pkgs, ... }:
let
home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/master.tar.gz";
in
{
imports = [
(import "${home-manager}/nixos")
];
home-manager.backupFileExtension = "old";
home-manager.sharedModules = [ ./sharedHome.nix ];
}

30
Modules/greetd.nix Normal file
View File

@ -0,0 +1,30 @@
{ pkgs, ... }:
let
tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet";
in
{
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${tuigreet} --time --remember --cmd Hyprland";
user = "greeter";
};
};
};
# this is a life saver.
# literally no documentation about this anywhere.
# might be good to write about this...
# https://www.reddit.com/r/NixOS/comments/u0cdpi/tuigreet_with_xmonad_how/
systemd.services.greetd.serviceConfig = {
Type = "idle";
StandardInput = "tty";
StandardOutput = "tty";
StandardError = "journal"; # Without this errors will spam on screen
# Without these bootlogs will spam on screen
TTYReset = true;
TTYVHangup = true;
TTYVTDisallocate = true;
};
}

View File

@ -0,0 +1,362 @@
{ config, pkgs, ... }:
{
wayland.windowManager.hyprland = {
enable = true;
extraConfig = ''
# #######################################################################################
# AUTOGENERATED HYPR CONFIG.
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################
#autogenerated = 0 # remove this line to remove the warning
# This is an example Hyprland config file.
# Refer to the wiki for more information.
# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/
# Please note not all available settings / options are set here.
# For a full list, see the wiki
# You can split this configuration into multiple files
# Create your files separately and then link them to this file like this:
# source = ~/.config/hypr/myColors.conf
################
### MONITORS ###
################
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,preferred,auto,auto
###################
### MY PROGRAMS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
# Set programs that you use
$terminal = kitty
$fileManager = kitty yazi
$menu = fuzzel
#################
### AUTOSTART ###
#################
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
# exec-once = $terminal
# exec-once = nm-applet &
# exec-once = waybar & hyprpaper & firefox
#############################
### ENVIRONMENT VARIABLES ###
#############################
# See https://wiki.hyprland.org/Configuring/Environment-variables/
env = XCURSOR_SIZE,40
env = HYPRCURSOR_SIZE,40
#####################
### LOOK AND FEEL ###
#####################
# Refer to https://wiki.hyprland.org/Configuring/Variables/
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
gaps_in = 5
gaps_out = 20
border_size = 4
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgb(E40046) rgb(fc0588) 40deg
col.inactive_border = rgb(5018dd)
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
rounding = 20
# Change transparency of focused and unfocused windows
active_opacity = 1
inactive_opacity = 0.8
drop_shadow = true
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = true
size = 3
passes = 3
vibrancy = 0.1696
}
}
# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
enabled = true
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
new_status = master
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
}
#############
### INPUT ###
#############
# https://wiki.hyprland.org/Configuring/Variables/#input
input {
kb_layout = de
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = false
}
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = true
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
####################
### KEYBINDINGSS ###
####################
# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, T, exec, $terminal
bind = $mainMod, Z, exec, $terminal btop
bind = $mainMod, K, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, F, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, H, exec, $menu
bind = $mainMod, D, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, L, exec, hyprctl dispatch exit 1
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
bindm = $mainMod SHIFT, mouse:272, resizewindow
# Move/rezie windows with Keyboard
#rofi keybind
bind = $mainMod, R, exec, wofi --show drun
bind = CTRL SHIFT, R, exec, wofi --show drun
#window location edit mode source: https://www.reddit.com/r/hyprland/comments/14jehzj/comment/jpl5c8f/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
#bind = $mainMod, A, submap, fastedit
#submap = fastedit
bind = $mainMod ALT, right, resizeactive, 10 0
bind = $mainMod ALT, left, resizeactive, -10 0
bind = $mainMod ALT, up, resizeactive, 0 -10
bind = $mainMod ALT, down, resizeactive, 0 10
bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, down, movewindow, d
#bind = , escape, submap, reset
#submap = reset
bind = $mainMod, ESC, exec, hyprctl kill
#flameshot
#monitor=eDP-1, preferred, 0x0, 1
#monitor=DP-1, preferred, 1920x0, 1
#
#windowrule=fakefullscreen, flameshot
#windowrule=float,flameshot
#windowrule=monitor 0,flameshot
#windowrule=move 0 0,flameshot
#windowrule=workspace 0,flameshot
#windowrule=stayfocused,flameshot
#screenshot capture
bind = , Print, exec, grim -g "$(slurp -d)" - | wl-copy
bind = $mainMod, P, exec, grim -g "$(slurp -d)" - | wl-copy
#audio controls
binde =, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%+
binde =, XF86AudioLowerVolume, exec, wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%-
bind =, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindle=, XF86MonBrightnessUp, exec, bri --up
bindle=, XF86MonBrightnessDown, exec, bri --down
bindl=, XF86AudioPlay, exec, playerctl play-pause
#exec-once = flameshot
#bind = $mainMod, Print, exec, flameshot gui
#bind = $mainMod, Print, exec, XDG_CURRENT_DESKTOP=hyprland flameshot gui -r | wl-copy
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule v1
windowrule = float, ^(rofi)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
#windowrulev2 = noborder, class:wofi
windowrulev2 = float, class:wofi
windowrulev2 = pin, class:wofi
windowrulev2 = center, class:wofi
windowrulev2 = stayfocused, class:wofi
windowrulev2 = nomaxsize, class:wofi
windowrulev2 = minsize 5 5, class:wofi
windowrulev2 = noshadow, class:wofi
windowrulev2 = opacity 1 0.8, class:kitty
windowrulev2 = opacity 0.8 0.3, initialTitle:Spotify
windowrulev2 = float, initialTitle:Spotify
#sefix
windowrulev2 = float, class:Spaceengineers
windowrulev2 = stayfocused, class:Spaceengineers
#rwfix
windowrulev2 = tile, class:RimWorldLinux
windowrulev2 = float, class:Drill.+
windowrulev2 = fakefullscreen, title:Drill.+
windowrule = fakefullscreen, class:steam_app_1217060
windowrule = fakefullscreen, title:Gunfire Reborn
windowrule = float, class:steam_app_1217060
windowrule = float, title:Gunfire Reborn
#windowrulev2 = fullscreen, class:steam_app_1217060
#windowrulev2 = fullscreen, title:Gunfire Reborn
#windowrulev2 = fakefullscreen, title:pico.+
exec-once=bash swww img /ast/bg.jpg ; swww restore
exec-once=bash waybar
exec-once=bash dunst
exec-once=bash nm-applet --indicator
'';
};
}

137
Modules/home/Starship.nix Normal file
View File

@ -0,0 +1,137 @@
{ config, pkgs, ... }:
{
programs.starship = {
enable = true;
# Configuration written to ~/.config/starship.toml
settings = {
add_newline = true;
format = "[](#f50505)$os$username[](bg:#E40046 fg:#f50505)$directory[](fg:#E40046 bg:#5018dd)$git_branch$git_status[](fg:#5018dd bg:#86BBD8)$c$elixir$elm$golang$gradle$haskell$java$julia$nodejs$nim$rust$scala[](fg:#86BBD8 bg:#06969A)$docker_context[](fg:#06969A bg:#5018dd)$time[ ](fg:#5018dd)";
# Disable the blank line at the start of the prompt
# You can also replace your username with a neat symbol like  or disable this
# and use the os module below
username = {
show_always = true;
style_user = "bg:#f50505";
style_root = "bg:#f50505";
format = "[$user ]($style)";
disabled = false;
};
#An alternative to the username module which displays a symbol that
# represents the current operating system
os = {
style = "bg:#f50505";
disabled = false; # Disabled by default
};
directory = {
style = "bg:#E40046";
format = "[ $path ]($style)";
truncation_length = 3;
truncation_symbol = "/";
};
# Here is how you can shorten some long paths by text replacement
# similar to mapped_locations in Oh My Posh:
directory.substitutions = {
"Documents" = "󰈙 ";
"Downloads" = " ";
"Music" = " ";
"Pictures" = " ";
};
# Keep in mind that the order matters. For example:
# "Important Documents" = " 󰈙 "
# will not be replaced, because "Documents" was already substituted before.
# So either put "Important Documents" before "Documents" or use the substituted version:
# "Important 󰈙 " = " 󰈙 "
c = {
symbol = " ";
style = "bg:#86BBD8";
format = "[ $symbol ($version) ]($style)";
};
docker_context = {
symbol = " ";
style = "bg:#06969A";
format = "[ $symbol $context ]($style)";
};
elixir = {
symbol = " ";
style = "bg:#86BBD8";
format = "[ $symbol ($version) ]($style)";
};
elm = {
symbol = " ";
style = "bg:#86BBD8";
format = "[ $symbol ($version) ]($style)";
};
git_branch = {
symbol = "";
style = "bg:#5018dd";
format = "[ $symbol $branch ]($style)";
};
git_status = {
style = "bg:#5018dd";
format = "[$all_status$ahead_behind ]($style)";
};
golang = {
symbol = " ";
style = "bg:#86BBD8";
format = "[ $symbol ($version) ]($style)";
};
gradle = {
style = "bg:#86BBD8";
format = "[ $symbol ($version) ]($style)";
};
haskell = {
symbol = " ";
style = "bg:#86BBD8";
format = "[ $symbol ($version) ]($style)";
};
java = {
symbol = " ";
style = "bg:#86BBD8";
format = "[ $symbol ($version) ]($style)";
};
julia = {
symbol = " ";
style = "bg:#86BBD8";
format = "[ $symbol ($version) ]($style)";
};
nodejs = {
symbol = "";
style = "bg:#86BBD8";
format = "[ $symbol ($version) ]($style)";
};
nim = {
symbol = "󰆥 ";
style = "bg:#86BBD8";
format = "[ $symbol ($version) ]($style)";
};
rust = {
symbol = "";
style = "bg:#86BBD8";
format = "[ $symbol ($version) ]($style)";
};
scala = {
symbol = " ";
style = "bg:#86BBD8";
format = "[ $symbol ($version) ]($style)";
};
time = {
disabled = false;
time_format = "%R"; # Hour:Minute Format
style = "bg:#5018dd";
format = "[ $time ]($style)";
};
};
};
}

25
Modules/home/bash.nix Normal file
View File

@ -0,0 +1,25 @@
{ config, pkgs, ... }:
{
#bash
programs.bash = {
enableCompletion = true;
enable = true;
bashrcExtra = "";
shellAliases = {
please = "sudo";
plz = "sudo";
ll = "ls -l -a";
update = "sudo nixos-rebuild switch -v";
".." = "cd ..";
cdroot = "cd /";
cdhome = "cd ~";
snano = "sudo nano";
cls = "clear";
icat = "kitten icat --align left ";
ic = "icat";
imgv = "icat";
redmatrix = "cmatrix -a -C red";
rmtx = "redmatrix";
};
};
}

View File

@ -0,0 +1,23 @@
{ config, lib, pkgs, ... }:
{
services.dunst.enable = true;
services.dunst.settings = {
global = {
width = 600;
height = 450;
offset = "30x50";
origin = "top-center";
transparency = 10;
frame_color = "#5018dd";
font = "Agave Nerd Font Mono 11";
corner_radius = 10;
};
urgency_normal = {
background = "#292929";
foreground = "#e40046";
timeout = 10;
};
};
}

26
Modules/home/kitty.nix Normal file
View File

@ -0,0 +1,26 @@
{ config, lib, pkgs, ... }:
{
programs.kitty.enable = true;
#programs.kitty.font.package = pkgs.nerdfonts;
programs.kitty = {
font = {
name = "Agave Nerd Font Mono";
size = 12;
};
settings = {
confirm_os_window_close = 0;
dynamic_background_opacity = true;
enable_audio_bell = true;
window_padding_width = 10;
background_opacity = "0.25";
background_blur = 0;
};
};
programs.kitty.shellIntegration.enableZshIntegration = true;
}

View File

@ -0,0 +1,136 @@
{ config, pkgs, ... }:
{
imports = [
./waybarTheme.nix
];
programs.waybar = {
enable = true;
settings = [{
layer = "top";
position = "top";
modules-center = [
"hyprland/workspaces"
"hyprland/window"
];
modules-left = [
"pulseaudio"
"cpu"
"memory"
"disk"
];
modules-right = [
"battery"
"network"
"tray"
"clock"
];
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = "@";
urgent = "!";
};
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
};
"clock" = {
format = ''{:L%H:%M}'';
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
};
"hyprland/window" = {
max-length = 22;
separate-outputs = false;
rewrite = {
"" = "None";
};
};
"memory" = {
interval = 5;
format = "{}%";
tooltip = true;
};
"cpu" = {
interval = 5;
format = "{usage:2}%";
tooltip = true;
};
"disk" = {
format = "{free}";
tooltip = true;
};
"network" = {
format-icons = [
"󰤯"
"󰤟"
"󰤢"
"󰤥"
"󰤨"
];
format-ethernet = " {bandwidthDownOctets}";
format-wifi = " {icon} {signalStrength}%";
format-disconnected = " 󰈂 no network";
tooltip = false;
};
"tray" = {
spacing = 12;
};
"pulseaudio" = {
format = "{icon} {volume}% {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = "{icon} {format_source}";
format-muted = "{format_source}";
format-source = "{volume}%";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [
""
""
""
];
};
on-click = "sleep 0.1 && pavucontrol";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = " ";
deactivated = " ";
};
tooltip = "true";
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄{capacity}%";
format-plugged = "󱘖{capacity}%";
format-icons = [
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
on-click = "";
tooltip = false;
};
}];
};
}

View File

@ -0,0 +1,67 @@
{ config, pkgs, ... }:{ programs.waybar.style = ''
* {
border: none;
font-family: Agave Nerd Font Mono, Arial, sans-serif;
font-size: 14pt;
background: transparent;
padding-top: 2px;
padding-bottom: 2px;
padding-right: 6px;
padding-left: 6px;
margin-top: 1px;
margin-bottom: 0px;
margin-right: 2px;
margin-left: 2px;
border-radius: 30px;
}
#workspaces button {
border: solid;
border-width: 3px;
background: #1a1a1a;
color: #5018dd;
}
#workspaces button.active {
border: solid;
border-width: 3px;
background: #1a1a1a;
color: #E40046;
}
#workspaces button.urgent {
border: solid;
border-width: 3px;
background: #E40046;
color: #1a1a1a;
}
#clock, #disk, #window, #battery, #cpu, #memory, #temperature, #backlight, #network, #pulseaudio, #custom-media, #tray, #mode, #idle_inhibitor {
border: solid;
border-width: 3px;
background: #1a1a1a;
color: #5018dd;
}
#idle_inhibitor.activated {
border: solid;
border-width: 3px;
background: #1a1a1a;
color: #E40046;
}
'';
}

73
Modules/home/wofi.nix Normal file
View File

@ -0,0 +1,73 @@
{ config, pkgs, ... }:
{
programs.wofi.enable = true;
programs.wofi.settings = {
location = "center";
normal_window = true;
allow_markup = true;
width = 700;
height= 400;
};
programs.wofi.style =
''
* {
font-family: JetBrains Mono, Agave Nerd Font Mono, Arial, sans-serif;
border-radius: 15px;
font-size: 18pt;
background-color: #1a1a1a;
padding-top: 1px;
padding-bottom: 1px;
padding-right: 6px;
padding-left: 6px;
margin-top: 2px;
margin-bottom: 2px;
margin-right: 2px;
margin-left: 2px;
}
window {
color: #E40046;
}
#input {
border: solid;
border-width: 4px;
color: #5018dd;
border-radius: 30px;
#padding-top: 15px;
margin-top: 15px;
padding-right: 15px;
padding-left: 15px;
margin-right: 15px;
margin-left: 15px;
}
#entry:selected {
border: solid;
border-width: 4px;
color: #E40046;
border-radius: 30px;
}
#inner-box {
}
#scroll{
margin-bottom: 15px;
padding-bottom: 15px;
}
'';
}

35
Modules/home/zshhome.nix Normal file
View File

@ -0,0 +1,35 @@
{ config, lib, pkgs, ... }:
{
#users.defaultUserShell = pkgs.zsh;
programs.zsh = {
enable = true;
enableCompletion = true;
syntaxHighlighting.enable = true;
#autosuggestions.enable = true;
shellAliases = {
please = "sudo";
plz = "sudo";
ll = "ls -l -a";
update = "sudo nixos-rebuild switch -v";
".." = "cd ..";
cdroot = "cd /";
cdhome = "cd ~";
snano = "sudo nano";
cls = "clear";
icat = "kitten icat --align left ";
ic = "icat";
imgv = "icat";
redmatrix = "cmatrix -a -C red";
rmtx = "redmatrix";
};
history = {
size = 10000;
path = "~/.zsh_history";
share = true;
save = 10000;
};
};
}

67
Modules/hyprland.nix Normal file
View File

@ -0,0 +1,67 @@
{ config, pkgs, ... }:
{
environment.systemPackages = [
pkgs.waybar
(pkgs.waybar.overrideAttrs (oldAttrs: {
mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];}))
pkgs.dunst
pkgs.libnotify
pkgs.playerctl
pkgs.swww
pkgs.kitty
pkgs.webcord
pkgs.rofi-wayland
#pkgs.hyprlock
pkgs.nwg-dock-hyprland
pkgs.hyprcursor
];
xdg.portal.enable = true;
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
#security.pam.services.hyprlock = {};
sound.enable = true;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
programs.hyprland = {
enable = true;
#nvidiaPatches = true;
xwayland.enable = true;
};
environment.sessionVariables = {
#If your cursor becomes invisible
WLR_NO_HARDWARE_CURSORS = "1";
#Hint electron apps to use wayland
NIXOS_OZONE_WL = "1";
};
#services.playerctld.enable = true;
hardware = {
#Opengl
opengl.enable = true;
#Most wayland compositors need this
nvidia.modesetting.enable = true;
};
}

86
Modules/nanoconf.nix Normal file
View File

@ -0,0 +1,86 @@
{ config, pkgs, ... }:
{
programs.nano.enable = true;
programs.nano.syntaxHighlight = true;
programs.nano.nanorc = ''
# Provides syntax highlighting for C# in nano
syntax "C#" "\.cs$"
comment "//"
# Statement Keywords
# Selection
color red "\<(if|else|switch|case)\>"
# Iteration
color red "\<(do|for|foreach|in|while)\>"
# Jumps
color red "\<(break|continue|default|goto|return|yield)\>"
# Exception Handling
color red "\<(throw|try|catch|finally)\>"
# Misc
color brightgreen "\<((un)?checked|fixed|lock)\>"
# Method Parameters
color brightblue "\<(params|ref|out)\>"
# Namespace Keywords
color cyan "\<(namespace|using|extern|alias)\>"
# Operator Keywords
color brightgreen "\<(as|await|is|nameof|sizeof|typeof|stackalloc)\>"
# Conversion Keywords
color cyan "\<(explicit|implicit|operator)\>"
# Access Keywords
color green "\<(base|this)\>"
# Query Keywords
color brightgreen "\<(from|where|select|group|into|orderby|join|let|on|equals|by|ascending|descending)\>"
# Contextual Keywords
color brightgreen "\<(add|async|dynamic|get|global|remove|set|value|when)\>"
# Modifiers
# Access
color cyan "\<(public|protected|internal|private)\>"
# Members
color cyan "\<(const|event|new|override|readonly|static|unsafe|virtual|volatile)\>"
# Classes
color cyan "\<(abstract|partial|sealed)\>"
# Labels
color brightblue "\<.*:"
# Types
# Primitives
color green "\<(bool|s?byte|char|decimal|double|float|u?int|u?long|u?short)\>"
# Reference types
color cyan "\<(class|struct|delegate|object|string)\>"
# Misc
color red "\<(void|var|enum)\>"
# Literals
color brightyellow "\<(true|false|null)\>"
icolor brightyellow "\<0x[0-9a-f]+\>"
color brightyellow "\<[0-9]+\>"
color brightyellow "\<0b[01]+\>"
icolor brightyellow "\<[0-9]*\.[0-9]+(e[0-9]+)?\>"
color red "\"([^\"\\]|\\.)*\""
color brightred "'.'"
# Preprocessor Directives
color brightblue "#(if|else|elif|endif|define|undef|warning|error|line|(end)?region|pragma)"
# Comments
color brightblue "//.*"
color brightblue start="/\*" end="\*/"
# Trailing whitespace.
color ,green "[[:space:]]+$"
'';
}

View File

@ -0,0 +1,17 @@
{ config, pkgs, ... }:
{
environment.systemPackages = [
pkgs.flameshot
pkgs.libreoffice
pkgs.gimp-with-plugins
pkgs.inkscape
pkgs.nyxt
pkgs.spotify
pkgs.vlc
pkgs.audacity
pkgs.obs-studio
pkgs.hollywood
pkgs.flameshot
pkgs.krita
];
}

19
Modules/pkgs/Fonts.nix Normal file
View File

@ -0,0 +1,19 @@
{ config, pkgs, ... }:
{
environment.systemPackages = [
pkgs.nerdfonts
pkgs.winePackages.fonts
];
fonts.packages = with pkgs; [
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
liberation_ttf
fira-code
fira-code-symbols
mplus-outline-fonts.githubRelease
dina-font
proggyfonts
nerdfonts
];
}

View File

@ -0,0 +1,49 @@
{ config, pkgs, ... }:
{
nixpkgs.config.permittedInsecurePackages = [
"pulsar-1.117.0"
"tightvnc-1.3.10"
];
environment.systemPackages = [
pkgs.wireshark
pkgs.angryipscanner
pkgs.drawio
pkgs.vscode
pkgs.mono
pkgs.fastfetch
pkgs.netrw
pkgs.netop
pkgs.netdata
#pkgs.pulsar
pkgs.wireguard-tools
pkgs.nmap
pkgs.wireshark-cli
#pkgs.pyqt5
pkgs.python312Packages.manuf
pkgs.dig
pkgs.inetutils
#pkgs.wireguard
#pkgs.wireguard-tools
pkgs.dotnet-sdk_8
pkgs.imagemagick
pkgs.exif
pkgs.netcat-gnu
pkgs.distrobox
pkgs.powershell
pkgs.pulsar
pkgs.tor
pkgs.torsocks
];
services.tor.enable = true;
#boot.extraModulePackages = [ config.boot.kernelPackages.wireguard ];
#environment.systemPackages = [ pkgs.wireguard pkgs.wireguard-tools ];
# programs.wireshark.enable = true;
# security.sudo.extraConfig = ''
# Defaults env_keep += "WAYLAND_DISPLAY wayland-1"
# '';
programs.wireshark.enable = true;
}

43
Modules/pkgs/Packages.nix Normal file
View File

@ -0,0 +1,43 @@
{ config, pkgs, ... }:
{
environment.systemPackages = [
pkgs.fastfetch
pkgs.wget
pkgs.curl
pkgs.lynx
pkgs.gimp-with-plugins
pkgs.inkscape
pkgs.firefox-unwrapped
pkgs.rustdesk
pkgs.yazi
pkgs.git
pkgs.spotify
pkgs.python312Packages.gpustat
pkgs.nextcloud-client
pkgs.zip
pkgs.unzip
pkgs.swayimg
pkgs.virtualbox
pkgs.parted
pkgs.onlyoffice-bin
pkgs.lsof
pkgs.konsole
#pkgs.openrgb
pkgs.gtop
pkgs.btop
pkgs.nvtopPackages.full
pkgs.sl
pkgs.cmatrix
pkgs.aalib
pkgs.jp2a
pkgs.pipes
pkgs.tty-clock
pkgs.hackertyper
pkgs.hollywood
];
#services.hardware.openrgb.enable = true;
}

View File

@ -0,0 +1,10 @@
{ config, lib, pkgs, ... }:
{
environment.systemPackages = [
pkgs.grim
pkgs.slurp
];
}

18
Modules/pkgs/vnc.nix Normal file
View File

@ -0,0 +1,18 @@
{ config, lib, pkgs, ... }:
{
environment.systemPackages = [
pkgs.wayvnc
pkgs.tigervnc
pkgs.xrdp
pkgs.wlvncc
pkgs.tightvnc
pkgs.turbovnc
pkgs.krdc
];
networking.firewall.enable = true;
networking.firewall.allowedTCPPorts = [ 5900 ];
nixpkgs.config.permittedInsecurePackages = [
"tightvnc-1.3.10"
];
}

14
Modules/sharedHome.nix Normal file
View File

@ -0,0 +1,14 @@
{ config, lib, pkgs, ... }:
{
imports = [
./home/bash.nix
./home/dunstHMconf.nix
./home/HyprlandHMConf.nix
./home/kitty.nix
./home/Starship.nix
./home/waybarHMConf.nix
./home/waybarTheme.nix
./home/wofi.nix
./home/zshhome.nix
];
}

13
Modules/wlfixes.nix Normal file
View File

@ -0,0 +1,13 @@
{ config, pkgs, ... }:
{
environment.systemPackages = [
pkgs.meson
pkgs.wayland-protocols
pkgs.wayland-utils
pkgs.wl-clipboard
pkgs.wlroots
];
}

7
Modules/zsh.nix Normal file
View File

@ -0,0 +1,7 @@
{ config, lib, pkgs, ... }:
{
programs.zsh.enable = true;
users.defaultUserShell = pkgs.zsh;
environment.shells = with pkgs; [ zsh ];
programs.zsh.autosuggestions.enable = true;
}

12
init-red.nix Normal file
View File

@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
{
imports = [
./Modules/greetd.nix
./Modules/HomeManager.nix
./Modules/hyprland.nix
./Modules/nanoconf.nix
./Modules/sharedHome.nix
./Modules/wlfixes.nix
./Modules/zsh.nix
];
}