created files

This commit is contained in:
2005 2024-04-28 11:35:35 +02:00
commit 79cbf5400e
41 changed files with 5017 additions and 0 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
nixos/hardware-configuration.nix

14
nixos/apps/communication.nix Executable file
View file

@ -0,0 +1,14 @@
{ pkgs, config, ... }:
{
programs.steam.enable = true;
environment.systemPackages = with pkgs; [
mumble # voip
element-desktop # fully featured matrix client
#gomuks # tui matrix client
];
}

1
nixos/apps/firefox.nix Executable file
View file

@ -0,0 +1 @@

8
nixos/apps/keepassxc.nix Executable file
View file

@ -0,0 +1,8 @@
{ pkgs, config, ... }:
{
environment.systemPackages = with pkgs; [
keepassxc
];
}

9
nixos/apps/music.nix Executable file
View file

@ -0,0 +1,9 @@
{ pkgs, config, ... }: {
environment.systemPackages = with pkgs; [
cmus
playerctl
jamesdsp
yt-dlp
picard # audio metadata
];
}

8
nixos/apps/office.nix Executable file
View file

@ -0,0 +1,8 @@
{ pkgs, config, ... }:
{
environment.systemPackages = with pkgs; [
libreoffice
];
}

9
nixos/apps/prod.nix Executable file
View file

@ -0,0 +1,9 @@
{ pkgs, config, ... }: {
environment.systemPackages = with pkgs; [
taskwarrior
timewarrior
logseq
];
}

8
nixos/apps/syncthing.nix Executable file
View file

@ -0,0 +1,8 @@
{ pkgs, ... }: {
services.syncthing = {
enable = true;
user = "grape";
dataDir = "/home/grape/Documents";
configDir = "/home/grape/.syncthing";
};
}

View file

@ -0,0 +1,18 @@
{ pkgs, ... }: {
home-manager.users.grape.programs.alacritty =
{
enable = true;
settings = {
font.normal = {
family = "Jetbrains Mono Nerd font";
style = "Regular";
};
#shell.program = "${pkgs.zsh}";
colors.primary = {
foreground = "#ffffff";
background = "#191830";
};
};
};
}

7
nixos/configs/btop.nix Normal file
View file

@ -0,0 +1,7 @@
{ pkgs, ... }: {
home-manager.users.grape = {
programs.btop.settings = {
theme_background = false;
};
};
}

19
nixos/configs/colors.nix Executable file
View file

@ -0,0 +1,19 @@
{
foreground = "#FFFFFF";
foreground_alt = "#F72585";
background = "#191830";
border = "#F72585";
warning = "#f00";
textHighlight = "#FAD000";
selectedWindowHighlight = "#FAD000";
seperatorColor = "#FAD000";
i3BorderColor = "#FAD000";
}

108
nixos/configs/firefox.nix Normal file
View file

@ -0,0 +1,108 @@
{ pkgs, ... }: {
home-manager.users.grape = {
programs.firefox = {
enable = true;
profiles = {
"user" = {
isDefault = true;
id = 0;
# TODO fix impurity
extraConfig = builtins.readFile "/etc/nixos/opt/firefox/user.js"; # custom userjs config
userChrome = builtins.readFile "/etc/nixos/opt/firefox/userChrome.css"; # browser styles
userContent = builtins.readFile "/etc/nixos/opt/firefox/userContent.css"; # browser styles
extensions =
[
pkgs.nur.repos.rycee.firefox-addons.ublock-origin
pkgs.nur.repos.rycee.firefox-addons.clearurls # clear tracking urls
pkgs.nur.repos.rycee.firefox-addons.stylus # cool styling for websites
pkgs.nur.repos.rycee.firefox-addons.localcdn # locally stores frameworks such as vue, tailwind ect..
pkgs.nur.repos.rycee.firefox-addons.libredirect # redirects to libre version of spyware sites
pkgs.nur.repos.rycee.firefox-addons.tridactyl # vim like keybinds
pkgs.nur.repos.rycee.firefox-addons.istilldontcareaboutcookies # dismisses cookie banners
pkgs.nur.repos.rycee.firefox-addons.noscript # block js
pkgs.nur.repos.rycee.firefox-addons.tabliss # sexy new tab
];
search.force = true;
search.order = [ "Searxng" "DuckDuckGo" ];
search.default = "Searxng";
search.engines = {
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
"Searxng" = {
urls = [{
template = "https://search.rhscz.eu/";
params = [
{ name = "q"; value = "{searchTerms}"; }
];
}];
};
"Home Manager" = {
definedAliases = [ "@hm" ];
urls = [{
template = "https://mipmip.github.io/home-manager-option-search/";
params = [
{ name = "query"; value = "{searchTerms}"; }
];
}];
};
"Nix Options" = {
definedAliases = [ "@no" ];
urls = [{
template = "https://search.nixos.org/options?type=packages";
params = [
{ name = "query"; value = "{searchTerms}"; }
];
}];
"Stylus styles" = {
urls = [{
template = " https://userstyles.world/search";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}];
definedAliases = [ "@st" ];
};
"Twitch" = {
urls = [{
template = " https://twitch.tv/search";
params = [
{
name = "term";
value = "{searchTerms}";
}
];
}];
definedAliases = [ "@tw" ];
};
};
};
};
};
};
};
programs.firejail = {
wrappedBinaries = {
firefox = {
executable = "${pkgs.firefox}/bin/firefox";
profile = "${pkgs.firejail}/etc/firejail/firefox.profile";
desktop = "${pkgs.firefox}/share/applications/firefox.desktop";
};
};
};
}

View file

@ -0,0 +1,16 @@
{ pkgs, config, ... }:
{
environment.systemPackages = [
(pkgs.runCommand "gpu-screen-recorder"
{
nativeBuildInputs = [ pkgs.makeWrapper ];
} ''
mkdir -p $out/bin
makeWrapper ${pkgs.gpu-screen-recorder}/bin/gpu-screen-recorder $out/bin/gpu-screen-recorder \
--prefix LD_LIBRARY_PATH : ${pkgs.libglvnd}/lib \
--prefix LD_LIBRARY_PATH : ${config.boot.kernelPackages.nvidia_x11}/lib
'')
];
}

100
nixos/configs/i3.nix Executable file
View file

@ -0,0 +1,100 @@
{ pkgs, lib, ... }: {
home-manager.users.grape.xsession.windowManager.i3 = {
enable = true;
config = {
# disable i3 bar
bars = [ ];
# Starting compositor and adding background to xroot via nitrogen
startup = [
{
command = "nitrogen --set-zoom-fill /home/grape/Pictures/bg.jpg";
}
{
command = "picom -b --experimental-backends";
}
{
command = "polybar --reload";
}
];
# defining alt as modifier
modifier = "Mod1";
gaps.inner = 12;
# TODO add colors from variables
# colors for focused windows
colors.focused = {
background = "#FAD000";
border = "#FAD000";
childBorder = "#FFF";
indicator = "#FAD000";
text = "#FAD000";
};
colors.focusedInactive = {
background = "#FAD000";
border = "#FAD000";
childBorder = "#FFF";
indicator = "#FAD000";
text = "#FAD000";
};
keybindings =
lib.mkOptionDefault
{
# application keybinds
"mod4+d" = "exec rofi -show drun";
"mod4+e" = "exec rofi -show calc";
"mod4+t" = "exec alacritty";
"mod4+r" = "exec firefox";
"mod4+w" = "exec ~/.config/scripts/save_replay.sh";
# power off
"mod4+Shift+Delete" = "exec shutdown now";
# language settings
"mod4+1" = "exec setxkbmap us";
"mod4+2" = "exec setxkbmap hu";
# screenshot
# shit needs work
"Print" = "exec scrot '%Y-%m-%d_%H-%M-%S.png' -e 'mv $f ~/Pictures/screenshots && xclip -selection clipboard -t image/png -i ~/Pictures/screenshots/$f'";
"mod4+Print" = "exec scrot '%Y-%m-%d_%H-%M-%S.png' -e -u 'mv $f ~/Pictures/screenshots && xclip -selection clipboard -t image/png -i ~/Pictures/screenshots/$f'";
# select window to screenshot then saves it to /home/pictures/screenshots/date+random.png and copies to clipboard
"Shift+Print" = ''exec "NUM=$(echo $RANDOM) maim -s $HOME/Pictures/screenshots/$(date +%Y%m%d_%H%M)$NUM.png ; cat $HOME/Pictures/screenshots/$(date +%Y%m%d_%H%M)$NUM.png | xclip -selection clipboard -t image/png"'';
# Volume adjustment for current player
"shift+XF86AudioRaiseVolume" = "exec --no-startup-id playerctl volume 0.1+";
"shift+XF86AudioLowerVolume" = "exec --no-startup-id playerctl volume 0.1-";
# seeking for current player
"Control+XF86AudioRaiseVolume" = "exec --no-startup-id playerctl position 10+";
"Control+XF86AudioLowerVolume" = "exec --no-startup-id playerctl position 10-";
# track skipping n stuff
"XF86AudioNext" = "exec --no-startup-id playerctl next";
"XF86AudioPlay" = "exec --no-startup-id playerctl play-pause";
"XF86AudioPrev" = "exec --no-startup-id playerctl previous";
# adjusting system mvolume
"XF86AudioRaiseVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10%";
"XF86AudioLowerVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% ";
"XF86AudioMute" = "exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle";
"XF86AudioMicMute" = "exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle";
};
};
# disable stupid and ugly title bars
# and for some reason client.active doesnt change the colors...
extraConfig = "default_border pixel 4\n default_floating_border pixel 1 \n client.focused #FAD000 #285577 #ffffff #FAD000 #FAD000 \n client.focused_inactive #063340 #141414 #000000 #121212 #063340";
};
}

16
nixos/configs/kitty.nix Normal file
View file

@ -0,0 +1,16 @@
{ pkgs, ... }: {
home-manager.users.grape.programs.kitty = {
enable = true;
font.name = "Jetbrains Mono Nerd font";
extraConfig = ''
enable_audio_bell no
window_alert_on_bell no
foreground #dddddd
background #191830
'';
};
}

9
nixos/configs/ollama.nix Normal file
View file

@ -0,0 +1,9 @@
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [
ollama
];
services.ollama.enable = true;
services.ollama.acceleration = "cuda";
}

76
nixos/configs/picom.nix Executable file
View file

@ -0,0 +1,76 @@
{ pkgs, ... }: {
home-manager.users.grape.services.picom = {
enable = true;
backend = "glx";
vSync = false; # disable vsync to reduce input delay
extraArgs = [ "-b" "--experimental-backends" ]; # enable deamon mode and experimental backends for blur
package =
(pkgs.picom.overrideAttrs (oldAttrs: rec {
src = pkgs.fetchFromGitHub {
owner = "pijulius";
repo = "picom";
rev = "da21aa8ef70f9796bc8609fb495c3a1e02df93f9";
hash = "sha256-rxGWAot+6FnXKjNZkMl1uHHHEMVSxm36G3VoV1vSXLA=";
};
}));
settings = {
blur-method = "dual_kawase";
blur-size = 12;
blur-strength = 5;
blur-background = true;
blur-kern = "3x3box";
blur-background-exclude = [
"window_type = 'dock'"
"window_type = 'desktop'"
"_GTK_FRAME_EXTENTS@:c"
"class_g ~= 'slop'"
];
opacity-rule = [
"80:class_g *= 'st'"
"80:class_g *= 'kitty'"
"80:class_g *= 'alacritty'"
"80:class_g *= 'Alacritty'"
"90:class_g *= 'jamesdsp'"
"90:class_g *= 'polybar'"
"80:class_g *= 'codium'"
"80:class_g *= 'rofi'"
"80:class_g *= 'lutris'"
"80:class_g *= 'Mumble'"
"85:class_g *= 'Logseq'"
"85:class_g *= 'Codium'"
];
# rounding
corner-radius = 15;
use-damage = false;
inactive-opacity = 1.0;
frame-opacity = 1.0;
inactive-opacity-override = false;
fading = true;
fade-in-step = 0.03;
fade-out-step = 0.03;
animations = true;
animation-for-open-window = "squeeze";
animation-for-transient-window = "zoom";
animation-for-unmap-window = "squeeze";
animation-for-workspace-switch-in = "zoom";
animation-for-workspace-switch-out = "auto";
animation-stiffness = 500;
animation-dampening = 40;
animation-window-mass = 1;
animation-delta = 7;
animation-force-steps = true;
};
};
}

252
nixos/configs/polybar.nix Executable file
View file

@ -0,0 +1,252 @@
let
colors = {
fg = "#FFFFFF";
bg = "#191830";
border = "#F72585";
warn = "#f00";
altfg = "#F72585";
invisible = "#00400080";
currentWorkspace = "#FAD000";
seperatorColor = "#FAD000";
};
in
{
home-manager.users.grape.services.polybar = {
enable = true;
script = "polybar --reload";
# Nix is great and all.. but this is a bit too execsive
config = {
"module/date" = {
type = "internal/date";
font-1 = "Jetbrains Mono Nerd font";
interval = 1;
time = "%I:%M:%S";
date = "%Y-%m-%d%";
format = "<label>";
label = "%time% %date%";
label-foreground = "${colors.fg}";
};
#
# Labels
#
"module/s" = {
type = "custom/text";
label = " | ";
label-foreground = "${colors.seperatorColor}";
};
"module/cpu-label" = {
type = "custom/text";
label = "CPU ";
label-foreground = "${colors.seperatorColor}";
};
"module/gpu-label" = {
type = "custom/text";
label = "GPU ";
label-foreground = "${colors.seperatorColor}";
};
"module/ram-label" = {
type = "custom/text";
label = "RAM ";
label-foreground = "${colors.seperatorColor}";
};
"module/replay-label" = {
type = "custom/text";
label = "REPLAY ";
label-foreground = "${colors.seperatorColor}";
};
"module/battery-label" = {
type = "custom/text";
label = "BAT ";
label-foreground = "${colors.seperatorColor}";
};
"module/fs-label-system" = {
type = "custom/text";
label = "SYS ";
label-foreground = "${colors.seperatorColor}";
};
"module/fs-label-data" = {
type = "custom/text";
label = "DAT ";
label-foreground = "${ colors. seperatorColor}";
};
#
# End of labels
#
"module/ewmh" = {
type = "internal/xworkspaces";
pin-workspaces = false;
label-active-foreground = "${colors.currentWorkspace}";
};
"module/wired-network" = {
type = "internal/network";
interface = "eno2";
label-foreground = "${colors.fg}";
};
"module/wireless-network" = {
type = "internal/network";
interface = "wlo1";
label-foreground = "${colors.fg}";
};
"module/cpu-temp" = {
type = "internal/temperature";
format = "<label> ";
format-warn = "<label-warn> ";
base-temperature = 20;
warn-temperature = 85;
label-warn-foreground = "${colors.warn}";
label-foreground = "${colors.fg}";
thermal-zone = 0;
zone-type = "x86_pkg_temp";
hwmon-path = "/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input";
};
"module/cpu-usage" = {
type = "internal/cpu";
interval = "1.5";
format = "<label>";
label = "CPU %percentage%%";
format-foreground = "${colors.fg}";
};
"module/gpu-temp" = {
type = "custom/script";
interval = "1.5";
exec = "nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits";
format = "<label>";
format-suffix = "°C ";
};
"module/gpu-usage" = {
type = "custom/script";
interval = "1.5";
exec = "nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits";
format-suffix = "mb ";
};
"module/memory" = {
type = "internal/memory";
interval = 1;
label = "%used%";
label-warn = "%used%";
warn-percentage = 70;
label-warn-foreground = "${colors.warn}";
};
"module/audio" = {
type = "internal/alsa";
use-ui-max = false;
interval = 5;
label-volume = "%percentage%%";
label-muted = "muted";
label-muted-foreground = "${colors.altfg}";
};
"module/replay" = {
type = "custom/script";
exec = "~/.config/scripts/status.sh";
interval = 1;
click-left = "~/.config/scripts/start_replay.sh";
click-middle = "~/.config/scripts/save_replay.sh";
click-right = "~/.config/scripts/stop_replay.sh";
};
"module/music" = {
type = "custom/script";
interval = ".5";
exec = "~/.config/scripts/music.sh";
format = "<label>";
};
"module/cava" = {
type = "custom/script";
tail = "true";
exec = "$HOME/.config/scripts/cava.sh";
format = "<label>";
format-font = 5;
label-foreground = "${colors.fg}";
label = " %{T1}%output%%{T-}";
};
"fs-base" = {
type = "internal/fs";
label-unmounted = "?";
format-prefix-foreground = "${colors.fg}";
warn-precentage = "80%";
};
"module/fs-system" = {
"inherit" = "fs-base";
mount-0 = "/";
interval = 30;
label-mounted = "%free%(%total%)";
};
"module/fs-data" = {
"inherit" = "fs-base";
mount-0 = "/mnt/terra";
interval = 30;
label-mounted = "%free%(%total%)";
};
"module/battery" = {
type = "internal/battery";
full-at = 95;
low-at = 20;
battery = "BAT0";
adapter = "AC0";
poll-interval = 4;
};
"global/wm" = {
override-redirect = false;
};
"bar/default" = {
font-0 = "Jetbrains Mono Nerd font:size=11;3";
font-1 = "Jetbrains Mono Nerd font:size=11;1";
bottom = false;
# dimensons
width = "100%";
height = 40;
radius = 15;
# Padding for modules
padding-left = 5;
padding-right = 5;
# setting colors
background = "${colors.bg}";
foreground = "${colors.fg}";
# border for bar
# TODO for some reason i cant give the bar a margin-top and therefore i cant have a colored margin.. instead its invisible for now
border-size = "10px";
# border-color = ${colors.border}
border-color = "${colors.invisible}";
# Displayed modules
modules-left = "date s ewmh s wired-network wireless-network s audio s music";
modules-center = "cava";
# TODO Add gpu usage and temp
modules-right = "battery-label battery s fs-label-data fs-data s fs-label-system fs-system s replay-label replay s ram-label memory s gpu-label gpu-usage gpu-temp s cpu-label cpu-temp cpu-usage";
};
};
};
}

9
nixos/configs/rofi.nix Executable file
View file

@ -0,0 +1,9 @@
{ pkgs, lib, ... }: {
home-manager.users.grape.programs.rofi = {
enable = true;
font = "Jetbrains Mono";
configPath = "$XDG_CONFIG_HOME/rofi/config.rasi";
plugins = with pkgs; [ rofi-calc rofi-emoji ];
};
}

14
nixos/configs/st.nix Normal file
View file

@ -0,0 +1,14 @@
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [
(st.overrideAttrs (oldAttrs: rec {
configFile = writeText "config.def.h" (builtins.readFile ../opt/st/st.h);
postPatch = "${oldAttrs.postPatch}\n cp ${configFile} config.def.h";
patches = [
(fetchpatch {
url = "https://st.suckless.org/patches/scrollback/st-scrollback-0.8.5.diff";
sha256 = "0mgsklws6jsrngcsy64zmr604qsdlpd5pqsa3pci7j3gn8im4zyw";
})
];
}))
];
}

72
nixos/configs/vscode.nix Normal file
View file

@ -0,0 +1,72 @@
{ pkgs, ... }:
{
home-manager.users.grape = {
programs.vscode = {
enable = true;
package = pkgs.vscodium;
extensions = with pkgs.vscode-extensions; [
# language suports
rust-lang.rust-analyzer
jnoortheen.nix-ide
redhat.java
redhat.vscode-yaml
ms-azuretools.vscode-docker
octref.vetur
bungcip.better-toml
mikestead.dotenv
# linters
esbenp.prettier-vscode
naumovs.color-highlight
# essentials, other
streetsidesoftware.code-spell-checker
vscodevim.vim
oderwat.indent-rainbow
usernamehw.errorlens
christian-kohler.path-intellisense
vscjava.vscode-spring-initializr
#themes, icons
vscode-icons-team.vscode-icons
mechatroner.rainbow-csv
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
{
name = "shades-of-purple";
publisher = "ahmadawais";
version = "7.3.2";
sha256 = "10q5w9g7ghn2qvdc7h2b79x1vy8nzpnwz8dbg1h03074ikhvjx4v";
}
];
userSettings = {
"terminal.integrated.defaultProfile.linux" = "zsh";
"editor.formatOnSave" = true;
"editor.lineNumbers" = "relative";
"workbench.colorTheme" = "Shades of Purple (Super Dark)";
"editor.minimap.enabled" = false;
"workbench.iconTheme" = "vscode-icons";
"vim.smartRelativeLine" = true;
"rust-analyzer.cargo.sysroot" = "discover";
};
languageSnippets = {
nix = {
pkginit = {
body = [
"{pkgs, ...}: {"
"$1"
"}"
];
description = "Insert a nix pkg config";
prefix = [
"nix"
];
};
};
};
};
};
}

105
nixos/configuration.nix Executable file
View file

@ -0,0 +1,105 @@
{ config, pkgs, ... }:
{
imports =
[
# Include the results of the hardware scan.
./hardware-configuration.nix
# system stuff
./system/display.nix
./system/sound.nix
./system/essentials.nix
./system/shell.nix
./system/remap.nix
# rice and other usefull apps
./desktop.nix
# developing tools
./dev.nix
# music
./apps/music.nix
# gayming
./gaming.nix
# communcations apps
./apps/communication.nix
# password manager
./apps/keepassxc.nix
# productivity apps
./apps/prod.nix
# enabling sandboxing and other security measures
./system/security.nix
# file sync
./apps/syncthing.nix
# libreoffice
# ./apps/office.nix
];
# adding nur
nixpkgs.config.packageOverrides = pkgs: {
nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") {
inherit pkgs;
};
};
# Permitting insecure package for walpepper
nixpkgs.config.permittedInsecurePackages = [
"libav-12.3"
];
# adding flake support
nix.settings.experimental-features = [ "nix-command" "flakes" ];
home-manager.users.grape = { ... }: {
home.stateVersion = "23.11";
};
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.initrd.luks.devices."luks-f7e86dde-55a5-4306-a7c2-cf2d93c9ee0b".device = "/dev/disk/by-uuid/f7e86dde-55a5-4306-a7c2-cf2d93c9ee0b";
networking.hostName = "strix";
# Enable networking
networking.networkmanager.enable = true;
# Set your time zone.
time.timeZone = "Europe/Budapest";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "hu_HU.UTF-8";
LC_IDENTIFICATION = "hu_HU.UTF-8";
LC_MEASUREMENT = "hu_HU.UTF-8";
LC_MONETARY = "hu_HU.UTF-8";
LC_NAME = "hu_HU.UTF-8";
LC_NUMERIC = "hu_HU.UTF-8";
LC_PAPER = "hu_HU.UTF-8";
LC_TELEPHONE = "hu_HU.UTF-8";
LC_TIME = "hu_HU.UTF-8";
};
users.users.grape = {
isNormalUser = true;
description = "grape";
extraGroups = [ "networkmanager" "wheel" "audio" "docker" ];
};
nixpkgs.config.allowUnfree = true;
system.stateVersion = "23.11";
}

68
nixos/desktop.nix Executable file
View file

@ -0,0 +1,68 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
rofi
rofi-calc
btop
polybar
nitrogen
ranger
neofetch
peaclock
cava
bluetuith
# for screcsotting
scrot
xclip
maim
# multimedia
feh
mpv
neovim
#animated bg
#(pkgs.callPackage ./apps/wallpepper/default.nix { })
# file managing
filezilla
# screen sharing
#obs-studio
#qpwgraph
# work
#figma-linux
#kdenlive
#video-trimmer
];
fonts.packages = with pkgs; [
(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
];
imports = [
./configs/i3.nix
./configs/rofi.nix
./configs/picom.nix
./configs/polybar.nix
./configs/btop.nix
./configs/ollama.nix
./configs/vscode.nix
./configs/gpu-screen-recorder.nix
./configs/firefox.nix
# terminal
#./configs/st.nix # too minimal, most things dont work without a million tweaks
#./configs/kitty.nix # uses their own stupid xterm extension...
./configs/alacritty.nix # just perfect, tho too much gpu usage
];
}

29
nixos/dev.nix Executable file
View file

@ -0,0 +1,29 @@
{ pkgs, ... }:
{
# enable docker
virtualisation.docker.rootless = {
enable = true;
setSocketVariable = true;
};
environment.systemPackages = with pkgs; [
# tools
git # version control
neovim # cli editor
beekeeper-studio # mysql postgres ... client
insomnia # http client
ungoogled-chromium # for testing vite projects
#containers
docker
docker-compose
#formatters
nixpkgs-fmt
# nix pkg fetcher
nurl
nix-init
];
}

120
nixos/flake.lock Executable file
View file

@ -0,0 +1,120 @@
{
"nodes": {
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1710888565,
"narHash": "sha256-s9Hi4RHhc6yut4EcYD50sZWRDKsugBJHSbON8KFwoTw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "f33900124c23c4eca5831b9b5eb32ea5894375ce",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-23.11",
"repo": "home-manager",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1711668574,
"narHash": "sha256-u1dfs0ASQIEr1icTVrsKwg2xToIpn7ZXxW3RHfHxshg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "219951b495fc2eac67b1456824cc1ec1fd2ee659",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1711703276,
"narHash": "sha256-iMUFArF0WCatKK6RzfUJknjem0H9m4KgorO/p3Dopkk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d8fe5e6c92d0d190646fb9f1056741a229980089",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-unstable",
"type": "indirect"
}
},
"nvidia-patch": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"utils": "utils"
},
"locked": {
"lastModified": 1712504969,
"narHash": "sha256-/w9kKDr+zxqwQDYLmC5pP3UMEcY+wbOGVri45JlAc+U=",
"owner": "icewind1991",
"repo": "nvidia-patch-nixos",
"rev": "aea8d1daadebab5dbe36e0946c057d92df8055cd",
"type": "github"
},
"original": {
"owner": "icewind1991",
"repo": "nvidia-patch-nixos",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable",
"nvidia-patch": "nvidia-patch"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

55
nixos/flake.nix Executable file
View file

@ -0,0 +1,55 @@
{
description = "A simple NixOS flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; # default packages
nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; # unstable branch for newer packages
home-manager = {
url = "github:nix-community/home-manager/release-23.11";
inputs.nixpkgs.follows = "nixpkgs";
}; # home manger for more customization
# adding nvidia-patch for nvenc and nvfvc
nvidia-patch.url = "github:icewind1991/nvidia-patch-nixos";
nvidia-patch.inputs.nixpkgs.follows = "nixpkgs";
};
outputs =
{ self
, nixpkgs
, home-manager
, nixpkgs-unstable
, nvidia-patch
, ...
}:
let
system = "x86_64-linux";
#colors = import ./configs/colors.nix;
overlay-unstable = final: prev: {
unstable = nixpkgs-unstable.legacyPackages.${prev.system};
};
in
{
nixosConfigurations.strix = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
# adding unstable overlay
({ config, pkgs, ... }: {
nixpkgs.overlays = [
overlay-unstable
nvidia-patch.overlays.default
];
})
./system/drivers/shitvidia-patch.nix
./configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
}
];
};
};
}

