rofi, osu-lazer-bin, etc

This commit is contained in:
chayleaf 2023-02-20 00:49:39 +07:00
parent cb5a5cdb5a
commit 159542369d
13 changed files with 141 additions and 57 deletions

1
.gitignore vendored
View file

@ -1,2 +1 @@
flake.lock
private.nix

View file

@ -1,5 +1,8 @@
[
{
"slug": "youtube-nonstop"
},
{
"slug": "middle-mouse-button-scroll"
}
]

View file

@ -1,17 +0,0 @@
{ buildFirefoxXpiAddon, fetchurl, lib, stdenv }:
{
"youtube-nonstop" = buildFirefoxXpiAddon {
pname = "youtube-nonstop";
version = "0.9.1";
addonId = "{0d7cafdd-501c-49ca-8ebb-e3341caaa55e}";
url = "https://addons.mozilla.org/firefox/downloads/file/3848483/youtube_nonstop-0.9.1.xpi";
sha256 = "8340d57622a663949ec1768eb37d47651c809fadf0ffaa5ff546c48fdd28e33d";
meta = with lib;
{
homepage = "https://github.com/lawfx/YoutubeNonStop";
description = "Tired of getting that \"Video paused. Continue watching?\" confirmation dialog?\nThis extension autoclicks it, so you can listen to your favorite music uninterrupted.\n\nWorking on YouTube and YouTube Music!";
license = licenses.mit;
platforms = platforms.all;
};
};
}

View file

@ -78,7 +78,7 @@ let firefoxWithCcache = ({ useSccache, firefox-unwrapped }:
rust-search-extension
return-youtube-dislikes
protondb-for-steam
privacy-redirect
libredirect
privacy-pass
noscript
localcdn
@ -92,6 +92,7 @@ let firefoxWithCcache = ({ useSccache, firefox-unwrapped }:
# my packages
yomichan
youtube-nonstop
middle-mouse-button-scroll
];
};
};

View file

@ -1,5 +1,18 @@
{ buildFirefoxXpiAddon, fetchurl, lib, stdenv }:
{
"middle-mouse-button-scroll" = buildFirefoxXpiAddon {
pname = "middle-mouse-button-scroll";
version = "0.3.2";
addonId = "{b687f6ef-3299-4a75-8279-8b1c30dfcc9d}";
url = "https://addons.mozilla.org/firefox/downloads/file/3505309/middle_mouse_button_scroll-0.3.2.xpi";
sha256 = "d21d29b29a7bd3fae5407d995737c4c41d66daf73729b88ad39d149223362412";
meta = with lib;
{
homepage = "https://github.com/StoyanDimitrov/middle-mouse-button-scroll";
description = "Scroll fast or precise through long documents with pressed middle mouse button";
platforms = platforms.all;
};
};
"youtube-nonstop" = buildFirefoxXpiAddon {
pname = "youtube-nonstop";
version = "0.9.1";
@ -14,4 +27,4 @@
platforms = platforms.all;
};
};
}
}

View file

