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 4px 4px hsl(0deg 0% 0% / 0.075),
0 6px 6px hsl(0deg 0% 0% / 0.075), 0 12px 12px hsl(0deg 0% 0% / 0.095);
/* ----- Normal Page Colors ----- */
--firefoxcss-search-box-shadow: 0 1px 1px hsl(0deg 0% 0% / 0.075),
0 2px 2px hsl(0deg 0% 0% / 0.075), 0 4px 4px hsl(0deg 0% 0% / 0.075),
0 8px 8px hsl(0deg 0% 0% / 0.075), 0 16px 16px hsl(0deg 0% 0% / 0.095);
--firefoxcss-search-color: rgba(251, 251, 254, 1);
--firefoxcss-search-border-top-color: #ffffff26;
--firefoxcss-search-text-fill: #ffffff5e;
--firefoxcss-search-bar-text-color: rgba(251, 251, 254, 1);
--firefoxcss-search-bar-fill-icon-hover: rgba(251, 251, 254, 0.8);
--firefoxcss-shortcut-item-box-shadow: 0 1px 1px hsl(0deg 0% 0% / 0.075),
0 2px 2px hsl(0deg 0% 0% / 0.075), 0 4px 4px hsl(0deg 0% 0% / 0.075),
0 8px 8px hsl(0deg 0% 0% / 0.075), 0 16px 16px hsl(0deg 0% 0% / 0.075);
--firefoxcss-shortcut-item-top-border: #ffffff26;
--firefoxcss-shortcut-item-top-border-hover: #97979791;
--firefoxcss-customize-menu: #1e1e1e8c;
--firefoxcss-customize-menu-bg-image: url("ASSETS/other/noise-512x512.png");
--firefoxcss-customize-menu-dropdown: #1e1e1e80;
--firefoxcss-input-focus: white;
/* no changes */
--firefoxcss-shortcut-item-active: hsla(0, 0%, 10%, 0.7);
--firefoxcss-shortcut-item-context-menu: #13131380;
--firefoxcss-shortcut-item-context-menu-border: hsla(0, 0%, 70%, 0.145);
--firefoxcss-shortcut-item-context-menu-separator: #ffffff29;
--firefoxcss-extra-search-bar-when-scroll: #1e1e1e8c;
--firefoxcss-context-menu-three-dots: hsla(240, 2%, 60%, 0.6);
--firefoxcss-settings-wheel-color: hsla(240, 20%, 90%, 0.6);
--firefoxcss-settings-wheel-color-hover: hsla(240, 20%, 90%, 0.9);
--firefoxcss-shortcut-search-icon-color: #7ae3f463;
}
* {
scrollbar-color: #afafaf #2c2c2c !important;
}
}
/*=====================================================================
================= L I G H T T H E M E C O L O R S =================
=====================================================================*/
@media (prefers-color-scheme: light) {
:root {
--firefoxcss-main-bg-color: hsl(240, 15%, 95%);
--firefoxcss-item-bg-color: hsl(240, 20%, 98%);
--firefoxcss-item-hover-bg-color: hsl(240, 5%, 95%);
--firefoxcss-text-color: hsl(0, 0%, 0%);
--firefoxcss-other-color: hsl(290, 21%, 20%);
/* ----- Private Page Colors ----- */
--firefoxcss-private-search-bg-color: hsla(276, 20%, 88%, 0.55);
--firefoxcss-private-search-top-border: hsla(0, 0%, 100%, 0.45);
--firefoxcss-private-search-fill: hsl(275, 20%, 65%);
--firefoxcss-private-search-hover: hsla(276, 20%, 84%, 0.50);
--firefoxcss-private-search-border-hover: hsla(0, 0%, 100%, 0.55);
--firefoxcss-private-search-hover-fill: hsl(275, 20%, 55%);
--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(276, 20%, 40%);
--firefoxcss-private-search-box-shadow: 0 1px 1px hsl(0deg 0% 0% / 0.015),
0 2px 2px hsl(0deg 0% 0% / 0.015), 0 4px 4px hsl(0deg 0% 0% / 0.015),
0 6px 6px hsl(0deg 0% 0% / 0.015), 0 12px 12px hsl(0deg 0% 0% / 0.035);
/* ----- Normal Page Colors ----- */
--firefoxcss-search-box-shadow: 0 1px 1px hsl(0deg 0% 0% / 0.015),
0 2px 2px hsl(0deg 0% 0% / 0.015), 0 4px 4px hsl(0deg 0% 0% / 0.015),
0 8px 8px hsl(0deg 0% 0% / 0.015), 0 16px 16px hsl(0deg 0% 0% / 0.035);
--firefoxcss-search-color: rgb(87, 87, 87, 1);
--firefoxcss-search-border-top-color: hsla(0, 0%, 100%, 0.9);
--firefoxcss-search-text-fill: rgba(10, 10, 10, 0.25);
--firefoxcss-search-bar-text-color: rgba(10, 10, 10, 0.65);
--firefoxcss-search-bar-fill-icon-hover: rgba(0, 0, 0, 0.5);
--firefoxcss-shortcut-item-box-shadow: 0 1px 1px hsl(0deg 0% 0% / 0.025),
0 2px 2px hsl(0deg 0% 0% / 0.025), 0 4px 4px hsl(0deg 0% 0% / 0.025),
0 8px 8px hsl(0deg 0% 0% / 0.025), 0 16px 16px hsl(0deg 0% 0% / 0.025);
--firefoxcss-shortcut-item-top-border: hsla(0, 0%, 100%, 0.9);
--firefoxcss-shortcut-item-top-border-hover: hsla(0, 0%, 100%, 0.6);
--firefoxcss-customize-menu: hsla(240, 10%, 90%, 0.25);
--firefoxcss-customize-menu-bg-image: none;
--firefoxcss-customize-menu-dropdown: #fdfdfd80;
--firefoxcss-input-focus: black; /* no changes */
--firefoxcss-shortcut-item-active: hsla(240, 15%, 85%, 0.4);
--firefoxcss-shortcut-item-context-menu: hsla(0, 0%, 95%, 0.4);
--firefoxcss-shortcut-item-context-menu-border: hsla(0, 0%, 100%, 0.5);
--firefoxcss-shortcut-item-context-menu-separator: hsla(0, 0%, 50%, 0.2);
--firefoxcss-extra-search-bar-when-scroll: hsla(0, 0%, 10%, 0.3);
--firefoxcss-context-menu-three-dots: hsla(240, 10%, 50%, 0.6);
--firefoxcss-settings-wheel-color: hsla(240, 20%, 10%, 0.6);
--firefoxcss-settings-wheel-color-hover: hsla(240, 20%, 10%, 0.9);
--firefoxcss-shortcut-search-icon-color: #2896a870;
}
}
body {
--newtab-search-icon: url("chrome://global/skin/icons/search-glass.svg") !important;
}
@-moz-document url("about:privatebrowsing") {
body {
background-color: var(--firefoxcss-main-bg-color) !important;
background-size: auto;
background-size: cover !important;
}
/* html.private {
background-color: #1e1e1e80 !important;
background-image: url(ASSETS/icons/.jpg) !important ;
background-size: cover !important;
} */
#search-handoff-button {
appearance: none !important;
background-color: var(--firefoxcss-private-search-bg-color) !important;
border: none !important;
box-shadow: none !important;
border-top: 1px solid var(--firefoxcss-private-search-top-border) !important;
border-radius: 10px 10px 10px 10px !important;
fill: var(--firefoxcss-private-search-fill) !important;
box-shadow: var(--firefoxcss-private-search-box-shadow) !important;
transition: background-color 100ms ease-in, border-color 100ms ease-in,
fill 100ms ease-in !important;
backdrop-filter: blur(24px) !important;
}
#search-handoff-button:hover,
#search-handoff-button:focus,
#search-handoff-button:active {
background-color: var(--firefoxcss-private-search-hover) !important;
border-top: 1px solid var(--firefoxcss-private-search-border-hover) !important;
fill: var(--firefoxcss-private-search-hover-fill) !important;
}
#search-handoff-button .fake-textbox {
color: var(--firefoxcss-private-search-text) !important;
opacity: 0.8 !important;
transition: color 100ms ease-in, opacity 100ms ease-in !important;
}
#search-handoff-button:active>.fake-textbox,
#search-handoff-button:hover>.fake-textbox,
#search-handoff-button:focus>.fake-textbox {
color: var(--firefoxcss-private-search-text-hover) !important;
}
#search-handoff-button .fake-caret {
background: var(--firefoxcss-private-search-caret) !important;
}
.logo-and-wordmark .wordmark {
fill: #8f25d1 !important;
opacity: 0.9 !important;
}
.showPrivate.showSearch.container .info {
display: none !important;
}
.private .search-inner-wrapper {
height: 42px !important;
/* 48px default */
}
.private .search-inner-wrapper .fake-caret {
top: 13px !important;
/* 16px default */
}
.private .search-inner-wrapper #search-handoff-button {
background-size: 20px !important;
}
}
@-moz-document url("about:home"),
url("about:newtab") {
body {
--newtab-background-color: var(--firefoxcss-main-bg-color) !important;
background-size: cover !important;
}
/* For background blur */
/* .outer-wrapper {
background-color: #1e1e1e88 !important;
backdrop-filter: blur(24px) !important;
} */
.search-wrapper .search-handoff-button {
appearance: none !important;
background-color: var(--firefoxcss-item-bg-color) !important;
color: var(--firefoxcss-search-color) !important;
border: none !important;
box-shadow: none !important;
border-top: 1px solid var(--firefoxcss-search-border-top-color) !important;
border-radius: 10px !important;
backdrop-filter: blur(24px) !important;
box-shadow: var(--firefoxcss-search-box-shadow) !important;
fill: var(--firefoxcss-search-text-fill) !important;
transition: background-color 250ms ease, border-color 250ms ease,
fill 250ms ease !important;
padding-inline-start: 48px !important;
}
.icon.icon-settings.personalize-button {
color: var(--firefoxcss-settings-wheel-color) !important;
}
.icon.icon-settings.personalize-button:hover {
color: var(--firefoxcss-settings-wheel-color-hover) !important;
}
.body-wrapper .tile {
background-color: var(--firefoxcss-item-bg-color) !important;
border-top: 1px solid var(--firefoxcss-shortcut-item-top-border) !important;
box-shadow: var(--firefoxcss-shortcut-item-box-shadow) !important;
transition: background-color 250ms ease, border-color 250ms ease !important;
border-radius: 10px !important;
}
.body-wrapper .top-site-button:hover .tile {
/* background-color: rgba(230, 230, 230, 0.15) !important; */
background-color: var(--firefoxcss-item-hover-bg-color) !important;
border-top: 1px solid var(--firefoxcss-shortcut-item-top-border-hover) !important;
}
.body-wrapper .top-site-button:focus-visible .tile {
/* background-color: rgba(230, 230, 230, 0.15) !important; */
background-color: var(--firefoxcss-item-hover-bg-color) !important;
border-top: 1px solid var(--firefoxcss-shortcut-item-top-border-hover) !important;
outline: 1px solid #e3b686a3 !important;
}
#root .customize-menu {
background-image: var(--firefoxcss-customize-menu-bg-image) !important;
background-color: var(--firefoxcss-customize-menu) !important;
backdrop-filter: blur(24px) !important;
}
.home-section .section .selector {
background-color: var(--firefoxcss-customize-menu-dropdown) !important;
}
.top-sites-list:not(.dnd-active) .top-site-outer:hover:not(.active),
.top-site-outer .top-site-icon {
background-color: transparent !important;
}
.top-site-outer .search-topsite {
backdrop-filter: blur(8px) !important;
background-color: var(--firefoxcss-shortcut-search-icon-color) !important;
}
.search-wrapper input:focus {
color: var(--firefoxcss-input-focus) !important;
}
.top-site-outer .top-site-button .title {
opacity: 0.6 !important;
transition: opacity 0.4s !important;
}
.top-site-outer .top-site-button:hover .title {
opacity: 1 !important;
}
.top-site-outer .context-menu-button.icon:is(:active, :focus) {
fill: #f79743 !important;
background-color: transparent !important;
border: 0 !important;
}
.top-site-outer .context-menu-button {
fill: var(--firefoxcss-context-menu-three-dots) !important;
inset-inline-end: 2px !important;
}
.card-outer .context-menu-button.icon:is(:active, :focus) {
fill: #f79743 !important;
background-color: var(--firefoxcss-item-bg-color) !important;
border: 0 !important;
}
.card-outer .context-menu-button.icon {
background-color: var(--firefoxcss-item-bg-color) !important;
border: 0 !important;
}
.top-site-button .title.has-icon.pinned span .icon {
opacity: 0.6 !important;
display: none !important;
}
.top-site-button .title.has-icon.pinned span:hover .icon {
display: inline-block !important;
}
.top-sites-list:not(.dnd-active) .top-site-outer:is(.active, :focus) {
background-color: var(--firefoxcss-shortcut-item-active) !important;
}
.top-site-outer .context-menu,
.card-outer .context-menu {
background-image: var(--firefoxcss-customize-menu-bg-image) !important;
background-color: var(--firefoxcss-shortcut-item-context-menu) !important;
backdrop-filter: blur(32px) !important;
border: 1px solid var(--firefoxcss-shortcut-item-context-menu-border);
border-radius: 8px !important;
}
.top-site-outer .context-menu>ul>li.separator,
.card-outer .context-menu>ul>li.separator {
border-bottom: 1px solid var(--firefoxcss-shortcut-item-context-menu-separator) !important;
}
.search-wrapper .search-handoff-button input {
border-radius: 10px 10px 10px 10px !important;
}
.search-wrapper .search-handoff-button .fake-caret {
top: 13px !important;
/*18 default. calculate=18-((52px - min-height)/2) */
inset-inline-start: 48px !important;
}
.search-wrapper .logo-and-wordmark {
opacity: 0.9 !important;
order: 1 !important;
margin-bottom: 0 !important;
flex: 1 !important;
flex-basis: 20% !important;
}
.search-wrapper .logo-and-wordmark .logo {
background-size: 60px !important;
height: 60px !important;
width: 60px !important;
}
.search-wrapper .logo-and-wordmark .wordmark {
background-size: 132px !important;
height: 42px !important;
margin-inline-start: 12px !important;
width: 144px !important;
}
.outer-wrapper .search-wrapper {
padding: 0px !important;
display: flex !important;
flex-direction: row !important;
flex-wrap: wrap !important;
justify-content: center !important;
align-items: center !important;
align-content: space-around !important;
gap: 20px 10px !important;
}
.outer-wrapper .non-collapsible-section {
padding: 0 35px !important;
}
.body-wrapper .collapsible-section {
padding: 20px 25px !important;
}
.search-wrapper .search-handoff-button,
.search-wrapper input {
background-size: 20px !important;
}
.search-wrapper .search-inner-wrapper {
min-height: 42px !important;
/* 52px default */
order: 2 !important;
flex: 3 !important;
flex-basis: 60% !important;
top: 4px !important;
}
/* When there is overflow because of the height, search bar gets fixed position */
.outer-wrapper.fixed-search .search-wrapper {
backdrop-filter: blur(18px) !important;
gap: 0px 0px !important;
min-height: 60px !important;
}
body:not(.inline-onboarding) .fixed-search.visible-logo main {
padding-top: 0px !important;
}
.outer-wrapper.fixed-search .search-wrapper .search-inner-wrapper {
top: 0 !important;
}
.outer-wrapper.fixed-search .search-wrapper .search-inner-wrapper button.search-handoff-button {
backdrop-filter: blur(22px) !important;
background-color: var(--firefoxcss-extra-search-bar-when-scroll) !important;
box-shadow: none !important;
border: none !important;
margin: 0px 50px !important;
}
.search-wrapper .search-handoff-button .fake-textbox {
opacity: 0.5 !important;
color: var(--firefoxcss-search-bar-text-color) !important;
transition: opacity 0.4s !important;
}
.search-wrapper .search-handoff-button:active>.fake-textbox,
.search-wrapper .search-handoff-button:hover>.fake-textbox,
.search-wrapper .search-handoff-button:focus>.fake-textbox {
opacity: 0.8 !important;
}
.search-inner-wrapper:hover .search-handoff-button {
background-color: var(--firefoxcss-item-hover-bg-color) !important;
border-top: 1px solid var(--firefoxcss-shortcut-item-top-border-hover) !important;
fill: var(--firefoxcss-search-bar-fill-icon-hover) !important;
}
.collapsible-section .card-outer {
background-color: var(--firefoxcss-item-bg-color) !important;
}
.collapsible-section .card-outer .card-preview-image-outer {
background-color: var(--firefoxcss-item-hover-bg-color) !important;
}
.compact-cards .card-outer .card-context {
background-color: var(--firefoxcss-item-bg-color) !important;
}
@media only screen and (max-width: 609px) {
.ds-outer-wrapper-breakpoint-override main {
width: 386px !important;
}
}
@media only screen and (max-width: 385px) {
.search-wrapper .search-inner-wrapper .search-handoff-button {
padding-top: 4px !important;
padding-bottom: 6px !important;
}
.ds-outer-wrapper-breakpoint-override main {
width: 266px !important;
}
}
/*.outer-wrapper .search-wrapper .search-handoff-button {
background-image: url("ASSETS/icons/search-glass.svg") !important;
background-size: 16px !important;
}*/
}
@-moz-document url("about:firefoxview") {
body {
background-color: var(--firefoxcss-main-bg-color) !important;
max-width: 80rem !important;
}
body>main {
grid-template-columns: 1fr !important;
}
main aside.content-container {
display: none !important;
}
#colorways {
display: none !important;
}
#tabpickup-tabs-container #synced-tabs-placeholder {
background-color: var(--firefoxcss-item-bg-color) !important;
border-radius: 8px !important;
}
#collapsible-tabs-container .closed-tabs-list .closed-tab-li:hover {
background-color: var(--firefoxcss-item-hover-bg-color) !important;
border-radius: 4px !important;
}
}
@-moz-document url("about:blank") {
/* html:not(#ublock0-epicker),
html:not(#ublock0-epicker) body, */
#newtab-customize-overlay {
background-color: var(--firefoxcss-main-bg-color) !important;
}
}