43
nixos/gaming.nix Executable file
View file

@ -0,0 +1,43 @@
{ pkgs, config, ... }:
{
environment.systemPackages = with pkgs;[
# minecraft
prismlauncher
# not so epic games
heroic
# lol
(lutris.override {
extraPkgs = pkgs: [
pkgs.winePackages.base
];
})
];
# enabling java for mc
programs.java = { enable = true; package = pkgs.jdk17; };
# steam
programs.steam.enable = true;
programs.firejail = {
wrappedBinaries = {
# To add another drive:
# 1. open steam steam://open/console in browser
# 2. library_folder_add "/path/to/drive"
steam = {
executable = "${pkgs.steam}/bin/steam";
profile = "${pkgs.firejail}/etc/firejail/steam.profile";
desktop = "${pkgs.steam}/share/applications/steam.desktop";
extraArgs = [
"--env=GTK_THEME=Adwaita:dark"
];
};
#heroic = {
# executable = "${pkgs.heroic}/bin/heroic";
# profile = "${pkgs.firejail}/etc/firejail/steam.profile";
# desktop = "${pkgs.heroic}/share/applications/steam.desktop";
#};
};
};
}

1218
nixos/opt/firefox/user.js Executable file

File diff suppressed because it is too large Load diff

1396
nixos/opt/firefox/userChrome.css Executable file

File diff suppressed because it is too large Load diff

532
nixos/opt/firefox/userContent.css Executable file
View file

@ -0,0 +1,532 @@
/* ----- Included functions ----- */
@import url("spill-style-part2-file.css");
@import url("thin_scrollbar_windows10.css");
@import url("wallpaper-edition.css");
@import url("remove_homepage_shortcut_title_text.css");
@import url("circular_homepage_shortcuts.css");
/*=====================================================================
================= D A R K T H E M E C O L O R S ===================
=====================================================================*/
@media (prefers-color-scheme: dark) {
:root {
--firefoxcss-main-bg-color: hsl(240, 2%, 13%);
--firefoxcss-item-bg-color: hsl(240, 2%, 20%);
--firefoxcss-item-hover-bg-color: hsl(240, 2%, 25%);
--firefoxcss-text-color: hsl(0, 0%, 100%);
--firefoxcss-other-color: hsl(290, 21%, 20%);
/* ----- Private Page Colors ----- */
--firefoxcss-private-search-bg-color: hsla(275, 13%, 33%, 0.3);
--firefoxcss-private-search-top-border: hsla(275, 13%, 40%, 0.3);
--firefoxcss-private-search-fill: hsl(275, 13%, 53%);
--firefoxcss-private-search-hover: hsla(275, 13%, 43%, 0.3);
--firefoxcss-private-search-border-hover: hsla(275, 13%, 50%, 0.3);
--firefoxcss-private-search-hover-fill: hsl(275, 13%, 63%);
--firefoxcss-private-search-text: var(--firefoxcss-private-search-fill);
--firefoxcss-private-search-text-hover: var(--firefoxcss-private-search-hover-fill);
--firefoxcss-private-search-caret: hsl(290, 21%, 80%);
--firefoxcss-private-search-box-shadow: 0 1px 1px hsl(0deg 0% 0% / 0.075),
0 2px 2px hsl(0deg 0% 0% / 0.075), 0