@ -135,6 +135,10 @@
mutableTrust = true;
};
nix-index.enable = true;
readline = {
enable = true;
variables.editing-mode = "vi";
};
};
home.packages = with pkgs; [

View file

@ -1,5 +1,5 @@
{ lib, pkgs, ... }:
pkgs.rustPlatform.buildRustPackage {
{ lib, rustPlatform }:
rustPlatform.buildRustPackage {
pname = "home-daemon";
version = "0.1";

View file

@ -44,9 +44,16 @@ barConfig = {
};
};
commonConfig = {
modifier = modifier;
inherit modifier;
startup = [
{ command = "~/scripts/initwm.sh"; }
{ command = builtins.toString (with pkgs; writeShellScript "init-wm" ''
${callPackage ./home-daemon.nix {}}/bin/dotfiles-home-daemon system76-scheduler&
${gnome.zenity}/bin/zenity --password | (${keepassxc}/bin/keepassxc --pw-stdin ~/Nextcloud/keepass.kdbx&)
# nextcloud and nheko need secret service access
${nextcloud-client}/bin/nextcloud --background&
${nheko}/bin/nheko&
${tdesktop}/bin/telegram-desktop -startintray&
''); }
];
colors = {
focused = {
@ -85,7 +92,6 @@ commonConfig = {
};
floating.criteria = [
{ class = "Anki"; title = "Add"; }
# { class = "Anki"; title = "Browse .*"; }
{ class = "Anki"; title = "Statistics"; }
{ class = "Anki"; title = "Preferences"; }
];
@ -99,7 +105,6 @@ commonConfig = {
smartGaps = true;
inner = 10;
};
menu = "${pkgs.bemenu}/bin/bemenu-run --no-overlap --prompt '>' --tb '#24101a' --tf '#ebbe5f' --fb '#24101a' --nb '#24101ac0' --ab '#24101ac0' --nf '#ebdadd' --af '#ebdadd' --hb '#394893' --hf '#e66e6e' --list 30 --prefix '*' --scrollbar autohide --fn 'Noto Sans Mono' --line-height 23 --sb '#394893' --sf '#ebdadd' --scb '#6b4d52' --scf '#e66e6e'";
window.hideEdgeBorders = "smart";
workspaceAutoBackAndForth = true;
};
@ -124,10 +129,9 @@ genKeybindings = (default_options: kb:
);
in
{
# TODO merge with colors in gui.nix
# TODO merge with colors in gui.nix and terminal.nix
imports = [ ./options.nix ./gui.nix ./waybar.nix ];
home.sessionVariables = {
BEMENU_OPTS = "--no-overlap --prompt '>' --tb '#24101a' --tf '#ebbe5f' --fb '#24101a' --nb '#24101ac0' --ab '#24101ac0' --nf '#ebdadd' --af '#ebdadd' --hb '#394893' --hf '#e66e6e' --list 30 --prefix '*' --scrollbar autohide --fn 'Noto Sans Mono' --line-height 23 --sb '#394893' --sf '#ebdadd' --scb '#6b4d52' --scf '#e66e6e'";
_JAVA_AWT_WM_NONREPARENTING = "1";
GTK_IM_MODULE = "fcitx";
QT_IM_MODULE = "fcitx";
@ -165,6 +169,7 @@ in
statusCommand = "${pkgs.i3status}/bin/i3status";
})
];
menu = "${pkgs.rofi}/bin/rofi -show drun";
keybindings = genKeybindings options.xsession.windowManager.i3 {
XF86AudioRaiseVolume = "exec ${pkgs.pamixer}/bin/pamixer --increase 5";
XF86AudioLowerVolume = "exec ${pkgs.pamixer}/bin/pamixer --decrease 5";
@ -174,7 +179,7 @@ in
XF86AudioPrev = "exec ${pkgs.playerctl}/bin/playerctl previous";
};
terminal = config.terminalBinX;
}; in i3Config // commonConfig // i3Config;
}; in commonConfig // i3Config;
};
home.file.".xinitrc".text = ''
if test -z "$DBUS_SESSION_BUS_ADDRESS"; then
@ -189,12 +194,6 @@ in
xsession.initExtra = ''
setxkbmap -layout jp,ru -option compose:ralt,grp:win_space_toggle
'';
home.packages = with pkgs; if config.wayland.windowManager.sway.enable then [
wl-clipboard
xdg-desktop-portal
xdg-desktop-portal-wlr
xdg-desktop-portal-gtk
] else [];
wayland.windowManager.sway = {
wrapperFeatures.gtk = true;
config = let swayConfig = {
@ -207,13 +206,13 @@ in
}
];
terminal = config.terminalBin;
window.commands = [
window = commonConfig.window // { commands = [
{ command = "floating enable; move workspace current";
criteria = {
app_id = "^org.keepassxc.KeePassXC$";
title = "^KeePassXC - (?:Browser |)?(?:Access Request|)$";
}; }
];
]; };
assigns = {
"2" = [
{ app_id = "org.telegram.desktop"; }
@ -272,14 +271,11 @@ in
"--locked --inhibited XF86AudioNext" = "exec ${pkgs.playerctl}/bin/playerctl next";
"--locked --inhibited XF86AudioPrev" = "exec ${pkgs.playerctl}/bin/playerctl previous";
});
startup = [
startup = commonConfig.startup ++ [
{
always = true;
command = "systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP";
}
{
command = "~/scripts/initwm.sh";
}
{
command = "${pkgs.wl-clipboard}/bin/wl-paste -t text --watch ${pkgs.clipman}/bin/clipman store --no-persist";
}
@ -297,9 +293,9 @@ in
xkb_options = "compose:ralt,grp:win_space_toggle";
};
};
}; in swayConfig // commonConfig // swayConfig;
menu = "${pkgs.rofi-wayland}/bin/rofi -show drun";
}; in commonConfig // swayConfig;
extraSessionCommands = ''
export BEMENU_BACKEND=wayland
export SDL_VIDEODRIVER=wayland
export QT_QPA_PLATFORM=wayland
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
@ -327,7 +323,8 @@ in
command = "${pkgs.sway}/bin/swaymsg \"output * dpms off\"";
resumeCommand = "${pkgs.sway}/bin/swaymsg \"output * dpms on\""; }
{ timeout = 600;
command = swaylock-start; }
command = swaylock-start;
resumeCommand = "${pkgs.sway}/bin/swaymsg \"output * dpms on\""; }
];
};
programs.swaylock.settings = rec {
@ -370,4 +367,62 @@ in
text-wrong-color = text-color;
ring-wrong-color = "#e64e4e"; # deep-ish red
};
home.packages = with pkgs; if config.wayland.windowManager.sway.enable then [
wl-clipboard
xdg-desktop-portal
xdg-desktop-portal-wlr
xdg-desktop-portal-gtk
] else [];
programs.rofi = {
enable = true;
font = "Noto Sans Mono 12";
package = lib.mkIf config.wayland.windowManager.sway.enable pkgs.rofi-wayland;
plugins = with pkgs; [
rofi-calc
];
theme = with config.lib.formats.rasi; let transparent = mkLiteral "transparent"; in {
"*" = rec {
highlight = mkLiteral "bold italic";
scrollbar = true;
background = transparent;
background-color = mkLiteral "#24101a80";
foreground = mkLiteral "#ebdadd";
border-color = foreground;
separatorcolor = border-color;
scrollbar-handle = border-color;
normal-background = transparent;
normal-foreground = foreground;
alternate-normal-background = transparent;
alternate-normal-foreground = normal-foreground;
selected-normal-background = mkLiteral "#394893";
selected-normal-foreground = mkLiteral "#e66e6e";
active-background = foreground;
active-foreground = mkLiteral "#24101a";
alternate-active-background = active-background;
alternate-active-foreground = active-foreground;
selected-active-background = mkLiteral "#e66e6e";
selected-active-foreground = mkLiteral "#394893";
urgent-background = mkLiteral "#e66e6e";
urgent-foreground = foreground;
alternate-urgent-background = urgent-background;
alternate-urgent-foreground = urgent-foreground;
selected-urgent-background = mkLiteral "#394893";
selected-urgent-foreground = mkLiteral "#ebbe5f";
};
"@import" = "gruvbox-common.rasi";
};
terminal = config.terminalBin;
extraConfig = {
icon-theme = "hicolor";
drun-match-fields = "name,generic,exec,keywords";
show-icons = true;
sort = true;
sorting-method = "fzf";
steal-focus = true;
};
};
}