469
nixos/opt/st/st.h Executable file
View file

@ -0,0 +1,469 @@
static char *font = "JetBrainsMono Nerd Font:pixelsize=12:antialias=true:autohint=true";
static int borderpx = 8;
/*
* What program is execed by st depends of these precedence rules:
* 1: program passed with -e
* 2: scroll and/or utmp
* 3: SHELL environment variable
* 4: value of shell in /etc/passwd
* 5: value of shell in config.h
*/
static char *shell = "/bin/zsh";
char *utmp = NULL;
/* scroll program: to enable use a string like "scroll" */
char *scroll = NULL;
char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400";
/* identification sequence returned in DA and DECID */
char *vtiden = "\033[?6c";
/* Kerning / character bounding-box multipliers */
static float cwscale = 1.0;
static float chscale = 1.0;
/*
* word delimiter string
*
* More advanced example: L" `'\"()[]{}"
*/
wchar_t *worddelimiters = L" ";
/* selection timeouts (in milliseconds) */
static unsigned int doubleclicktimeout = 300;
static unsigned int tripleclicktimeout = 600;
/* alt screens */
int allowaltscreen = 1;
/* allow certain non-interactive (insecure) window operations such as:
setting the clipboard text */
int allowwindowops = 0;
/*
* draw latency range in ms - from new content/keypress/etc until drawing.
* within this range, st draws when content stops arriving (idle). mostly it's
* near minlatency, but it waits longer for slow updates to avoid partial draw.
* low minlatency will tear/flicker more, as it can "detect" idle too early.
*/
static double minlatency = 2;
static double maxlatency = 33;
/*
* blinking timeout (set to 0 to disable blinking) for the terminal blinking
* attribute.
*/
static unsigned int blinktimeout = 800;
/*
* thickness of underline and bar cursors
*/
static unsigned int cursorthickness = 2;
/*
* bell volume. It must be a value between -100 and 100. Use 0 for disabling
* it
*/
static int bellvolume = 0;
/* default TERM value */
char *termname = "st-256color";
/*
* spaces per tab
*
* When you are changing this value, don't forget to adapt the »it« value in
* the st.info and appropriately install the st.info in the environment where
* you use this st version.
*
* it#$tabspaces,
*
* Secondly make sure your kernel is not expanding tabs. When running `stty
* -a` »tab0« should appear. You can tell the terminal to not expand tabs by
* running following command:
*
* stty tabs
*/
unsigned int tabspaces = 8;
/* Terminal colors (16 first used in escape sequence) */
static const char *colorname[] = {
/* 8 normal colors */
"black",
"red3",
"green3",
"yellow3",
"blue2",
"magenta3",
"cyan3",
"gray90",
/* 8 bright colors */
"gray50",
"red",
"green",
"yellow",
"#5c5cff",
"magenta",
"cyan",
"white",
[255] = 0,
"#191830",
"#FFF",
/* more colors can be added after 255 to use with DefaultXX */
"#cccccc",
"#555555",
"gray90", /* default foreground colour */
"black", /* default background colour */
};
/*
* Default colors (colorname index)
* foreground, background, cursor, reverse cursor
*/
unsigned int defaultfg = 257;
unsigned int defaultbg = 256;
unsigned int defaultcs = 257;
static unsigned int defaultrcs = 257;
/*
* Default shape of cursor
* 2: Block ("")
* 4: Underline ("_")
* 6: Bar ("|")
* 7: Snowman ("")
*/
static unsigned int cursorshape = 6;
/*
* Default columns and rows numbers
*/
static unsigned int cols = 80;
static unsigned int rows = 24;
/*
* Default colour and shape of the mouse cursor
*/
static unsigned int mouseshape = XC_xterm;
static unsigned int mousefg = 7;
static unsigned int mousebg = 0;
/*
* Color used to display font attributes when fontconfig selected a font which
* doesn't match the ones requested.
*/
static unsigned int defaultattr = 11;
/*
* Force mouse select/shortcuts while mask is active (when MODE_MOUSE is set).
* Note that if you want to use ShiftMask with selmasks, set this to an other
* modifier, set to 0 to not use it.
*/
static uint forcemousemod = ShiftMask;
/*
* Internal mouse shortcuts.
* Beware that overloading Button1 will disable the selection.
*/
static MouseShortcut mshortcuts[] = {
/* mask button function argument release */
{ XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 },
{ ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} },
{ XK_ANY_MOD, Button4, ttysend, {.s = "\031"} },
{ ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} },
{ XK_ANY_MOD, Button5, ttysend, {.s = "\005"} },
};
/* Internal keyboard shortcuts. */
#define MODKEY Mod1Mask
#define TERMMOD (ControlMask|ShiftMask)
static Shortcut shortcuts[] = {
/* mask keysym function argument */
{ XK_ANY_MOD, XK_Break, sendbreak, {.i = 0} },
{ ControlMask, XK_Print, toggleprinter, {.i = 0} },
{ ShiftMask, XK_Print, printscreen, {.i = 0} },
{ XK_ANY_MOD, XK_Print, printsel, {.i = 0} },
{ TERMMOD, XK_Prior, zoom, {.f = +1} },
{ TERMMOD, XK_Next, zoom, {.f = -1} },
{ TERMMOD, XK_Home, zoomreset, {.f = 0} },
{ TERMMOD, XK_C, clipcopy, {.i = 0} },
{ TERMMOD, XK_V, clippaste, {.i = 0} },
{ TERMMOD, XK_Y, selpaste, {.i = 0} },
{ ShiftMask, XK_Insert, selpaste, {.i = 0} },
{ TERMMOD, XK_Num_Lock, numlock, {.i = 0} },
};
/*
* Special keys (change & recompile st.info accordingly)
*
* Mask value:
* * Use XK_ANY_MOD to match the key no matter modifiers state
* * Use XK_NO_MOD to match the key alone (no modifiers)
* appkey value:
* * 0: no value
* * > 0: keypad application mode enabled
* * = 2: term.numlock = 1
* * < 0: keypad application mode disabled
* appcursor value:
* * 0: no value
* * > 0: cursor application mode enabled
* * < 0: cursor application mode disabled
*
* Be careful with the order of the definitions because st searches in
* this table sequentially, so any XK_ANY_MOD must be in the last
* position for a key.
*/
/*
* If you want keys other than the X11 function keys (0xFD00 - 0xFFFF)
* to be mapped below, add them to this array.
*/
static KeySym mappedkeys[] = { -1 };
/*
* State bits to ignore when matching key or button events. By default,
* numlock (Mod2Mask) and keyboard layout (XK_SWITCH_MOD) are ignored.
*/
static uint ignoremod = Mod2Mask|XK_SWITCH_MOD;
/*
* This is the huge key array which defines all compatibility to the Linux
* world. Please decide about changes wisely.
*/
static Key key[] = {
/* keysym mask string appkey appcursor */
{ XK_KP_Home, ShiftMask, "\033[2J", 0, -1},
{ XK_KP_Home, ShiftMask, "\033[1;2H", 0, +1},
{ XK_KP_Home, XK_ANY_MOD, "\033[H", 0, -1},
{ XK_KP_Home, XK_ANY_MOD, "\033[1~", 0, +1},
{ XK_KP_Up, XK_ANY_MOD, "\033Ox", +1, 0},
{ XK_KP_Up, XK_ANY_MOD, "\033[A", 0, -1},
{ XK_KP_Up, XK_ANY_MOD, "\033OA", 0, +1},
{ XK_KP_Down, XK_ANY_MOD, "\033Or", +1, 0},
{ XK_KP_Down, XK_ANY_MOD, "\033[B", 0, -1},
{ XK_KP_Down, XK_ANY_MOD, "\033OB", 0, +1},
{ XK_KP_Left, XK_ANY_MOD, "\033Ot", +1, 0},
{ XK_KP_Left, XK_ANY_MOD, "\033[D", 0, -1},
{ XK_KP_Left, XK_ANY_MOD, "\033OD", 0, +1},
{ XK_KP_Right, XK_ANY_MOD, "\033Ov", +1, 0},
{ XK_KP_Right, XK_ANY_MOD, "\033[C", 0, -1},
{ XK_KP_Right, XK_ANY_MOD, "\033OC", 0, +1},
{ XK_KP_Prior, ShiftMask, "\033[5;2~", 0, 0},
{ XK_KP_Prior, XK_ANY_MOD, "\033[5~", 0, 0},
{ XK_KP_Begin, XK_ANY_MOD, "\033[E", 0, 0},
{ XK_KP_End, ControlMask, "\033[J", -1, 0},
{ XK_KP_End, ControlMask, "\033[1;5F", +1, 0},
{ XK_KP_End, ShiftMask, "\033[K", -1, 0},
{ XK_KP_End, ShiftMask, "\033[1;2F", +1, 0},
{ XK_KP_End, XK_ANY_MOD, "\033[4~", 0, 0},
{ XK_KP_Next, ShiftMask, "\033[6;2~", 0, 0},
{ XK_KP_Next, XK_ANY_MOD, "\033[6~", 0, 0},
{ XK_KP_Insert, ShiftMask, "\033[2;2~", +1, 0},
{ XK_KP_Insert, ShiftMask, "\033[4l", -1, 0},
{ XK_KP_Insert, ControlMask, "\033[L", -1, 0},
{ XK_KP_Insert, ControlMask, "\033[2;5~", +1, 0},
{ XK_KP_Insert, XK_ANY_MOD, "\033[4h", -1, 0},
{ XK_KP_Insert, XK_ANY_MOD, "\033[2~", +1, 0},
{ XK_KP_Delete, ControlMask, "\033[M", -1, 0},
{ XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0},
{ XK_KP_Delete, ShiftMask, "\033[2K", -1, 0},
{ XK_KP_Delete, ShiftMask, "\033[3;2~", +1, 0},
{ XK_KP_Delete, XK_ANY_MOD, "\033[P", -1, 0},
{ XK_KP_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
{ XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0},
{ XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\033OM", +2, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\r", -1, 0},
{ XK_KP_Subtract, XK_ANY_MOD, "\033Om", +2, 0},
{ XK_KP_Decimal, XK_ANY_MOD, "\033On", +2, 0},
{ XK_KP_Divide, XK_ANY_MOD, "\033Oo", +2, 0},
{ XK_KP_0, XK_ANY_MOD, "\033Op", +2, 0},
{ XK_KP_1, XK_ANY_MOD, "\033Oq", +2, 0},
{ XK_KP_2, XK_ANY_MOD, "\033Or", +2, 0},
{ XK_KP_3, XK_ANY_MOD, "\033Os", +2, 0},
{ XK_KP_4, XK_ANY_MOD, "\033Ot", +2, 0},
{ XK_KP_5, XK_ANY_MOD, "\033Ou", +2, 0},
{ XK_KP_6, XK_ANY_MOD, "\033Ov", +2, 0},
{ XK_KP_7, XK_ANY_MOD, "\033Ow", +2, 0},
{ XK_KP_8, XK_ANY_MOD, "\033Ox", +2, 0},
{ XK_KP_9, XK_ANY_MOD, "\033Oy", +2, 0},
{ XK_Up, ShiftMask, "\033[1;2A", 0, 0},
{ XK_Up, Mod1Mask, "\033[1;3A", 0, 0},
{ XK_Up, ShiftMask|Mod1Mask,"\033[1;4A", 0, 0},
{ XK_Up, ControlMask, "\033[1;5A", 0, 0},
{ XK_Up, ShiftMask|ControlMask,"\033[1;6A", 0, 0},
{ XK_Up, ControlMask|Mod1Mask,"\033[1;7A", 0, 0},
{ XK_Up,ShiftMask|ControlMask|Mod1Mask,"\033[1;8A", 0, 0},
{ XK_Up, XK_ANY_MOD, "\033[A", 0, -1},
{ XK_Up, XK_ANY_MOD, "\033OA", 0, +1},
{ XK_Down, ShiftMask, "\033[1;2B", 0, 0},
{ XK_Down, Mod1Mask, "\033[1;3B", 0, 0},
{ XK_Down, ShiftMask|Mod1Mask,"\033[1;4B", 0, 0},
{ XK_Down, ControlMask, "\033[1;5B", 0, 0},
{ XK_Down, ShiftMask|ControlMask,"\033[1;6B", 0, 0},
{ XK_Down, ControlMask|Mod1Mask,"\033[1;7B", 0, 0},
{ XK_Down,ShiftMask|ControlMask|Mod1Mask,"\033[1;8B",0, 0},
{ XK_Down, XK_ANY_MOD, "\033[B", 0, -1},
{ XK_Down, XK_ANY_MOD, "\033OB", 0, +1},
{ XK_Left, ShiftMask, "\033[1;2D", 0, 0},
{ XK_Left, Mod1Mask, "\033[1;3D", 0, 0},
{ XK_Left, ShiftMask|Mod1Mask,"\033[1;4D", 0, 0},
{ XK_Left, ControlMask, "\033[1;5D", 0, 0},
{ XK_Left, ShiftMask|ControlMask,"\033[1;6D", 0, 0},
{ XK_Left, ControlMask|Mod1Mask,"\033[1;7D", 0, 0},
{ XK_Left,ShiftMask|ControlMask|Mod1Mask,"\033[1;8D",0, 0},
{ XK_Left, XK_ANY_MOD, "\033[D", 0, -1},
{ XK_Left, XK_ANY_MOD, "\033OD", 0, +1},
{ XK_Right, ShiftMask, "\033[1;2C", 0, 0},
{ XK_Right, Mod1Mask, "\033[1;3C", 0, 0},
{ XK_Right, ShiftMask|Mod1Mask,"\033[1;4C", 0, 0},
{ XK_Right, ControlMask, "\033[1;5C", 0, 0},
{ XK_Right, ShiftMask|ControlMask,"\033[1;6C", 0, 0},
{ XK_Right, ControlMask|Mod1Mask,"\033[1;7C", 0, 0},
{ XK_Right,ShiftMask|ControlMask|Mod1Mask,"\033[1;8C",0, 0},
{ XK_Right, XK_ANY_MOD, "\033[C", 0, -1},
{ XK_Right, XK_ANY_MOD, "\033OC", 0, +1},
{ XK_ISO_Left_Tab, ShiftMask, "\033[Z", 0, 0},
{ XK_Return, Mod1Mask, "\033\r", 0, 0},
{ XK_Return, XK_ANY_MOD, "\r", 0, 0},
{ XK_Insert, ShiftMask, "\033[4l", -1, 0},
{ XK_Insert, ShiftMask, "\033[2;2~", +1, 0},
{ XK_Insert, ControlMask, "\033[L", -1, 0},
{ XK_Insert, ControlMask, "\033[2;5~", +1, 0},
{ XK_Insert, XK_ANY_MOD, "\033[4h", -1, 0},
{ XK_Insert, XK_ANY_MOD, "\033[2~", +1, 0},
{ XK_Delete, ControlMask, "\033[M", -1, 0},
{ XK_Delete, ControlMask, "\033[3;5~", +1, 0},
{ XK_Delete, ShiftMask, "\033[2K", -1, 0},
{ XK_Delete, ShiftMask, "\033[3;2~", +1, 0},
{ XK_Delete, XK_ANY_MOD, "\033[P", -1, 0},
{ XK_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
{ XK_BackSpace, XK_NO_MOD, "\177", 0, 0},
{ XK_BackSpace, Mod1Mask, "\033\177", 0, 0},
{ XK_Home, ShiftMask, "\033[2J", 0, -1},
{ XK_Home, ShiftMask, "\033[1;2H", 0, +1},
{ XK_Home, XK_ANY_MOD, "\033[H", 0, -1},
{ XK_Home, XK_ANY_MOD, "\033[1~", 0, +1},
{ XK_End, ControlMask, "\033[J", -1, 0},
{ XK_End, ControlMask, "\033[1;5F", +1, 0},
{ XK_End, ShiftMask, "\033[K", -1, 0},
{ XK_End, ShiftMask, "\033[1;2F", +1, 0},
{ XK_End, XK_ANY_MOD, "\033[4~", 0, 0},
{ XK_Prior, ControlMask, "\033[5;5~", 0, 0},
{ XK_Prior, ShiftMask, "\033[5;2~", 0, 0},
{ XK_Prior, XK_ANY_MOD, "\033[5~", 0, 0},
{ XK_Next, ControlMask, "\033[6;5~", 0, 0},
{ XK_Next, ShiftMask, "\033[6;2~", 0, 0},
{ XK_Next, XK_ANY_MOD, "\033[6~", 0, 0},
{ XK_F1, XK_NO_MOD, "\033OP" , 0, 0},
{ XK_F1, /* F13 */ ShiftMask, "\033[1;2P", 0, 0},
{ XK_F1, /* F25 */ ControlMask, "\033[1;5P", 0, 0},
{ XK_F1, /* F37 */ Mod4Mask, "\033[1;6P", 0, 0},
{ XK_F1, /* F49 */ Mod1Mask, "\033[1;3P", 0, 0},
{ XK_F1, /* F61 */ Mod3Mask, "\033[1;4P", 0, 0},
{ XK_F2, XK_NO_MOD, "\033OQ" , 0, 0},
{ XK_F2, /* F14 */ ShiftMask, "\033[1;2Q", 0, 0},
{ XK_F2, /* F26 */ ControlMask, "\033[1;5Q", 0, 0},
{ XK_F2, /* F38 */ Mod4Mask, "\033[1;6Q", 0, 0},
{ XK_F2, /* F50 */ Mod1Mask, "\033[1;3Q", 0, 0},
{ XK_F2, /* F62 */ Mod3Mask, "\033[1;4Q", 0, 0},
{ XK_F3, XK_NO_MOD, "\033OR" , 0, 0},
{ XK_F3, /* F15 */ ShiftMask, "\033[1;2R", 0, 0},
{ XK_F3, /* F27 */ ControlMask, "\033[1;5R", 0, 0},
{ XK_F3, /* F39 */ Mod4Mask, "\033[1;6R", 0, 0},
{ XK_F3, /* F51 */ Mod1Mask, "\033[1;3R", 0, 0},
{ XK_F3, /* F63 */ Mod3Mask, "\033[1;4R", 0, 0},
{ XK_F4, XK_NO_MOD, "\033OS" , 0, 0},
{ XK_F4, /* F16 */ ShiftMask, "\033[1;2S", 0, 0},
{ XK_F4, /* F28 */ ControlMask, "\033[1;5S", 0, 0},
{ XK_F4, /* F40 */ Mod4Mask, "\033[1;6S", 0, 0},
{ XK_F4, /* F52 */ Mod1Mask, "\033[1;3S", 0, 0},
{ XK_F5, XK_NO_MOD, "\033[15~", 0, 0},
{ XK_F5, /* F17 */ ShiftMask, "\033[15;2~", 0, 0},
{ XK_F5, /* F29 */ ControlMask, "\033[15;5~", 0, 0},
{ XK_F5, /* F41 */ Mod4Mask, "\033[15;6~", 0, 0},
{ XK_F5, /* F53 */ Mod1Mask, "\033[15;3~", 0, 0},
{ XK_F6, XK_NO_MOD, "\033[17~", 0, 0},
{ XK_F6, /* F18 */ ShiftMask, "\033[17;2~", 0, 0},
{ XK_F6, /* F30 */ ControlMask, "\033[17;5~", 0, 0},
{ XK_F6, /* F42 */ Mod4Mask, "\033[17;6~", 0, 0},
{ XK_F6, /* F54 */ Mod1Mask, "\033[17;3~", 0, 0},
{ XK_F7, XK_NO_MOD, "\033[18~", 0, 0},
{ XK_F7, /* F19 */ ShiftMask, "\033[18;2~", 0, 0},
{ XK_F7, /* F31 */ ControlMask, "\033[18;5~", 0, 0},
{ XK_F7, /* F43 */ Mod4Mask, "\033[18;6~", 0, 0},
{ XK_F7, /* F55 */ Mod1Mask, "\033[18;3~", 0, 0},
{ XK_F8, XK_NO_MOD, "\033[19~", 0, 0},
{ XK_F8, /* F20 */ ShiftMask, "\033[19;2~", 0, 0},
{ XK_F8, /* F32 */ ControlMask, "\033[19;5~", 0, 0},
{ XK_F8, /* F44 */ Mod4Mask, "\033[19;6~", 0, 0},
{ XK_F8, /* F56 */ Mod1Mask, "\033[19;3~", 0, 0},
{ XK_F9, XK_NO_MOD, "\033[20~", 0, 0},
{ XK_F9, /* F21 */ ShiftMask, "\033[20;2~", 0, 0},
{ XK_F9, /* F33 */ ControlMask, "\033[20;5~", 0, 0},
{ XK_F9, /* F45 */ Mod4Mask, "\033[20;6~", 0, 0},
{ XK_F9, /* F57 */ Mod1Mask, "\033[20;3~", 0, 0},
{ XK_F10, XK_NO_MOD, "\033[21~", 0, 0},
{ XK_F10, /* F22 */ ShiftMask, "\033[21;2~", 0, 0},
{ XK_F10, /* F34 */ ControlMask, "\033[21;5~", 0, 0},
{ XK_F10, /* F46 */ Mod4Mask, "\033[21;6~", 0, 0},
{ XK_F10, /* F58 */ Mod1Mask, "\033[21;3~", 0, 0},
{ XK_F11, XK_NO_MOD, "\033[23~", 0, 0},
{ XK_F11, /* F23 */ ShiftMask, "\033[23;2~", 0, 0},
{ XK_F11, /* F35 */ ControlMask, "\033[23;5~", 0, 0},
{ XK_F11, /* F47 */ Mod4Mask, "\033[23;6~", 0, 0},
{ XK_F11, /* F59 */ Mod1Mask, "\033[23;3~", 0, 0},
{ XK_F12, XK_NO_MOD, "\033[24~", 0, 0},
{ XK_F12, /* F24 */ ShiftMask, "\033[24;2~", 0, 0},
{ XK_F12, /* F36 */ ControlMask, "\033[24;5~", 0, 0},
{ XK_F12, /* F48 */ Mod4Mask, "\033[24;6~", 0, 0},
{ XK_F12, /* F60 */ Mod1Mask, "\033[24;3~", 0, 0},
{ XK_F13, XK_NO_MOD, "\033[1;2P", 0, 0},
{ XK_F14, XK_NO_MOD, "\033[1;2Q", 0, 0},
{ XK_F15, XK_NO_MOD, "\033[1;2R", 0, 0},
{ XK_F16, XK_NO_MOD, "\033[1;2S", 0, 0},
{ XK_F17, XK_NO_MOD, "\033[15;2~", 0, 0},
{ XK_F18, XK_NO_MOD, "\033[17;2~", 0, 0},
{ XK_F19, XK_NO_MOD, "\033[18;2~", 0, 0},
{ XK_F20, XK_NO_MOD, "\033[19;2~", 0, 0},
{ XK_F21, XK_NO_MOD, "\033[20;2~", 0, 0},
{ XK_F22, XK_NO_MOD, "\033[21;2~", 0, 0},
{ XK_F23, XK_NO_MOD, "\033[23;2~", 0, 0},
{ XK_F24, XK_NO_MOD, "\033[24;2~", 0, 0},
{ XK_F25, XK_NO_MOD, "\033[1;5P", 0, 0},
{ XK_F26, XK_NO_MOD, "\033[1;5Q", 0, 0},
{ XK_F27, XK_NO_MOD, "\033[1;5R", 0, 0},
{ XK_F28, XK_NO_MOD, "\033[1;5S", 0, 0},
{ XK_F29, XK_NO_MOD, "\033[15;5~", 0, 0},
{ XK_F30, XK_NO_MOD, "\033[17;5~", 0, 0},
{ XK_F31, XK_NO_MOD, "\033[18;5~", 0, 0},
{ XK_F32, XK_NO_MOD, "\033[19;5~", 0, 0},
{ XK_F33, XK_NO_MOD, "\033[20;5~", 0, 0},
{ XK_F34, XK_NO_MOD, "\033[21;5~", 0, 0},
{ XK_F35, XK_NO_MOD, "\033[23;5~", 0, 0},
};
/*
* Selection types' masks.
* Use the same masks as usual.
* Button1Mask is always unset, to make masks match between ButtonPress.
* ButtonRelease and MotionNotify.
* If no match is found, regular selection is used.
*/
static uint selmasks[] = {
[SEL_RECTANGULAR] = Mod1Mask,
};
/*
* Printable characters in ASCII, used to estimate the advance width
* of single wide characters.
*/
static char ascii_printable[] =
" !\"#$%&'()*+,-./0123456789:;<=>?"
"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"
"`abcdefghijklmnopqrstuvwxyz{|}~";

23
nixos/system/cursor.nix Executable file
View file

@ -0,0 +1,23 @@
{ pkgs, ... }: {
home.pointerCursor =
let
getFrom = url: hash: name: {
gtk.enable = true;
x11.enable = true;
name = name;
size = 48;
package =
pkgs.runCommand "moveUp" { } ''
mkdir -p $out/share/icons
ln -s ${pkgs.fetchzip {
url = url;
hash = hash;
}} $out/share/icons/${name}
'';
};
in
getFrom
"https://github.com/ful1e5/fuchsia-cursor/releases/download/v2.0.0/Fuchsia-Pop.tar.gz"
"sha256-BvVE9qupMjw7JRqFUj1J0a4ys6kc9fOLBPx2bGaapTk="
"Fuchsia-Pop";
}

23
nixos/system/display.nix Executable file
View file

@ -0,0 +1,23 @@
{ pkgs, ... }: {
services.xserver = {
enable = true;
desktopManager = {
xterm.enable = false;
};
displayManager.sddm = {
enable = true;
};
windowManager.i3 = {
enable = true;
};
excludePackages = [
pkgs.xterm
];
layout = "us";
xkbVariant = "";
};
}

View file

@ -0,0 +1,40 @@
{ pkgs
, config
, ...
}:
let
# nvidia package to patch
package = config.boot.kernelPackages.nvidiaPackages.stable;
in
{
hardware.opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
};
# TODO fix hybrid optimus shit mode... add "intel" for inner display to work
services.xserver.videoDrivers = [ "nvidia" "intel" ];
nixpkgs.config.cudaSupport = true;
hardware.nvidia = {
modesetting.enable = true;
prime =
{
sync.enable = false;
nvidiaBusId = "PCI:1:0:0";
intelBusId = "PCI:0:2:0";
};
powerManagement.enable = false;
powerManagement.finegrained = false;
open = false;
nvidiaSettings = true;
package = pkgs.nvidia-patch.patch-nvenc (pkgs.nvidia-patch.patch-fbc package);
#package = config.boot.kernelPackages.nvidiaPackages.stable;
};
}

16
nixos/system/essentials.nix Executable file
View file

@ -0,0 +1,16 @@
{ pkgs, config, ... }:
{
environment.systemPackages = with pkgs; [
busybox
doas
blueman
# for monitoring cpu and other temps
lm_sensors
];
hardware.bluetooth.enable = true; # enables support for Bluetooth
hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot
}

8
nixos/system/remap.nix Executable file
View file

@ -0,0 +1,8 @@
{ pkgs, config, ... }: {
services.input-remapper.enable = true;
environment.systemPackages = [
pkgs.input-remapper
];
}

20
nixos/system/security.nix Executable file
View file

@ -0,0 +1,20 @@
{ pkgs, config, systemd, ... }:
{
# enabling firejail for sandboxing
programs.firejail = {
enable = true;
};
# enabling doas
security.doas.enable = true;
security.sudo.enable = false;
security.doas.extraRules = [{
users = [ "grape" ];
keepEnv = true;
persist = true;
}];
# setting up a polkit
security.polkit.enable = true;
}

56
nixos/system/shell.nix Executable file
View file

@ -0,0 +1,56 @@
{ pkgs, ... }: {
# setting zsh as default shell
users.users.grape.shell = pkgs.zsh;
programs.zsh.enable = true;
home-manager.users.grape = {
programs.zsh = {
enable = true;
shellAliases = {
# essentials
la = "ls -a";
sudo = "doas";
update = "doas nixos-rebuild switch";
# docker
dc = "docker compose";
dco = "docker container";
dn = "docker network";
dv = "docker volume";
code = "codium";
#nix
garbage = "nix-collect-garbage -d";
# other
sget = "yt-dlp -x --audio-format flac --embed-metadata --add-metadata '$1'";
# productivity
# time tracking
timewastedon = "timew summary :year";
tt = "timew start";
ts = "timew stop";
};
initExtra = ''
PROMPT="[%M] %~ "
'';
sessionVariables = {
EDITOR = "nvim";
};
zplug = {
enable = true;
plugins = [
{ name = "marlonrichert/zsh-autocomplete"; }
{ name = "zsh-users/zsh-syntax-highlighting"; }
];
};
};
};
}

19
nixos/system/sound.nix Executable file
View file

@ -0,0 +1,19 @@
{ pkgs, config, ... }: {
# Enable sound with pipewire.
environment.systemPackages = with pkgs; [
pulseaudio
pavucontrol
];
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = false;
pulse.enable = true;
};
}

3
readme.md Normal file
View file

@ -0,0 +1,3 @@
### My nixos rice
![](./rice.png)

BIN
rice.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB