init
This commit is contained in:
118
nix/home-manager/progs/alacritty.nix
Normal file
118
nix/home-manager/progs/alacritty.nix
Normal file
@@ -0,0 +1,118 @@
|
||||
{ pkgs }:
|
||||
{
|
||||
#use the fish shell
|
||||
shell.program = "${pkgs.fish}/bin/fish";
|
||||
|
||||
#some programs can't handle alacritty
|
||||
env.TERM = "xterm-256color";
|
||||
|
||||
window = {
|
||||
#using a window manager, no decorations needed
|
||||
decorations = "none";
|
||||
|
||||
#semi-transparent
|
||||
opacity = 0.95;
|
||||
|
||||
#pading between the content of the terminal and the edge
|
||||
padding = {
|
||||
x = 10;
|
||||
y = 10;
|
||||
};
|
||||
|
||||
dimensions = {
|
||||
columns = 80;
|
||||
lines = 40;
|
||||
};
|
||||
};
|
||||
|
||||
scrolling = {
|
||||
history = 1000;
|
||||
multiplier = 3;
|
||||
};
|
||||
|
||||
font =
|
||||
let
|
||||
baseFont = {
|
||||
family = "JetBrains Mono Nerd Font";
|
||||
style = "Regular";
|
||||
};
|
||||
in
|
||||
{
|
||||
size = 12;
|
||||
|
||||
normal = baseFont;
|
||||
|
||||
bold = baseFont // {
|
||||
style = "Bold";
|
||||
};
|
||||
|
||||
italic = baseFont // {
|
||||
style = "Italic";
|
||||
};
|
||||
|
||||
offset.y = 0;
|
||||
glyph_offset.y = 0;
|
||||
};
|
||||
|
||||
#color scheme
|
||||
colors = {
|
||||
primary = {
|
||||
background = "0x131621";
|
||||
foreground = "0xa6accd";
|
||||
};
|
||||
|
||||
cursor = {
|
||||
text = "CellBackground";
|
||||
cursor = "CellForeground";
|
||||
};
|
||||
|
||||
search = {
|
||||
matches = {
|
||||
foreground = "0x1b1e28";
|
||||
background = "0xadd7ff";
|
||||
};
|
||||
|
||||
focused_match = {
|
||||
foreground = "0x1b1e28";
|
||||
background = "0xadd7ff";
|
||||
};
|
||||
};
|
||||
|
||||
selection = {
|
||||
text = "CellForeground";
|
||||
background = "0x303340";
|
||||
};
|
||||
|
||||
vi_mode_cursor = {
|
||||
text = "CellBackground";
|
||||
cursor = "CellForeground";
|
||||
};
|
||||
|
||||
normal = {
|
||||
black = "0x1b1e28";
|
||||
red = "0xd0679d";
|
||||
green = "0x5de4c7";
|
||||
yellow = "0xfffac2";
|
||||
blue = "#435c89";
|
||||
magenta = "0xfcc5e9";
|
||||
cyan = "0xadd7ff";
|
||||
white = "0xffffff";
|
||||
};
|
||||
|
||||
bright = {
|
||||
black = "0xa6accd";
|
||||
red = "0xd0679d";
|
||||
green = "0x5de4c7";
|
||||
yellow = "0xfffac2";
|
||||
blue = "0xadd7ff";
|
||||
magenta = "0xfae4fc";
|
||||
cyan = "0x89ddff";
|
||||
white = "0xffffff";
|
||||
};
|
||||
};
|
||||
|
||||
cursor = {
|
||||
style = "Underline";
|
||||
vi_mode_style = "Underline";
|
||||
};
|
||||
}
|
||||
39
nix/home-manager/progs/borg.nix
Normal file
39
nix/home-manager/progs/borg.nix
Normal file
@@ -0,0 +1,39 @@
|
||||
{ homeDirectory }:
|
||||
{
|
||||
home = {
|
||||
location = {
|
||||
sourceDirectories = [
|
||||
"/etc/nixos"
|
||||
"${homeDirectory}/.librewolf"
|
||||
"${homeDirectory}/dotfiles"
|
||||
"${homeDirectory}/.config/home-manager"
|
||||
"${homeDirectory}/.config/Signal"
|
||||
"${homeDirectory}/Documents"
|
||||
"${homeDirectory}/projects"
|
||||
"${homeDirectory}/Pictures"
|
||||
"${homeDirectory}/school"
|
||||
"${homeDirectory}/.wallpaper.png"
|
||||
"${homeDirectory}/.ssh"
|
||||
"${homeDirectory}/justfile"
|
||||
"${homeDirectory}/.local/share/fish"
|
||||
"${homeDirectory}/.gnupg"
|
||||
];
|
||||
excludeHomeManagerSymlinks = true;
|
||||
|
||||
repositories = [ "ssh://server-public/mnt/bak/laptop" ];
|
||||
};
|
||||
|
||||
retention = {
|
||||
keepHourly = 48;
|
||||
keepDaily = 30;
|
||||
keepWeekly = 26;
|
||||
keepMonthly = 24;
|
||||
keepYearly = 10;
|
||||
};
|
||||
|
||||
storage = {
|
||||
#super secret password location (maybe I should find a way to store secrets properly)
|
||||
encryptionPasscommand = "cat ${homeDirectory}/Documents/secrets/borg_bak_pass";
|
||||
};
|
||||
};
|
||||
}
|
||||
57
nix/home-manager/progs/fish.nix
Normal file
57
nix/home-manager/progs/fish.nix
Normal file
@@ -0,0 +1,57 @@
|
||||
{ pkgs }:
|
||||
{
|
||||
enable = true;
|
||||
|
||||
interactiveShellInit = ''
|
||||
#disable greeting
|
||||
set fish_greeting
|
||||
|
||||
#fixes gnupg password entry
|
||||
export GPG_TTY=(${pkgs.coreutils}/bin/tty)
|
||||
|
||||
#pfetch on shell start
|
||||
PF_INFO="ascii title os host kernel uptime memory editor wm" ${pkgs.pfetch-rs}/bin/pfetch
|
||||
'';
|
||||
|
||||
shellAliases = {
|
||||
c = "${pkgs.cargo}/bin/cargo";
|
||||
cr = "${pkgs.cargo}/bin/cargo run";
|
||||
cb = "${pkgs.cargo}/bin/cargo build";
|
||||
|
||||
# from DistroTube's dot files: Changing "ls" to "eza"
|
||||
ls = "${pkgs.eza}/bin/eza -al --color=always --group-directories-first";
|
||||
la = "${pkgs.eza}/bin/eza -a --color=always --group-directories-first";
|
||||
ll = "${pkgs.eza}/bin/eza -l --color=always --group-directories-first";
|
||||
lt = "${pkgs.eza}/bin/eza -aT --color=always --group-directories-first";
|
||||
|
||||
# gets the largest files in a git repo's history
|
||||
"git-size" = ''
|
||||
${pkgs.git}/bin/git rev-list --objects --all |
|
||||
${pkgs.git}/bin/git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' |
|
||||
${pkgs.gnused}/bin/sed -n 's/^blob //p' |
|
||||
${pkgs.coreutils}/bin/sort --numeric-sort --key=2 |
|
||||
${pkgs.coreutils}/bin/cut -c 1-12,41- |
|
||||
${pkgs.coreutils}/bin/numfmt --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest'';
|
||||
|
||||
#aliases for (I think) macos commands
|
||||
pbcopy = "${pkgs.wl-clipboard}/bin/wl-copy";
|
||||
pbpaste = "${pkgs.wl-clipboard}/bin/wl-paste";
|
||||
};
|
||||
|
||||
shellInit = ''
|
||||
fish_add_path ~/.local/bin
|
||||
fish_add_path ~/.cargo/bin
|
||||
set hydro_color_pwd 62A
|
||||
set hydro_color_error red
|
||||
set hydro_color_duration yellow
|
||||
set hydro_color_prompt green
|
||||
set hydro_color_git blue
|
||||
'';
|
||||
|
||||
plugins = [
|
||||
{
|
||||
name = "hydro";
|
||||
src = pkgs.fishPlugins.hydro.src;
|
||||
}
|
||||
];
|
||||
}
|
||||
288
nix/home-manager/progs/helix.nix
Normal file
288
nix/home-manager/progs/helix.nix
Normal file
@@ -0,0 +1,288 @@
|
||||
{ pkgs }:
|
||||
{
|
||||
enable = true;
|
||||
package = pkgs.helix;
|
||||
settings = {
|
||||
theme = "my_theme";
|
||||
editor = {
|
||||
cursor-shape = {
|
||||
insert = "bar";
|
||||
normal = "block";
|
||||
select = "underline";
|
||||
};
|
||||
|
||||
file-picker = {
|
||||
hidden = false;
|
||||
};
|
||||
|
||||
#wrapping!!
|
||||
soft-wrap.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
languages = {
|
||||
language = [
|
||||
{
|
||||
name = "rust";
|
||||
auto-format = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
themes = {
|
||||
#modified fleet_dark theme
|
||||
my_theme =
|
||||
let
|
||||
white = "#ffffff";
|
||||
gray-120 = "#d1d1d1";
|
||||
gray-110 = "#c2c2c2";
|
||||
gray-100 = "#a0a0a0";
|
||||
gray-90 = "#898989";
|
||||
gray-80 = "#767676";
|
||||
gray-70 = "#5d5d5d";
|
||||
gray-60 = "#484848";
|
||||
gray-50 = "#383838";
|
||||
gray-40 = "#333333";
|
||||
gray-30 = "#2d2d2d";
|
||||
gray-20 = "#292929";
|
||||
gray-15 = "#1F1F1F";
|
||||
gray-10 = "#181818";
|
||||
black = "#000000";
|
||||
blue-110 = "#6daaf7";
|
||||
blue-100 = "#4d9bf8";
|
||||
blue-90 = "#3691f9";
|
||||
blue-80 = "#1a85f6";
|
||||
blue-70 = "#0273eb";
|
||||
blue-60 = "#0c6ddd";
|
||||
blue-50 = "#195eb5";
|
||||
blue-40 = "#194176";
|
||||
blue-30 = "#163764";
|
||||
blue-20 = "#132c4f";
|
||||
blue-10 = "#0b1b32";
|
||||
red-80 = "#ec7388";
|
||||
red-70 = "#ea4b67";
|
||||
red-60 = "#d93953";
|
||||
red-50 = "#ce364d";
|
||||
red-40 = "#c03248";
|
||||
red-30 = "#a72a3f";
|
||||
red-20 = "#761b2d";
|
||||
red-10 = "#390813";
|
||||
green-50 = "#4ca988";
|
||||
green-40 = "#3ea17f";
|
||||
green-30 = "#028764";
|
||||
green-20 = "#134939";
|
||||
green-10 = "#081f19";
|
||||
yellow-60 = "#f8ab17";
|
||||
yellow-50 = "#e1971b";
|
||||
yellow-40 = "#b5791f";
|
||||
yellow-30 = "#7c511a";
|
||||
yellow-20 = "#5a3a14";
|
||||
yellow-10 = "#281806";
|
||||
purple-20 = "#c07bf3";
|
||||
purple-10 = "#b35def";
|
||||
|
||||
blue = "#87C3FF";
|
||||
blue-light = "#ADD1DE";
|
||||
coral = "#CC7C8A";
|
||||
cyan = "#82D2CE";
|
||||
cyan-dark = "#779E9E";
|
||||
lime = "#A8CC7C";
|
||||
orange = "#E09B70";
|
||||
pink = "#E394DC";
|
||||
violet = "#AF9CFF";
|
||||
yellow = "#EBC88D";
|
||||
in
|
||||
{
|
||||
"attribute" = lime;
|
||||
"type" = blue;
|
||||
"type.return" = blue-light;
|
||||
"type.parameter" = blue-light;
|
||||
"constructor" = yellow;
|
||||
"constant" = violet;
|
||||
"constant.builtin.boolean" = cyan;
|
||||
"constant.character" = yellow;
|
||||
"constant.character.escape" = cyan;
|
||||
"constant.numeric" = yellow;
|
||||
"string" = pink;
|
||||
"string.regexp" = cyan;
|
||||
"string.special" = {
|
||||
fg = yellow;
|
||||
modifiers = [ "underlined" ];
|
||||
}; # .path / .url / .symbol
|
||||
|
||||
"comment" = gray-90; # .line
|
||||
# "comment.block" = {} # .documentation
|
||||
"variable" = gray-120; # .builtin
|
||||
"variable.builtin" = {
|
||||
fg = coral;
|
||||
};
|
||||
# "variable.other" = {} # .member
|
||||
"variable.other.member" = violet;
|
||||
"label" = yellow;
|
||||
"keyword" = cyan; # .operator / .directive / .function
|
||||
"function" = yellow;
|
||||
"function.declaration" = "#EFEFEF";
|
||||
"function.macro" = lime;
|
||||
"function.builtin" = lime;
|
||||
"function.special" = lime;
|
||||
#"function.declaration.method" = { fg = "lightest", modifiers = ["bold"] } #depends on #4892
|
||||
"tag" = blue;
|
||||
"special" = lime;
|
||||
"namespace" = blue;
|
||||
|
||||
# used in theming
|
||||
# "markup" = {} # .normal / .quote / .raw
|
||||
# "markup.normal" = {} # .completion / .hover
|
||||
"markup.bold" = {
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"markup.italic" = {
|
||||
modifiers = [ "italic" ];
|
||||
};
|
||||
"markup.strikethrough" = {
|
||||
modifiers = [ "crossed_out" ];
|
||||
};
|
||||
"markup.heading" = {
|
||||
fg = cyan;
|
||||
modifiers = [ "bold" ];
|
||||
}; # .marker / .1 / .2 / .3 / .4 / .5 / .6
|
||||
"markup.list" = pink; # .unnumbered / .numbered
|
||||
"markup.list.numbered" = cyan;
|
||||
"markup.list.unnumbered" = cyan;
|
||||
# "markup.link" = "green"
|
||||
"markup.link.url" = {
|
||||
fg = pink;
|
||||
modifiers = [
|
||||
"italic"
|
||||
"underlined"
|
||||
];
|
||||
};
|
||||
"markup.link.text" = cyan;
|
||||
"markup.link.label" = purple-20;
|
||||
"markup.quote" = pink;
|
||||
"markup.raw" = pink;
|
||||
"markup.raw.inline" = cyan; # .completion / .hover
|
||||
"markup.raw.block" = "#EB83E2";
|
||||
|
||||
"diff.plus" = green-50;
|
||||
"diff.minus" = red-50;
|
||||
"diff.delta" = blue-80;
|
||||
|
||||
# ui specific
|
||||
# "ui.background" = { bg = gray-10; }; # .separator
|
||||
"ui.background" = { };
|
||||
"ui.statusline" = {
|
||||
fg = gray-120;
|
||||
bg = gray-20;
|
||||
}; # .inactive / .normal / .insert / .select
|
||||
"ui.statusline.normal" = {
|
||||
fg = gray-120;
|
||||
bg = gray-20;
|
||||
};
|
||||
"ui.statusline.inactive" = {
|
||||
fg = gray-90;
|
||||
};
|
||||
"ui.statusline.insert" = {
|
||||
fg = gray-20;
|
||||
bg = blue-90;
|
||||
};
|
||||
"ui.statusline.select" = {
|
||||
fg = gray-20;
|
||||
bg = yellow-60;
|
||||
};
|
||||
|
||||
"ui.cursor" = {
|
||||
modifiers = [ "reversed" ];
|
||||
}; # .insert / .select / .match / .primary
|
||||
"ui.cursor.match" = {
|
||||
bg = blue-30;
|
||||
}; # .insert / .select / .match / .primary
|
||||
"ui.selection" = {
|
||||
bg = gray-50;
|
||||
}; # .primary
|
||||
"ui.selection.primary" = {
|
||||
bg = blue-40;
|
||||
};
|
||||
|
||||
"ui.cursorline" = {
|
||||
bg = gray-15;
|
||||
};
|
||||
"ui.linenr" = gray-70;
|
||||
"ui.linenr.selected" = gray-110;
|
||||
|
||||
"ui.popup" = {
|
||||
fg = gray-120;
|
||||
bg = gray-20;
|
||||
}; # .info
|
||||
"ui.window" = {
|
||||
fg = gray-50;
|
||||
};
|
||||
"ui.help" = {
|
||||
fg = gray-120;
|
||||
bg = gray-20;
|
||||
};
|
||||
"ui.menu" = {
|
||||
fg = gray-120;
|
||||
bg = gray-20;
|
||||
}; # .selected
|
||||
"ui.menu.selected" = {
|
||||
fg = white;
|
||||
bg = blue-40;
|
||||
}; # .selected
|
||||
# Calculated as #ffffff with 30% opacity
|
||||
"ui.menu.scroll" = {
|
||||
fg = "#dfdfdf";
|
||||
};
|
||||
|
||||
"ui.text" = gray-120; # .focus / .info
|
||||
"ui.text.focus" = {
|
||||
fg = white;
|
||||
bg = blue-40;
|
||||
};
|
||||
|
||||
"ui.virtual" = gray-90; # .whitespace
|
||||
"ui.virtual.inlay-hint" = {
|
||||
fg = gray-70;
|
||||
};
|
||||
"ui.virtual.ruler" = {
|
||||
bg = gray-20;
|
||||
};
|
||||
|
||||
"hint" = gray-80;
|
||||
"info" = "#A366C4";
|
||||
"warning" = "#FACb66";
|
||||
"error" = "#FF5269";
|
||||
|
||||
"diagnostic.hint" = {
|
||||
underline = {
|
||||
color = gray-80;
|
||||
style = "line";
|
||||
};
|
||||
};
|
||||
"diagnostic.info" = {
|
||||
underline = {
|
||||
color = "#A366C4";
|
||||
style = "line";
|
||||
};
|
||||
};
|
||||
"diagnostic.warning" = {
|
||||
underline = {
|
||||
color = "#FACB66";
|
||||
style = "line";
|
||||
};
|
||||
};
|
||||
"diagnostic.error" = {
|
||||
underline = {
|
||||
color = "#FF5269";
|
||||
style = "line";
|
||||
};
|
||||
};
|
||||
"diagnostic.unnecessary" = {
|
||||
modifiers = [ "dim" ];
|
||||
};
|
||||
"diagnostic.deprecated" = {
|
||||
modifiers = [ "crossed_out" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
77
nix/home-manager/progs/librewolf.nix
Normal file
77
nix/home-manager/progs/librewolf.nix
Normal file
@@ -0,0 +1,77 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ librewolf ];
|
||||
|
||||
programs.librewolf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"webgl.disabled" = false;
|
||||
"privacy.resistFingerprinting" = false;
|
||||
"privacy.clearOnShutdown.history" = false;
|
||||
"privacy.clearOnShutdown.cookies" = false;
|
||||
"network.cookie.lifetimePolicy" = 0;
|
||||
"general.useragent.compatMode.firefox" = true;
|
||||
"identity.fxaccounts.enabled" = true;
|
||||
"services.sync.prefs.sync.privacy.clearOnShutdown.cookies" = false;
|
||||
"services.sync.prefs.sync.privacy.clearOnShutdown_v2.cookiesAndStorage" = false;
|
||||
|
||||
"general.useragent.override" = "Mozilla/5.0 (X11; Linux x86_64; rv:${pkgs.firefox.version}) Gecko/20100101 Firefox/${pkgs.firefox.version}";
|
||||
|
||||
"extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
|
||||
|
||||
# For themeing
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
"browser.tabs.drawInTitlebar" = true;
|
||||
"svg.context-properties.content.enabled" = true;
|
||||
|
||||
#fake location, FIT (just about)
|
||||
"geo.provider.network.url" =
|
||||
"data:application/json,"
|
||||
+ builtins.toJSON {
|
||||
location = {
|
||||
lat = 28.0749;
|
||||
lng = -80.6302;
|
||||
};
|
||||
accuracy = 1.0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.file =
|
||||
let
|
||||
chromeTheme = ".librewolf/tckj7njq.default-release/chrome";
|
||||
|
||||
firefoxThemeFile = file: src: {
|
||||
target = "${chromeTheme}/${file}";
|
||||
source = "${inputs.firefox-mod-theme}/${src}/${file}";
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
baseThemeFile = {
|
||||
file = "";
|
||||
src = "";
|
||||
};
|
||||
|
||||
modThemeFiles = [
|
||||
{
|
||||
file = "userChrome.css";
|
||||
}
|
||||
{
|
||||
file = "userContent.css";
|
||||
}
|
||||
{
|
||||
file = "ASSETS";
|
||||
}
|
||||
];
|
||||
in
|
||||
builtins.listToAttrs (
|
||||
map (f: {
|
||||
name = "firefox-theme-${f.file}";
|
||||
value = firefoxThemeFile f.file f.src;
|
||||
}) (map (f: baseThemeFile // f) modThemeFiles)
|
||||
);
|
||||
|
||||
home.sessionVariables = {
|
||||
BROWSER = "librewolf";
|
||||
};
|
||||
}
|
||||
167
nix/home-manager/progs/niri.nix
Normal file
167
nix/home-manager/progs/niri.nix
Normal file
@@ -0,0 +1,167 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
homeDirectory,
|
||||
}:
|
||||
{
|
||||
prefer-no-csd = true;
|
||||
|
||||
spawn-at-startup = [
|
||||
#waybar
|
||||
{ command = [ "${pkgs.waybar}/bin/waybar" ]; }
|
||||
|
||||
#swaybg works on more than just sway (sets a wallpaper)
|
||||
{
|
||||
command = [
|
||||
"${pkgs.swaybg}/bin/swaybg"
|
||||
"-m"
|
||||
"center"
|
||||
"-i"
|
||||
"${homeDirectory}/.wallpaper.png"
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
window-rules = [
|
||||
{ draw-border-with-background = false; }
|
||||
{
|
||||
geometry-corner-radius = {
|
||||
top-left = 10.0;
|
||||
top-right = 10.0;
|
||||
bottom-right = 10.0;
|
||||
bottom-left = 10.0;
|
||||
};
|
||||
}
|
||||
{ clip-to-geometry = true; }
|
||||
];
|
||||
|
||||
binds = with config.lib.niri.actions; {
|
||||
#application launcher
|
||||
"Mod+Space".action = spawn [
|
||||
"rofi"
|
||||
"-show"
|
||||
"combi"
|
||||
];
|
||||
|
||||
#open a terminal
|
||||
"Mod+T".action = spawn "${pkgs.alacritty}/bin/alacritty";
|
||||
|
||||
#lock the screen
|
||||
"Mod+X".action = spawn "${pkgs.swaylock}/bin/swaylock";
|
||||
|
||||
#screenshotting
|
||||
"Print".action = screenshot;
|
||||
"Ctrl+Print".action = screenshot-screen;
|
||||
"Alt+Print".action = screenshot-window;
|
||||
|
||||
#Volume control
|
||||
"XF86AudioRaiseVolume".action = spawn [
|
||||
"${pkgs.avizo}/bin/volumectl"
|
||||
"-u"
|
||||
"up"
|
||||
];
|
||||
"XF86AudioLowerVolume".action = spawn [
|
||||
"${pkgs.avizo}/bin/volumectl"
|
||||
"-u"
|
||||
"down"
|
||||
];
|
||||
"XF86AudioMute".action = spawn [
|
||||
"${pkgs.avizo}/bin/volumectl"
|
||||
"toggle-mute"
|
||||
];
|
||||
"XF86AudioMicMute".action = spawn [
|
||||
"${pkgs.avizo}/bin/volumectl"
|
||||
"-m"
|
||||
"toggle-mute"
|
||||
];
|
||||
|
||||
#Display Brightness control
|
||||
"XF86MonBrightnessUp".action = spawn [
|
||||
"${pkgs.avizo}/bin/lightctl"
|
||||
"up"
|
||||
];
|
||||
"XF86MonBrightnessDown".action = spawn [
|
||||
"${pkgs.avizo}/bin/lightctl"
|
||||
"down"
|
||||
];
|
||||
|
||||
#Force close a window
|
||||
"Mod+Q".action = close-window;
|
||||
|
||||
"Mod+Shift+Q".action = quit;
|
||||
|
||||
#bindings for like window management ig
|
||||
|
||||
"Mod+Left".action = focus-column-left;
|
||||
"Mod+Down".action = focus-window-down;
|
||||
"Mod+Up".action = focus-window-up;
|
||||
"Mod+Right".action = focus-column-right;
|
||||
|
||||
"Mod+H".action = focus-column-left;
|
||||
"Mod+J".action = focus-window-down;
|
||||
"Mod+K".action = focus-window-up;
|
||||
"Mod+L".action = focus-column-right;
|
||||
|
||||
"Mod+Ctrl+Left".action = move-column-left;
|
||||
"Mod+Ctrl+Down".action = move-window-down;
|
||||
"Mod+Ctrl+Up".action = move-window-up;
|
||||
"Mod+Ctrl+Right".action = move-column-right;
|
||||
|
||||
"Mod+Ctrl+H".action = move-column-left;
|
||||
"Mod+Ctrl+J".action = move-window-down;
|
||||
"Mod+Ctrl+K".action = move-window-up;
|
||||
"Mod+Ctrl+L".action = move-column-right;
|
||||
|
||||
#fine adjustments to height and width of window
|
||||
"Mod+Minus".action = set-column-width "-10%";
|
||||
"Mod+Equal".action = set-column-width "+10%";
|
||||
"Mod+Shift+Minus".action = set-window-height "-10%";
|
||||
"Mod+Shift+Equal".action = set-window-height "+10%";
|
||||
|
||||
"Mod+Home".action = focus-column-first;
|
||||
"Mod+End".action = focus-column-last;
|
||||
"Mod+Ctrl+Home".action = move-column-to-first;
|
||||
"Mod+Ctrl+End".action = move-column-to-last;
|
||||
|
||||
"Mod+Shift+Left".action = focus-monitor-left;
|
||||
"Mod+Shift+Down".action = focus-monitor-down;
|
||||
"Mod+Shift+Up".action = focus-monitor-up;
|
||||
"Mod+Shift+Right".action = focus-monitor-right;
|
||||
|
||||
"Mod+Shift+H".action = focus-monitor-left;
|
||||
"Mod+Shift+J".action = focus-monitor-down;
|
||||
"Mod+Shift+K".action = focus-monitor-up;
|
||||
"Mod+Shift+L".action = focus-monitor-right;
|
||||
|
||||
"Mod+Shift+Ctrl+Left".action = move-column-to-monitor-left;
|
||||
"Mod+Shift+Ctrl+Down".action = move-column-to-monitor-down;
|
||||
"Mod+Shift+Ctrl+Up".action = move-column-to-monitor-up;
|
||||
"Mod+Shift+Ctrl+Right".action = move-column-to-monitor-right;
|
||||
|
||||
"Mod+Shift+Ctrl+H".action = move-column-to-monitor-left;
|
||||
"Mod+Shift+Ctrl+J".action = move-column-to-monitor-down;
|
||||
"Mod+Shift+Ctrl+K".action = move-column-to-monitor-up;
|
||||
"Mod+Shift+Ctrl+L".action = move-column-to-monitor-right;
|
||||
|
||||
"Mod+Page_Down".action = focus-workspace-down;
|
||||
"Mod+Page_Up".action = focus-workspace-up;
|
||||
"Mod+U".action = focus-workspace-down;
|
||||
"Mod+I".action = focus-workspace-up;
|
||||
|
||||
#move a window up and down workspaces
|
||||
"Mod+Ctrl+Page_Down".action = move-column-to-workspace-down;
|
||||
"Mod+Ctrl+Page_Up".action = move-column-to-workspace-up;
|
||||
|
||||
"Mod+Ctrl+U".action = move-column-to-workspace-down;
|
||||
"Mod+Ctrl+I".action = move-column-to-workspace-up;
|
||||
|
||||
#does little squeeze thing into the left or right position with another window
|
||||
"Mod+BracketLeft".action = consume-or-expel-window-left;
|
||||
"Mod+BracketRight".action = consume-or-expel-window-right;
|
||||
|
||||
"Mod+R".action = switch-preset-column-width;
|
||||
"Mod+F".action = maximize-column;
|
||||
"Mod+Shift+F".action = fullscreen-window;
|
||||
"Mod+C".action = center-column;
|
||||
};
|
||||
}
|
||||
91
nix/home-manager/progs/rss.nix
Normal file
91
nix/home-manager/progs/rss.nix
Normal file
@@ -0,0 +1,91 @@
|
||||
[
|
||||
{
|
||||
title = "Stratechery";
|
||||
url = "https://stratechery.passport.online/feed/rss/2gi1tPZ8Ta36Tsx7rDLM5P";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Factorio Blog";
|
||||
url = "https://www.factorio.com/blog/rss";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Firefox Nightly News";
|
||||
url = "https://blog.nightly.mozilla.org/feed/";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Servo Blog";
|
||||
url = "https://servo.org/blog/feed.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Alyssa Rosenzweig";
|
||||
url = "https://rosenzweig.io/feed.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Marc's Blog";
|
||||
url = "https://brooker.co.za/blog/rss.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Fabien Sanglard";
|
||||
url = "https://fabiensanglard.net/rss.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Xuanwo's Blog";
|
||||
url = "https://xuanwo.io/index.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Carlos Galdino";
|
||||
url = "https://blog.carlosgaldino.com/atom.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "soatok";
|
||||
url = "https://soatok.blog/feed/";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Jack Garbus";
|
||||
url = "https://jarbus.net/index.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Terence Eden";
|
||||
url = "https://shkspr.mobi/blog/feed/atom/";
|
||||
}
|
||||
|
||||
{
|
||||
title = "GioCities";
|
||||
url = "https://blog.giovanh.com/feeds/atom.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "mcyoung";
|
||||
url = "https://mcyoung.xyz/atom.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Embrace the Red";
|
||||
url = "https://embracethered.com/blog/index.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Chips and Cheese";
|
||||
url = "https://chipsandcheese.com/feed/";
|
||||
}
|
||||
|
||||
{
|
||||
title = "System5";
|
||||
url = "https://blogsystem5.substack.com/feed";
|
||||
}
|
||||
|
||||
{
|
||||
title = "lwn";
|
||||
url = "https://lwn.net/headlines/Features";
|
||||
}
|
||||
]
|
||||
31
nix/home-manager/progs/swaylock.nix
Normal file
31
nix/home-manager/progs/swaylock.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
color = "24273a";
|
||||
bs-hl-color = "f4dbd6";
|
||||
caps-lock-bs-hl-color = "f4dbd6";
|
||||
caps-lock-key-hl-color = "a6da95";
|
||||
inside-color = 0;
|
||||
inside-clear-color = 0;
|
||||
inside-caps-lock-color = 0;
|
||||
inside-ver-color = 0;
|
||||
inside-wrong-color = 0;
|
||||
key-hl-color = "a6da95";
|
||||
layout-bg-color = 0;
|
||||
layout-border-color = 0;
|
||||
layout-text-color = "cad3f5";
|
||||
line-color = 0;
|
||||
line-clear-color = 0;
|
||||
line-caps-lock-color = 0;
|
||||
line-ver-color = 0;
|
||||
line-wrong-color = 0;
|
||||
ring-color = "b7bdf8";
|
||||
ring-clear-color = "f4dbd6";
|
||||
ring-caps-lock-color = "f5a97f";
|
||||
ring-ver-color = "8aadf4";
|
||||
ring-wrong-color = "ee99a0";
|
||||
separator-color = 0;
|
||||
text-color = "cad3f5";
|
||||
text-clear-color = "f4dbd6";
|
||||
text-caps-lock-color = "f5a97f";
|
||||
text-ver-color = "8aadf4";
|
||||
text-wrong-color = "ee99a0";
|
||||
}
|
||||
253
nix/home-manager/progs/waybar.nix
Normal file
253
nix/home-manager/progs/waybar.nix
Normal file
@@ -0,0 +1,253 @@
|
||||
{ pkgs }:
|
||||
{
|
||||
enable = true;
|
||||
settings.mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
# mod = "dock";
|
||||
# exclusive = true;
|
||||
# gtk-layer-shell = true;
|
||||
margin-bottom = -1;
|
||||
# passthrough = false;
|
||||
height = 32;
|
||||
modules-left =
|
||||
[
|
||||
];
|
||||
modules-center = [ "clock" ];
|
||||
modules-right = [
|
||||
"cpu"
|
||||
"memory"
|
||||
"tray"
|
||||
"pulseaudio"
|
||||
"network"
|
||||
"battery"
|
||||
];
|
||||
cpu = {
|
||||
interval = 5;
|
||||
format = " {usage}%";
|
||||
max-length = 10;
|
||||
};
|
||||
memory = {
|
||||
interval = 10;
|
||||
format = " {percentage}%";
|
||||
max-length = 10;
|
||||
tooltip = true;
|
||||
tooltip-format = "RAM - {used:0.1f}GiB used";
|
||||
};
|
||||
tray = {
|
||||
icon-size = 18;
|
||||
spacing = 3;
|
||||
};
|
||||
clock = {
|
||||
format = " {:%R\n %d.%m.%Y}";
|
||||
tooltip-format = "<tt><small>{calendar}</small></tt>";
|
||||
calendar = {
|
||||
mode = "year";
|
||||
mode-mon-col = 3;
|
||||
weeks-pos = "right";
|
||||
on-scroll = 1;
|
||||
on-click-right = "mode";
|
||||
format = {
|
||||
months = "<span color='#ffead3'><b>{}</b></span>";
|
||||
days = "<span color='#ecc6d9'><b>{}</b></span>";
|
||||
weeks = "<span color='#99ffdd'><b>W{}</b></span>";
|
||||
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
|
||||
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
|
||||
};
|
||||
};
|
||||
actions = {
|
||||
on-click-right = "mode";
|
||||
on-click-forward = "tz_up";
|
||||
on-click-backward = "tz_down";
|
||||
on-scroll-up = "shift_up";
|
||||
on-scroll-down = "shift_down";
|
||||
};
|
||||
};
|
||||
network = {
|
||||
format-wifi = " {icon}";
|
||||
format-ethernet = " ";
|
||||
format-disconnected = " ";
|
||||
format-icons = [
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
];
|
||||
};
|
||||
battery = {
|
||||
states = {
|
||||
good = 95;
|
||||
warning = 30;
|
||||
critical = 20;
|
||||
};
|
||||
format = " {icon} {capacity}%";
|
||||
format-charging = " {capacity}%";
|
||||
format-plugged = " {capacity}%";
|
||||
format-alt = "{time} {icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
# not actually pulseaudio-specific
|
||||
pulseaudio = {
|
||||
max-volume = 100;
|
||||
scroll-step = 10;
|
||||
format = "{icon}";
|
||||
tooltip-format = "{volume}%";
|
||||
format-muted = "🔇";
|
||||
format-icons = {
|
||||
default = [
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
];
|
||||
};
|
||||
on-click = "${pkgs.pwvucontrol}/bin/pwvucontrol";
|
||||
};
|
||||
};
|
||||
|
||||
style = ''
|
||||
/*base background color*/
|
||||
@define-color bg_main rgba(25, 25, 25, 1.0);
|
||||
@define-color bg_main_tooltip rgba(0, 0, 0, 0.7);
|
||||
|
||||
|
||||
/*base background color of selections */
|
||||
@define-color bg_hover rgba(200, 200, 200, 0.3);
|
||||
/*base background color of active elements */
|
||||
@define-color bg_active rgba(100, 100, 100, 0.5);
|
||||
|
||||
/*base border color*/
|
||||
@define-color border_main rgba(255, 255, 255, 0.2);
|
||||
|
||||
/*text color for entries, views and content in general */
|
||||
@define-color content_main white;
|
||||
/*text color for entries that are unselected */
|
||||
@define-color content_inactive rgba(255, 255, 255, 0.25);
|
||||
|
||||
* {
|
||||
text-shadow: none;
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-family: "Segoe UI", "Ubuntu";
|
||||
font-weight: 600;
|
||||
font-size: 12.7px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: @bg_main;
|
||||
border-top: 0;
|
||||
color: @content_main;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: @bg_main_tooltip;
|
||||
border-radius: 5px;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: @border_main;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: @content_main;
|
||||
}
|
||||
|
||||
#taskbar {
|
||||
}
|
||||
|
||||
#taskbar button {
|
||||
min-width: 130px;
|
||||
border-bottom: 3px solid rgba(255, 255, 255, 0.3);
|
||||
margin-left: 2px;
|
||||
margin-right: 2px;
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
color: white;
|
||||
transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
}
|
||||
|
||||
#taskbar button.active {
|
||||
border-bottom: 3px solid white;
|
||||
background: @bg_active;
|
||||
}
|
||||
|
||||
#taskbar button:hover {
|
||||
border-bottom: 3px solid white;
|
||||
background: @bg_hover;
|
||||
color: @content_main;
|
||||
}
|
||||
|
||||
#cpu, #memory {
|
||||
padding:3px;
|
||||
}
|
||||
|
||||
#window {
|
||||
border-radius: 10px;
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
#tray {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
#tray > .passive {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
#tray > .active {
|
||||
border-bottom: 3px solid white;
|
||||
}
|
||||
|
||||
#tray > .needs-attention {
|
||||
border-bottom: 3px solid @warning_color;
|
||||
}
|
||||
|
||||
#tray > widget {
|
||||
transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
}
|
||||
|
||||
#tray > widget:hover {
|
||||
background: @bg_hover;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
font-family: "JetBrainsMono Nerd Font";
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
}
|
||||
|
||||
#pulseaudio:hover {
|
||||
background: @bg_hover;
|
||||
}
|
||||
|
||||
#network {
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
#clock {
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
}
|
||||
|
||||
#clock:hover {
|
||||
background: @bg_hover;
|
||||
}
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user