View file

@ -16,14 +16,14 @@ in {
terminalBinX = getTerminalBin (lib.lists.findFirst (term: term != "foot") null config.terminals);
colors = {
base = [
"523b3f"
"e66e6e"
"8cbf73"
"ebbe5f"
"5968b3"
"a64999"
"77c7c2"
"f0e4e6"
"523b3f" # black
"e66e6e" # red
"8cbf73" # green
"ebbe5f" # yellow
"5968b3" # blue
"a64999" # magenta
"77c7c2" # cyan
"f0e4e6" # white
"6b4d52"
"e66e6e"
"8cbf73"

View file

@ -21,6 +21,26 @@
"type": "github"
}
},
"nix-gaming": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1676564857,
"narHash": "sha256-E2O086asoR2sFhsEvPVCdneVYNoP1JbQ4B8OcIdpdPU=",
"owner": "fufexan",
"repo": "nix-gaming",
"rev": "dbe7029d83ff8ab3db3e379c7a1fb65a309c5c54",
"type": "github"
},
"original": {
"owner": "fufexan",
"repo": "nix-gaming",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1676795730,
@ -52,6 +72,7 @@
"root": {
"inputs": {
"home-manager": "home-manager",
"nix-gaming": "nix-gaming",
"nixpkgs": "nixpkgs",
"nur": "nur"
}

View file

@ -9,9 +9,13 @@
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-gaming = {
url = "github:fufexan/nix-gaming";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, home-manager, nur }:
outputs = { self, nixpkgs, home-manager, nur, nix-gaming }:
let
# IRL-related private config
priv = if builtins.pathExists ./private.nix then (import ./private.nix) else {};
@ -22,6 +26,7 @@
pkgs = nixpkgs.legacyPackages."x86_64-linux";
modules = [
nur.nixosModules.nur
{ nixpkgs.overlays = [ nix-gaming.overlays.default ]; }
./hosts/nixmsi.nix
(getPriv "nixmsi")
];

View file

@ -35,6 +35,7 @@
"steam-original"
"steam-runtime"
"steamcmd"
"osu-lazer-bin"
];
home.sessionVariables = let sources = (import ../_sources/generated.nix {
inherit (pkgs) fetchgit fetchurl fetchFromGitHub dockerTools;
@ -51,18 +52,17 @@
};
home.packages = with pkgs; [
openrgb piper
steam-run steam
osu-lazer-bin
easyeffects
# wineWowPackages.waylandFull
winetricks
protontricks # proton-caller
bottles
# bottles
virtmanager
gimp krita blender
tdesktop
clang rustc rustfmt cargo clippy
(import ../common/home-daemon.nix { inherit lib pkgs; })
# waiting until the PR gets merged
(looking-glass-client.overrideAttrs (old: {
version = "B6";

View file

@ -1,2 +1,2 @@
# [ (import (builtins.fetchTarball "https://github.com/oxalica/rust-overlay/archive/master.tar.gz")) ]
[ (import <rust-overlay>) ]
[ (import <rust-overlay>) (import <nix-gaming>).overlays.default ]