created files
This commit is contained in:
commit
79cbf5400e
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
nixos/hardware-configuration.nix
|
14
nixos/apps/communication.nix
Executable file
14
nixos/apps/communication.nix
Executable 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
1
nixos/apps/firefox.nix
Executable file
|
@ -0,0 +1 @@
|
||||||
|
|
8
nixos/apps/keepassxc.nix
Executable file
8
nixos/apps/keepassxc.nix
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
keepassxc
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
9
nixos/apps/music.nix
Executable file
9
nixos/apps/music.nix
Executable 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
8
nixos/apps/office.nix
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
libreoffice
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
9
nixos/apps/prod.nix
Executable file
9
nixos/apps/prod.nix
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
{ pkgs, config, ... }: {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
taskwarrior
|
||||||
|
timewarrior
|
||||||
|
logseq
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
8
nixos/apps/syncthing.nix
Executable file
8
nixos/apps/syncthing.nix
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
{ pkgs, ... }: {
|
||||||
|
services.syncthing = {
|
||||||
|
enable = true;
|
||||||
|
user = "grape";
|
||||||
|
dataDir = "/home/grape/Documents";
|
||||||
|
configDir = "/home/grape/.syncthing";
|
||||||
|
};
|
||||||
|
}
|
18
nixos/configs/alacritty.nix
Normal file
18
nixos/configs/alacritty.nix
Normal 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
7
nixos/configs/btop.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{ pkgs, ... }: {
|
||||||
|
home-manager.users.grape = {
|
||||||
|
programs.btop.settings = {
|
||||||
|
theme_background = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
19
nixos/configs/colors.nix
Executable file
19
nixos/configs/colors.nix
Executable 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
108
nixos/configs/firefox.nix
Normal 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
16
nixos/configs/gpu-screen-recorder.nix
Normal file
16
nixos/configs/gpu-screen-recorder.nix
Normal 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
100
nixos/configs/i3.nix
Executable 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
16
nixos/configs/kitty.nix
Normal 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
9
nixos/configs/ollama.nix
Normal 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
76
nixos/configs/picom.nix
Executable 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
252
nixos/configs/polybar.nix
Executable 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
9
nixos/configs/rofi.nix
Executable 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
14
nixos/configs/st.nix
Normal 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
72
nixos/configs/vscode.nix
Normal 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
105
nixos/configuration.nix
Executable 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
68
nixos/desktop.nix
Executable 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
29
nixos/dev.nix
Executable 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
120
nixos/flake.lock
Executable 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
55
nixos/flake.nix
Executable 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
43
nixos/gaming.nix
Executable 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
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
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
532
nixos/opt/firefox/userContent.css
Executable 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
469
nixos/opt/st/st.h
Executable 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
23
nixos/system/cursor.nix
Executable 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
23
nixos/system/display.nix
Executable 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 = "";
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
40
nixos/system/drivers/shitvidia-patch.nix
Executable file
40
nixos/system/drivers/shitvidia-patch.nix
Executable 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
16
nixos/system/essentials.nix
Executable 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
8
nixos/system/remap.nix
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
{ pkgs, config, ... }: {
|
||||||
|
|
||||||
|
services.input-remapper.enable = true;
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.input-remapper
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
20
nixos/system/security.nix
Executable file
20
nixos/system/security.nix
Executable 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
56
nixos/system/shell.nix
Executable 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
19
nixos/system/sound.nix
Executable 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;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue