mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 20:39:18 -08:00
Refactor: ..., also: Added vim-lastplace and tmate
This commit is contained in:
parent
386fe7a2c0
commit
46169bc8c2
103 changed files with 142 additions and 167 deletions
7
users/kat/gui/default.nix
Normal file
7
users/kat/gui/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
deploy.profile.gui = true;
|
||||
|
||||
imports = [ ./firefox ./kitty.nix ./packages.nix ./weechat.nix ./gtk.nix ];
|
||||
}
|
||||
74
users/kat/gui/firefox/default.nix
Normal file
74
users/kat/gui/firefox/default.nix
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
{ config, lib, pkgs, superConfig, ... }:
|
||||
|
||||
let
|
||||
commonSettings = {
|
||||
"app.update.auto" = false;
|
||||
"identity.fxaccounts.account.device.name" = superConfig.networking.hostName;
|
||||
"signon.rememberSignons" = false;
|
||||
"browser.download.lastDir" = "/home/kat/downloads";
|
||||
"browser.urlbar.placeholderName" = "DuckDuckGo";
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
};
|
||||
in {
|
||||
programs.zsh.shellAliases = {
|
||||
ff-pm = "firefox --ProfileManager";
|
||||
ff-main = "firefox -P main";
|
||||
ff-work = "firefox -P work";
|
||||
ff-lewd = "firefox -P lewd";
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
MOZ_ENABLE_WAYLAND = 1;
|
||||
XDG_CURRENT_DESKTOP = "sway";
|
||||
};
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||
pkgs.ff-sponsorblock
|
||||
auto-tab-discard
|
||||
bitwarden
|
||||
darkreader
|
||||
decentraleyes
|
||||
foxyproxy-standard
|
||||
google-search-link-fix
|
||||
https-everywhere
|
||||
#old-reddit-redirect # made unnecessary due to tridactylrc
|
||||
privacy-badger
|
||||
reddit-enhancement-suite
|
||||
refined-github
|
||||
stylus
|
||||
terms-of-service-didnt-read
|
||||
tree-style-tab
|
||||
tridactyl
|
||||
ublock-origin
|
||||
violentmonkey
|
||||
];
|
||||
profiles = {
|
||||
main = {
|
||||
id = 0;
|
||||
isDefault = true;
|
||||
settings = commonSettings // {
|
||||
|
||||
};
|
||||
userChrome = import ./userChrome.css.nix { profile = "main"; };
|
||||
};
|
||||
work = {
|
||||
id = 1;
|
||||
settings = commonSettings // {
|
||||
|
||||
};
|
||||
userChrome = import ./userChrome.css.nix { profile = "work"; };
|
||||
};
|
||||
lewd = {
|
||||
id = 2;
|
||||
settings = commonSettings // {
|
||||
|
||||
};
|
||||
userChrome = import ./userChrome.css.nix { profile = "lewd"; };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.file.".config/tridactyl/tridactylrc".source = ./tridactylrc;
|
||||
}
|
||||
157
users/kat/gui/firefox/tridactylrc
Normal file
157
users/kat/gui/firefox/tridactylrc
Normal file
|
|
@ -0,0 +1,157 @@
|
|||
" bovine3dom's dogfood
|
||||
|
||||
" WARNING: This file defines and runs a command called fixamo_quiet. If you
|
||||
" also have a malicious addon that operates on `<all_urls>` installed this
|
||||
" will allow it to steal your firefox account credentials!
|
||||
"
|
||||
" With those credentials, an attacker can read anything in your sync account,
|
||||
" publish addons to the AMO, etc, etc.
|
||||
"
|
||||
" Without this command a malicious addon can steal credentials from any site
|
||||
" that you visit that is not in the restrictedDomains list.
|
||||
"
|
||||
" You should comment out the fixamo lines unless you are entirely sure that
|
||||
" they are what you want.
|
||||
"
|
||||
" The advantage of running the command is that you can use the tridactyl
|
||||
" interface on addons.mozilla.org and other restricted sites.
|
||||
|
||||
" Provided only as an example.
|
||||
" Do not install/run without reading through as you may be surprised by some
|
||||
" of the settings.
|
||||
|
||||
" May require the latest beta builds.
|
||||
|
||||
" Move this to $XDG_CONFIG_DIR/tridactyl/tridactylrc (that's
|
||||
" ~/.config/tridactyl/tridactylrc to mere mortals) or ~/.tridactylrc and
|
||||
" install the native messenger (:installnative in Tridactyl). Run :source to
|
||||
" get it in the browser, or just restart.
|
||||
|
||||
|
||||
"
|
||||
" Binds
|
||||
"
|
||||
|
||||
bind / fillcmdline find
|
||||
bind ? fillcmdline find -?
|
||||
bind n findnext 1
|
||||
bind N findnext -1
|
||||
bind ,<Space> nohlsearc
|
||||
|
||||
" Comment toggler for Reddit, Hacker News and Lobste.rs
|
||||
bind ;c hint -Jc [class*="expand"],[class="togg"],[class="comment_folder"]
|
||||
|
||||
" GitHub pull request checkout command to clipboard (only works if you're a collaborator or above)
|
||||
bind yp composite js document.getElementById("clone-help-step-1").textContent.replace("git checkout -b", "git checkout -B").replace("git pull ", "git fetch ") + "git reset --hard " + document.getElementById("clone-help-step-1").textContent.split(" ")[3].replace("-","/") | yank
|
||||
|
||||
" Git{Hub,Lab} git clone via SSH yank
|
||||
bind yg composite js "git clone " + document.location.href.replace(/https?:\/\//,"git@").replace("/",":").replace(/$/,".git") | clipboard yank
|
||||
|
||||
" As above but execute it and open terminal in folder
|
||||
bind ,g js let uri = document.location.href.replace(/https?:\/\//,"git@").replace("/",":").replace(/$/,".git"); tri.native.run("cd ~/projects; git clone " + uri + "; cd \"$(basename \"" + uri + "\" .git)\"; st")
|
||||
|
||||
|
||||
" make d take you to the tab you were just on (I find it much less confusing)
|
||||
bind d composite tab #; tabclose #
|
||||
bind D tabclose
|
||||
|
||||
" I like wikiwand but I don't like the way it changes URLs
|
||||
bindurl wikiwand.com yy composite js document.location.href.replace("wikiwand.com/en","wikipedia.org/wiki") | clipboard yank
|
||||
|
||||
" Make gu take you back to subreddit from comments
|
||||
bindurl reddit.com gu urlparent 4
|
||||
|
||||
" Only hint search results on Google and DDG
|
||||
bindurl www.google.com f hint -Jc #search div:not(.action-menu) > a
|
||||
bindurl www.google.com F hint -Jbc #search div:not(.action-menu) > a
|
||||
|
||||
|
||||
bindurl ^https://duckduckgo.com f hint -Jc [class=result__a]
|
||||
bindurl ^https://duckduckgo.com F hint -Jbc [class=result__a]
|
||||
|
||||
" Allow Ctrl-a to select all in the commandline
|
||||
unbind --mode=ex <C-a>
|
||||
|
||||
" Allow Ctrl-c to copy in the commandline
|
||||
unbind --mode=ex <C-c>
|
||||
|
||||
" Handy multiwindow/multitasking binds
|
||||
bind gd tabdetach
|
||||
bind gD composite tabduplicate; tabdetach
|
||||
|
||||
" Make yy use canonical / short links on the 5 websites that support them
|
||||
bind yy clipboard yankcanon
|
||||
|
||||
" Stupid workaround to let hint -; be used with composite which steals semi-colons
|
||||
command hint_focus hint -;
|
||||
|
||||
" Open right click menu on links
|
||||
bind ;C composite hint_focus; !s xdotool key Menu
|
||||
|
||||
"
|
||||
" Misc settings
|
||||
"
|
||||
|
||||
" set editorcmd to suckless terminal, or use the defaults on other platforms
|
||||
js tri.browserBg.runtime.getPlatformInfo().then(os=>{const editorcmd = os.os=="linux" ? "st vim" : "auto"; tri.config.set("editorcmd", editorcmd)})
|
||||
|
||||
" set profile dir on Windows
|
||||
jsb browser.runtime.getPlatformInfo().then(os=>{const profiledir = os.os=="win" ? "C:\\Users\\olie\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\gwm76nmk.default" : "auto"; tri.config.set("profiledir", profiledir)})
|
||||
|
||||
" Sane hinting mode
|
||||
set hintfiltermode vimperator-reflow
|
||||
set hintnames numeric
|
||||
|
||||
" Defaults to 300ms but I'm a 'move fast and close the wrong tabs' kinda chap
|
||||
set hintdelay 100
|
||||
|
||||
" Add helper commands that Mozillians think make Firefox irredeemably
|
||||
" insecure. For details, read the comment at the top of this file.
|
||||
command fixamo_quiet jsb tri.excmds.setpref("privacy.resistFingerprinting.block_mozAddonManager", "true").then(tri.excmds.setpref("extensions.webextensions.restrictedDomains", '""'))
|
||||
command fixamo js tri.excmds.setpref("privacy.resistFingerprinting.block_mozAddonManager", "true").then(tri.excmds.setpref("extensions.webextensions.restrictedDomains", '""').then(tri.excmds.fillcmdline_tmp(3000, "Permissions added to user.js. Please restart Firefox to make them take affect.")))
|
||||
|
||||
" Make Tridactyl work on more sites at the expense of some security. For
|
||||
" details, read the comment at the top of this file.
|
||||
fixamo_quiet
|
||||
|
||||
" Equivalent to `set csp clobber` before it was removed. This weakens your
|
||||
" defences against cross-site-scripting attacks and other types of
|
||||
" code-injection by reducing the strictness of Content Security Policy on
|
||||
" every site in a couple of ways.
|
||||
"
|
||||
" You may not wish to run this. Mozilla strongly feels that you shouldn't.
|
||||
"
|
||||
" It allows Tridactyl to function on more pages, e.g. raw GitHub pages.
|
||||
"
|
||||
" We remove the sandbox directive
|
||||
" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/sandbox
|
||||
" which allows our iframe to run (and anyone else's) on any website.
|
||||
"
|
||||
" We weaken the style-src directive
|
||||
" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src
|
||||
" to allow us to theme our elements. This exposes you to 'cross site styling'
|
||||
" attacks.
|
||||
"
|
||||
" Read https://wiki.mozilla.org/Security/CSP#Goals for more information.
|
||||
jsb browser.webRequest.onHeadersReceived.addListener(tri.request.clobberCSP,{urls:["<all_urls>"],types:["main_frame"]},["blocking","responseHeaders"])
|
||||
|
||||
" Make quickmarks for the sane Tridactyl issue view
|
||||
quickmark t https://github.com/tridactyl/tridactyl/issues?utf8=%E2%9C%93&q=sort%3Aupdated-desc+
|
||||
|
||||
" Inject Google Translate
|
||||
" This (clearly) is remotely hosted code. Google will be sent the whole
|
||||
" contents of the page you are on if you run `:translate`
|
||||
" From https://github.com/jeremiahlee/page-translator
|
||||
command translate js let googleTranslateCallback = document.createElement('script'); googleTranslateCallback.innerHTML = "function googleTranslateElementInit(){ new google.translate.TranslateElement(); }"; document.body.insertBefore(googleTranslateCallback, document.body.firstChild); let googleTranslateScript = document.createElement('script'); googleTranslateScript.charset="UTF-8"; googleTranslateScript.src = "https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit&tl=&sl=&hl="; document.body.insertBefore(googleTranslateScript, document.body.firstChild);
|
||||
|
||||
"
|
||||
" URL redirects
|
||||
"
|
||||
|
||||
" New reddit is bad
|
||||
autocmd DocStart ^http(s?)://www.reddit.com js tri.excmds.urlmodify("-t", "www", "old")
|
||||
" Mosquito nets won't make themselves
|
||||
autocmd DocStart ^http(s?)://www.amazon.co.uk js tri.excmds.urlmodify("-t", "www", "smile")
|
||||
|
||||
" For syntax highlighting see https://github.com/tridactyl/vim-tridactyl
|
||||
" vim: set filetype=tridactyl
|
||||
15
users/kat/gui/firefox/userChrome.css.nix
Normal file
15
users/kat/gui/firefox/userChrome.css.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{ profile }:
|
||||
|
||||
''
|
||||
#main-window[tabsintitlebar="true"]:not([extradragspace="true"]) #TabsToolbar > .toolbar-items {
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
#main-window:not([tabsintitlebar="true"]) #TabsToolbar {
|
||||
visibility: collapse !important;
|
||||
}
|
||||
|
||||
#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header {
|
||||
display: none;
|
||||
}
|
||||
''
|
||||
15
users/kat/gui/gtk.nix
Normal file
15
users/kat/gui/gtk.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
gtk = {
|
||||
enable = true;
|
||||
iconTheme = {
|
||||
name = "Numix-Square";
|
||||
package = pkgs.numix-icon-theme-square;
|
||||
};
|
||||
theme = {
|
||||
name = "Arc-Dark";
|
||||
package = pkgs.arc-theme;
|
||||
};
|
||||
};
|
||||
}
|
||||
31
users/kat/gui/kitty.nix
Normal file
31
users/kat/gui/kitty.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ config, lib, pkgs, witch, ... }:
|
||||
|
||||
let
|
||||
witch.style.base16 = lib.mapAttrs' (k: v: lib.nameValuePair k "#${v.hex.rgb}")
|
||||
config.lib.arc.base16.schemeForAlias.default;
|
||||
witch.style.font = {
|
||||
name = "FantasqueSansMono Nerd Font";
|
||||
size = "10";
|
||||
size_css = "14px";
|
||||
};
|
||||
in {
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
font.name = witch.style.font.name;
|
||||
settings = {
|
||||
font_size = witch.style.font.size;
|
||||
# background = witch.style.base16.color0;
|
||||
background_opacity = "0.9";
|
||||
# foreground = witch.style.base16.color7;
|
||||
# selection_background = witch.style.base16.color7;
|
||||
# selection_foreground = witch.style.base16.color0;
|
||||
# url_color = witch.style.base16.color3;
|
||||
# cursor = witch.style.base16.color7;
|
||||
# active_border_color = "#75715e";
|
||||
# active_tab_background = "#9900ff";
|
||||
# active_tab_foreground = witch.style.base16.color7;
|
||||
# inactive_tab_background = "#3a3a3a";
|
||||
# inactive_tab_foreground = "#665577";
|
||||
}; # // witch.style.base16;
|
||||
};
|
||||
}
|
||||
25
users/kat/gui/packages.nix
Normal file
25
users/kat/gui/packages.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
_1password
|
||||
bitwarden
|
||||
wire-desktop
|
||||
element-desktop
|
||||
exiftool
|
||||
thunderbird
|
||||
google-chrome
|
||||
transmission-remote-gtk
|
||||
lm_sensors
|
||||
p7zip
|
||||
zip
|
||||
unzip
|
||||
baresip
|
||||
discord
|
||||
tdesktop
|
||||
yubikey-manager
|
||||
vegur
|
||||
gparted
|
||||
cryptsetup
|
||||
];
|
||||
}
|
||||
36
users/kat/gui/weechat.nix
Normal file
36
users/kat/gui/weechat.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{ config, pkgs, lib, superConfig, ... }:
|
||||
|
||||
{
|
||||
programs.weechat = {
|
||||
enable = true;
|
||||
config = {
|
||||
irc = {
|
||||
server = {
|
||||
freenode = {
|
||||
address = "athame.kittywit.ch/5001";
|
||||
password = "kat/freenode:\${sec.data.znc}";
|
||||
ssl = true;
|
||||
ssl_verify = false;
|
||||
autoconnect = true;
|
||||
};
|
||||
espernet = {
|
||||
address = "athame.kittywit.ch/5001";
|
||||
password = "kat/espernet:\${sec.data.znc}";
|
||||
ssl = true;
|
||||
ssl_verify = false;
|
||||
autoconnect = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
matrix = {
|
||||
server.kat = {
|
||||
address = "kittywit.ch";
|
||||
device_name = "${superConfig.networking.hostName}/weechat";
|
||||
username = "kat";
|
||||
password = "\${sec.data.matrix}";
|
||||
autoconnect = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue