changes
This commit is contained in:
parent
bcb3862c89
commit
bd47069dd6
@ -1,29 +0,0 @@
|
|||||||
{ stdenv, fetchFromGitHub, coreutils, scrot, ffmpeg, gawk
|
|
||||||
, i3lock-color, getopt, fontconfig
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
rev = "c8f648c5e35178dd39ecc83094bf921752b7878b";
|
|
||||||
name = "i3lock-fancy-ffmpeg_rev${builtins.substring 0 7 rev}";
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "rinfiyks";
|
|
||||||
repo = "i3lock-fancy";
|
|
||||||
inherit rev;
|
|
||||||
sha256 = "1pdvzi5d9p2r5md2g289j95333nkpb3ah3si91c5f6350swd8jmz";
|
|
||||||
};
|
|
||||||
patchPhase = ''
|
|
||||||
rm Makefile
|
|
||||||
'';
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin $out/share/i3lock-fancy-ffmpeg/icons
|
|
||||||
cp i3lock-fancy $out/bin/i3lock-fancy-ffmpeg
|
|
||||||
cp icons/lock*.png $out/share/i3lock-fancy-ffmpeg/icons
|
|
||||||
'';
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
description = "i3lock is a bash script that takes a screenshot of the desktop, blurs the background and adds a lock icon and text.";
|
|
||||||
homepage = https://github.com/meskarune/i3lock-fancy;
|
|
||||||
maintainers = with maintainers; [ ];
|
|
||||||
license = licenses.mit;
|
|
||||||
platforms = platforms.linux;
|
|
||||||
};
|
|
||||||
}
|
|
37
modules/applications/i3lock-fancy.nix
Normal file
37
modules/applications/i3lock-fancy.nix
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{ stdenv, fetchFromGitHub, coreutils, i3lock-color, getopt, fontconfig, ffmpeg_4, xorg }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
rev = "c8f648c5e35178dd39ecc83094bf921752b7878b";
|
||||||
|
name = "i3lock-fancy-ffmpeg_rev${builtins.substring 0 7 rev}";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "rinfiyks";
|
||||||
|
repo = "i3lock-fancy";
|
||||||
|
inherit rev;
|
||||||
|
sha256 = "1pdvzi5d9p2r5md2g289j95333nkpb3ah3si91c5f6350swd8jmz";
|
||||||
|
};
|
||||||
|
buildInputs = [ i3lock-color xorg.xrandr ffmpeg_4 coreutils getopt fontconfig ];
|
||||||
|
patchPhase = ''
|
||||||
|
sed -i -e "s|(mktemp)|(${coreutils}/bin/mktemp)|" i3lock-fancy
|
||||||
|
sed -i -e "s|(xrandr)|(${xorg.xrandr}/bin/xrandr)|" i3lock-fancy
|
||||||
|
sed -i -e "s|'rm -f |'${coreutils}/bin/rm -f |" i3lock-fancy
|
||||||
|
sed -i -e "s|i3lock -i |${i3lock-color}/bin/i3lock-color -i |" i3lock-fancy
|
||||||
|
sed -i -e 's|lock_file="/usr/share/i3lock-fancy/lock.png"|lock_file="'$out'/share/i3lock-fancy/icons/lock.png"|' i3lock-fancy
|
||||||
|
sed -i -e "s|getopt |${getopt}/bin/getopt |" i3lock-fancy
|
||||||
|
sed -i -e "s|fc-match |${fontconfig.bin}/bin/fc-match |" i3lock-fancy
|
||||||
|
sed -i -e "s|fc-list |${fontconfig.bin}/bin/fc-list |" i3lock-fancy
|
||||||
|
sed -i -e "s|ffmpeg -f |${ffmpeg_4}/bin/ffmpeg -f |" i3lock-fancy
|
||||||
|
rm Makefile
|
||||||
|
'';
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin $out/share/i3lock-fancy/icons
|
||||||
|
cp i3lock-fancy $out/bin/i3lock-fancy
|
||||||
|
cp icons/lock*.png $out/share/i3lock-fancy/icons
|
||||||
|
'';
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "i3lock is a bash script that takes a screenshot of the desktop, blurs the background and adds a lock icon and text.";
|
||||||
|
homepage = https://github.com/meskarune/i3lock-fancy;
|
||||||
|
maintainers = with maintainers; [ ];
|
||||||
|
license = licenses.mit;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
@ -17,7 +17,7 @@ with deviceSpecific; {
|
|||||||
|
|
||||||
lxqt.pavucontrol-qt
|
lxqt.pavucontrol-qt
|
||||||
bibata-cursors
|
bibata-cursors
|
||||||
i3lock-fancy-ffmpeg
|
i3lock-fancy
|
||||||
# Samba support
|
# Samba support
|
||||||
cifs-utils
|
cifs-utils
|
||||||
# Utils
|
# Utils
|
||||||
@ -39,7 +39,6 @@ with deviceSpecific; {
|
|||||||
ranger
|
ranger
|
||||||
youtube-dl
|
youtube-dl
|
||||||
speedcrunch
|
speedcrunch
|
||||||
libreoffice
|
|
||||||
feh
|
feh
|
||||||
setroot
|
setroot
|
||||||
maim
|
maim
|
||||||
@ -51,12 +50,11 @@ with deviceSpecific; {
|
|||||||
powertop
|
powertop
|
||||||
# Other
|
# Other
|
||||||
blueman
|
blueman
|
||||||
|
] ++ lib.optionals (!isVM) [
|
||||||
|
libreoffice
|
||||||
];
|
];
|
||||||
|
|
||||||
home-manager.users.alukard.home.packages = with pkgs; [
|
home-manager.users.alukard.home.packages = with pkgs; [
|
||||||
steam
|
|
||||||
steam-run
|
|
||||||
|
|
||||||
nix-zsh-completions
|
nix-zsh-completions
|
||||||
qbittorrent
|
qbittorrent
|
||||||
vscodium
|
vscodium
|
||||||
@ -64,6 +62,9 @@ with deviceSpecific; {
|
|||||||
tdesktop
|
tdesktop
|
||||||
spotifywm
|
spotifywm
|
||||||
discord
|
discord
|
||||||
|
] ++ lib.optionals (!isVM) [
|
||||||
|
steam
|
||||||
|
steam-run
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,91 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfgC = config.services.barrier.client;
|
|
||||||
cfgS = config.services.barrier.server;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options = {
|
|
||||||
services.barrier = {
|
|
||||||
client = {
|
|
||||||
enable = mkOption {
|
|
||||||
default = false;
|
|
||||||
description = "
|
|
||||||
Whether to enable the Barrier client (receive keyboard and mouse events from a Barrier server).
|
|
||||||
";
|
|
||||||
};
|
|
||||||
screenName = mkOption {
|
|
||||||
default = "";
|
|
||||||
description = ''
|
|
||||||
Use the given name instead of the hostname to identify
|
|
||||||
ourselves to the server.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
serverAddress = mkOption {
|
|
||||||
description = ''
|
|
||||||
The server address is of the form: [hostname][:port]. The
|
|
||||||
hostname must be the address or hostname of the server. The
|
|
||||||
port overrides the default port, 24800.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
autoStart = mkOption {
|
|
||||||
default = true;
|
|
||||||
type = types.bool;
|
|
||||||
description = "Whether the Barrier client should be started automatically.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
server = {
|
|
||||||
enable = mkOption {
|
|
||||||
default = false;
|
|
||||||
description = ''
|
|
||||||
Whether to enable the Barrier server (send keyboard and mouse events).
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
configFile = mkOption {
|
|
||||||
default = "/etc/barrier-server.conf";
|
|
||||||
description = "The Barrier server configuration file.";
|
|
||||||
};
|
|
||||||
screenName = mkOption {
|
|
||||||
default = "";
|
|
||||||
description = ''
|
|
||||||
Use the given name instead of the hostname to identify
|
|
||||||
this screen in the configuration.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
address = mkOption {
|
|
||||||
default = "";
|
|
||||||
description = "Address on which to listen for clients.";
|
|
||||||
};
|
|
||||||
autoStart = mkOption {
|
|
||||||
default = true;
|
|
||||||
type = types.bool;
|
|
||||||
description = "Whether the Barrier server should be started automatically.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkMerge [
|
|
||||||
(mkIf cfgC.enable {
|
|
||||||
systemd.user.services."barrier-client" = {
|
|
||||||
after = [ "network.target" "graphical-session.target" ];
|
|
||||||
description = "Barrier client";
|
|
||||||
wantedBy = optional cfgC.autoStart "graphical-session.target";
|
|
||||||
path = [ pkgs.barrier ];
|
|
||||||
serviceConfig.ExecStart = ''${pkgs.barrier}/bin/barrierc -f ${optionalString (cfgC.screenName != "") "-n ${cfgC.screenName}"} ${cfgC.serverAddress}'';
|
|
||||||
serviceConfig.Restart = "on-failure";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
(mkIf cfgS.enable {
|
|
||||||
systemd.user.services."barrier-server" = {
|
|
||||||
after = [ "network.target" "graphical-session.target" ];
|
|
||||||
description = "Barrier server";
|
|
||||||
wantedBy = optional cfgS.autoStart "graphical-session.target";
|
|
||||||
path = [ pkgs.barrier ];
|
|
||||||
serviceConfig.ExecStart = ''${pkgs.barrier}/bin/barriers -c ${cfgS.configFile} -f ${optionalString (cfgS.address != "") "-a ${cfgS.address}"} ${optionalString (cfgS.screenName != "") "-n ${cfgS.screenName}" }'';
|
|
||||||
serviceConfig.Restart = "on-failure";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
@ -21,7 +21,6 @@
|
|||||||
# ./workspace/rclone.nix
|
# ./workspace/rclone.nix
|
||||||
./workspace/xresources.nix
|
./workspace/xresources.nix
|
||||||
./workspace/barrier.nix
|
./workspace/barrier.nix
|
||||||
./barrier-conf.nix
|
|
||||||
./themes.nix
|
./themes.nix
|
||||||
./applications.nix
|
./applications.nix
|
||||||
./secrets.nix
|
./secrets.nix
|
||||||
|
@ -4,8 +4,12 @@
|
|||||||
rec {
|
rec {
|
||||||
# nerdfonts = nur.balsoft.pkgs.roboto-mono-nerd;
|
# nerdfonts = nur.balsoft.pkgs.roboto-mono-nerd;
|
||||||
youtube-to-mpv = pkgs.callPackage ./applications/youtube-to-mpv.nix {};
|
youtube-to-mpv = pkgs.callPackage ./applications/youtube-to-mpv.nix {};
|
||||||
i3lock-fancy-ffmpeg = pkgs.callPackage ./applications/i3lock-fancy-ffmpeg.nix {};
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
];
|
];
|
||||||
|
nixpkgs.config = {
|
||||||
|
packageOverrides = pkgs: {
|
||||||
|
i3lock-fancy = pkgs.callPackage ./applications/i3lock-fancy.nix {};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
@ -1,26 +1,117 @@
|
|||||||
{ config, lib, pkgs, ... }: {
|
{ config, lib, pkgs, ... }:
|
||||||
services.barrier = if config.device == "NixOS-VM" then {
|
with lib;
|
||||||
server.enable = true;
|
let
|
||||||
server.autoStart = true;
|
cfgC = config.services.barrier.client;
|
||||||
server.configFile = pkgs.writeTextFile {
|
cfgS = config.services.barrier.server;
|
||||||
name = "barrier.conf";
|
in
|
||||||
text = ''
|
{
|
||||||
section: screens
|
options = {
|
||||||
NixOS-VM:
|
services.barrier = {
|
||||||
Dell-Laptop:
|
client = {
|
||||||
end
|
enable = mkOption {
|
||||||
section: links
|
default = false;
|
||||||
Dell-Laptop:
|
description = "
|
||||||
right = NixOS-VM
|
Whether to enable the Barrier client (receive keyboard and mouse events from a Barrier server).
|
||||||
end
|
";
|
||||||
section: options
|
};
|
||||||
keystroke(super+alt+left) = switchInDirection(left)
|
screenName = mkOption {
|
||||||
keystroke(super+alt+right) = switchInDirection(right)
|
default = "";
|
||||||
end
|
description = ''
|
||||||
'';
|
Use the given name instead of the hostname to identify
|
||||||
|
ourselves to the server.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
serverAddress = mkOption {
|
||||||
|
description = ''
|
||||||
|
The server address is of the form: [hostname][:port]. The
|
||||||
|
hostname must be the address or hostname of the server. The
|
||||||
|
port overrides the default port, 24800.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
autoStart = mkOption {
|
||||||
|
default = true;
|
||||||
|
type = types.bool;
|
||||||
|
description = "Whether the Barrier client should be started automatically.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
server = {
|
||||||
|
enable = mkOption {
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Whether to enable the Barrier server (send keyboard and mouse events).
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
configFile = mkOption {
|
||||||
|
default = "/etc/barrier-server.conf";
|
||||||
|
description = "The Barrier server configuration file.";
|
||||||
|
};
|
||||||
|
screenName = mkOption {
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
Use the given name instead of the hostname to identify
|
||||||
|
this screen in the configuration.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
address = mkOption {
|
||||||
|
default = "";
|
||||||
|
description = "Address on which to listen for clients.";
|
||||||
|
};
|
||||||
|
autoStart = mkOption {
|
||||||
|
default = true;
|
||||||
|
type = types.bool;
|
||||||
|
description = "Whether the Barrier server should be started automatically.";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
} else {
|
|
||||||
client.enable = true;
|
|
||||||
client.serverAddress = "NixOS-VM";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
config = mkMerge [
|
||||||
|
(mkIf cfgC.enable {
|
||||||
|
systemd.user.services."barrier-client" = {
|
||||||
|
after = [ "network.target" "graphical-session.target" ];
|
||||||
|
description = "Barrier client";
|
||||||
|
wantedBy = optional cfgC.autoStart "graphical-session.target";
|
||||||
|
path = [ pkgs.barrier ];
|
||||||
|
serviceConfig.ExecStart = ''${pkgs.barrier}/bin/barrierc -f ${optionalString (cfgC.screenName != "") "-n ${cfgC.screenName}"} ${cfgC.serverAddress}'';
|
||||||
|
serviceConfig.Restart = "on-failure";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
(mkIf cfgS.enable {
|
||||||
|
systemd.user.services."barrier-server" = {
|
||||||
|
after = [ "network.target" "graphical-session.target" ];
|
||||||
|
description = "Barrier server";
|
||||||
|
wantedBy = optional cfgS.autoStart "graphical-session.target";
|
||||||
|
path = [ pkgs.barrier ];
|
||||||
|
serviceConfig.ExecStart = ''${pkgs.barrier}/bin/barriers -c ${cfgS.configFile} -f ${optionalString (cfgS.address != "") "-a ${cfgS.address}"} ${optionalString (cfgS.screenName != "") "-n ${cfgS.screenName}" }'';
|
||||||
|
serviceConfig.Restart = "on-failure";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
] // {
|
||||||
|
services.barrier = if config.device == "NixOS-VM" then {
|
||||||
|
server.enable = true;
|
||||||
|
server.autoStart = true;
|
||||||
|
server.configFile = pkgs.writeTextFile {
|
||||||
|
name = "barrier.conf";
|
||||||
|
text = ''
|
||||||
|
section: screens
|
||||||
|
NixOS-VM:
|
||||||
|
dell-ataraxia:
|
||||||
|
end
|
||||||
|
section: links
|
||||||
|
dell-ataraxia:
|
||||||
|
right = NixOS-VM
|
||||||
|
end
|
||||||
|
section: options
|
||||||
|
keystroke(super+alt+left) = switchInDirection(left)
|
||||||
|
keystroke(super+alt+right) = switchInDirection(right)
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
client.enable = true;
|
||||||
|
client.serverAddress = "NixOS-VM";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
@ -4,6 +4,7 @@ let
|
|||||||
apps = config.defaultApplications;
|
apps = config.defaultApplications;
|
||||||
in {
|
in {
|
||||||
environment.sessionVariables._JAVA_AWT_WM_NONREPARENTING = "1";
|
environment.sessionVariables._JAVA_AWT_WM_NONREPARENTING = "1";
|
||||||
|
|
||||||
home-manager.users.alukard.xsession.windowManager.i3 = {
|
home-manager.users.alukard.xsession.windowManager.i3 = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.i3-gaps;
|
package = pkgs.i3-gaps;
|
||||||
@ -19,9 +20,10 @@ in {
|
|||||||
];
|
];
|
||||||
"ﱘ" = [{ class = "cantata"; }];
|
"ﱘ" = [{ class = "cantata"; }];
|
||||||
};
|
};
|
||||||
bars = [ ];
|
|
||||||
fonts = [ "RobotoMono 9" ];
|
fonts = [ "RobotoMono 9" ];
|
||||||
|
|
||||||
|
bars = [ ];
|
||||||
|
|
||||||
colors = rec {
|
colors = rec {
|
||||||
background = thm.bg;
|
background = thm.bg;
|
||||||
unfocused = {
|
unfocused = {
|
||||||
@ -49,7 +51,7 @@ in {
|
|||||||
smartGaps = true;
|
smartGaps = true;
|
||||||
smartBorders = "on";
|
smartBorders = "on";
|
||||||
};
|
};
|
||||||
focus.mouseWarping = true;
|
focus.mouseWarping = false;
|
||||||
focus.followMouse = false;
|
focus.followMouse = false;
|
||||||
modifier = "Mod4";
|
modifier = "Mod4";
|
||||||
window = {
|
window = {
|
||||||
@ -61,16 +63,15 @@ in {
|
|||||||
command = "border pixel 2px";
|
command = "border pixel 2px";
|
||||||
criteria = { window_role = "popup"; };
|
criteria = { window_role = "popup"; };
|
||||||
}
|
}
|
||||||
{
|
|
||||||
command = "floating disable";
|
|
||||||
criteria = { class = "pavucontrol-qt"; };
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
startup = map (a: { notification = false; } // a) [
|
startup = map (a: { notification = false; } // a) [
|
||||||
{ command = "${pkgs.xorg.xrdb}/bin/xrdb -merge ~/.Xresources"; }
|
{ command = "${pkgs.xorg.xrdb}/bin/xrdb -merge ~/.Xresources"; }
|
||||||
];
|
];
|
||||||
keybindings = let
|
keybindings = let
|
||||||
|
script = name: content: "exec ${pkgs.writeScript name content}";
|
||||||
|
workspaces = (builtins.genList (x: [ (toString x) (toString x) ]) 10)
|
||||||
|
++ [ [ "c" "" ] [ "t" "" ] [ "m" "ﱘ" ] ];
|
||||||
moveMouse = ''
|
moveMouse = ''
|
||||||
"sh -c 'eval `${pkgs.xdotool}/bin/xdotool \
|
"sh -c 'eval `${pkgs.xdotool}/bin/xdotool \
|
||||||
getactivewindow \
|
getactivewindow \
|
||||||
@ -82,45 +83,43 @@ in {
|
|||||||
"${modifier}+w" = "exec ${apps.dmenu.cmd}";
|
"${modifier}+w" = "exec ${apps.dmenu.cmd}";
|
||||||
"${modifier}+Return" = "exec ${apps.term.cmd}";
|
"${modifier}+Return" = "exec ${apps.term.cmd}";
|
||||||
"${modifier}+e" = "exec ${apps.editor.cmd}";
|
"${modifier}+e" = "exec ${apps.editor.cmd}";
|
||||||
"${modifier}+y" = "exec ${pkgs.youtube-to-mpv}/bin/yt-mpv";
|
"${modifier}+l" = "layout toggle all";
|
||||||
"${modifier}+Shift+y" = "exec ${pkgs.youtube-to-mpv}/bin/yt-mpv --no-video";
|
|
||||||
"${modifier}+l" = "layout toggle";
|
"${modifier}+Left" = "focus child; focus left; ${moveMouse}";
|
||||||
"${modifier}+Left" = "focus child; focus left; exec ${moveMouse}";
|
"${modifier}+Right" = "focus child; focus right; ${moveMouse}";
|
||||||
"${modifier}+Right" = "focus child; focus right; exec ${moveMouse}";
|
"${modifier}+Up" = "focus child; focus up; ${moveMouse}";
|
||||||
"${modifier}+Up" = "focus child; focus up; exec ${moveMouse}";
|
"${modifier}+Down" = "focus child; focus down; ${moveMouse}";
|
||||||
"${modifier}+Down" = "focus child; focus down; exec ${moveMouse}";
|
"${modifier}+Control+Left" = "focus parent; focus left; ${moveMouse}";
|
||||||
"${modifier}+Control+Left" =
|
"${modifier}+Control+Right" = "focus parent; focus right; ${moveMouse}";
|
||||||
"focus parent; focus left; exec ${moveMouse}";
|
"${modifier}+Control+Up" = "focus parent; focus up; ${moveMouse}";
|
||||||
"${modifier}+Control+Right" =
|
"${modifier}+Control+Down" = "focus parent; focus down; ${moveMouse}";
|
||||||
"focus parent; focus right; exec ${moveMouse}";
|
|
||||||
"${modifier}+Control+Up" =
|
|
||||||
"focus parent; focus up; exec ${moveMouse}";
|
|
||||||
"${modifier}+Control+Down" =
|
|
||||||
"focus parent; focus down; exec ${moveMouse}";
|
|
||||||
"${modifier}+Shift+Up" = "move up";
|
"${modifier}+Shift+Up" = "move up";
|
||||||
"${modifier}+Shift+Down" = "move down";
|
"${modifier}+Shift+Down" = "move down";
|
||||||
"${modifier}+Shift+Right" = "move right";
|
"${modifier}+Shift+Right" = "move right";
|
||||||
"${modifier}+Shift+Left" = "move left";
|
"${modifier}+Shift+Left" = "move left";
|
||||||
|
|
||||||
"${modifier}+f" = "fullscreen toggle";
|
"${modifier}+f" = "fullscreen toggle";
|
||||||
"${modifier}+r" = "mode resize";
|
"${modifier}+r" = "mode resize";
|
||||||
"${modifier}+Shift+f" = "floating toggle";
|
"${modifier}+Shift+f" = "floating toggle";
|
||||||
|
"${modifier}+j" = "focus mode_toggle";
|
||||||
|
|
||||||
"${modifier}+d" = "exec ${apps.fm.cmd}";
|
"${modifier}+d" = "exec ${apps.fm.cmd}";
|
||||||
"${modifier}+Escape" = "exec ${apps.monitor.cmd}";
|
"${modifier}+Escape" = "exec ${apps.monitor.cmd}";
|
||||||
"${modifier}+Print" = "exec ${pkgs.maim}/bin/maim -s ~/Pictures/$(date +%s).png";
|
"${modifier}+y" = "exec ${pkgs.youtube-to-mpv}/bin/yt-mpv";
|
||||||
"${modifier}+Control+Print" = "exec ${pkgs.maim}/bin/maim -s | xclip -selection clipboard -t image/png";
|
"${modifier}+Shift+y" = "exec ${pkgs.youtube-to-mpv}/bin/yt-mpv --no-video";
|
||||||
"--release ${modifier}+Shift+Print" =
|
|
||||||
"exec ${pkgs.maim}/bin/maim ~/Pictures/$(date +%s).png";
|
"${modifier}+Print" = script "screenshot"
|
||||||
"--release ${modifier}+Control+Shift+Print" =
|
"${pkgs.maim}/bin/maim Pictures/$(date +%s).png";
|
||||||
"exec ${pkgs.maim}/bin/maim | xclip -selection clipboard -t image/png";
|
"${modifier}+Control+Print" = script "screenshot-copy"
|
||||||
|
"${pkgs.maim}/bin/maim | xclip -selection clipboard -t image/png";
|
||||||
|
"--release ${modifier}+Shift+Print" = script "screenshot-area"
|
||||||
|
"${pkgs.maim}/bin/maim -s Pictures/$(date +%s).png";
|
||||||
|
"--release ${modifier}+Control+Shift+Print" = script "screenshot-area-copy"
|
||||||
|
"${pkgs.maim}/bin/maim -s | xclip -selection clipboard -t image/png";
|
||||||
|
|
||||||
"${modifier}+x" = "move workspace to output right";
|
"${modifier}+x" = "move workspace to output right";
|
||||||
"${modifier}+c" = "workspace ";
|
|
||||||
"${modifier}+Shift+c" = "move container to workspace ";
|
|
||||||
"${modifier}+t" = "workspace ";
|
|
||||||
"${modifier}+Shift+t" = "move container to workspace ";
|
|
||||||
"${modifier}+m" = "workspace ﱘ";
|
|
||||||
"${modifier}+Shift+m" = "move container to workspace ﱘ";
|
|
||||||
"${modifier}+k" = "exec '${pkgs.xorg.xkill}/bin/xkill'";
|
"${modifier}+k" = "exec '${pkgs.xorg.xkill}/bin/xkill'";
|
||||||
"${modifier}+F5" = "restart";
|
"${modifier}+F5" = "reload";
|
||||||
"${modifier}+Shift+F5" = "exit";
|
"${modifier}+Shift+F5" = "exit";
|
||||||
"${modifier}+Shift+h" = "layout splith";
|
"${modifier}+Shift+h" = "layout splith";
|
||||||
"${modifier}+Shift+v" = "layout splitv";
|
"${modifier}+Shift+v" = "layout splitv";
|
||||||
@ -128,21 +127,22 @@ in {
|
|||||||
"${modifier}+v" = "split v";
|
"${modifier}+v" = "split v";
|
||||||
"${modifier}+F1" = "move to scratchpad";
|
"${modifier}+F1" = "move to scratchpad";
|
||||||
"${modifier}+F2" = "scratchpad show";
|
"${modifier}+F2" = "scratchpad show";
|
||||||
"${modifier}+i" =
|
"${modifier}+F11" = "output * dpms off";
|
||||||
"exec sh -c 'xclip -selection clipboard -out | curl -F \"f:1=<-\" ix.io | xclip -selection clipboard -in'";
|
"${modifier}+F12" = "output * dpms on";
|
||||||
# "${modifier}+z" = "exec ${pkgs.lambda-launcher}/bin/lambda-launcher";
|
|
||||||
"XF86AudioPlay" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
|
"XF86AudioPlay" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
|
||||||
"XF86AudioNext" = "exec ${pkgs.playerctl}/bin/playerctl next";
|
"XF86AudioNext" = "exec ${pkgs.playerctl}/bin/playerctl next";
|
||||||
"XF86AudioPrev" = "exec ${pkgs.playerctl}/bin/playerctl previous";
|
"XF86AudioPrev" = "exec ${pkgs.playerctl}/bin/playerctl previous";
|
||||||
"--release button2" = "kill";
|
"--release button2" = "kill";
|
||||||
"--whole-window ${modifier}+button2" = "kill";
|
"--whole-window ${modifier}+button2" = "kill";
|
||||||
} // builtins.listToAttrs (builtins.genList (x: {
|
|
||||||
name = "${modifier}+${toString (x + 1)}";
|
} // builtins.listToAttrs (builtins.map (x: {
|
||||||
value = "workspace ${toString (x + 1)}";
|
name = "${modifier}+${builtins.elemAt x 0}";
|
||||||
}) 9) // builtins.listToAttrs (builtins.genList (x: {
|
value = "workspace ${builtins.elemAt x 1}";
|
||||||
name = "${modifier}+Shift+${toString (x + 1)}";
|
}) workspaces) // builtins.listToAttrs (builtins.map (x: {
|
||||||
value = "move container to workspace ${toString (x + 1)}";
|
name = "${modifier}+Shift+${builtins.elemAt x 0}";
|
||||||
}) 9));
|
value = "move container to workspace ${builtins.elemAt x 1}";
|
||||||
|
}) workspaces));
|
||||||
keycodebindings = {
|
keycodebindings = {
|
||||||
"122" = "exec ${pkgs.pamixer}/bin/pamixer -d 5";
|
"122" = "exec ${pkgs.pamixer}/bin/pamixer -d 5";
|
||||||
"123" = "exec ${pkgs.pamixer}/bin/pamixer -i 5";
|
"123" = "exec ${pkgs.pamixer}/bin/pamixer -i 5";
|
||||||
|
@ -1,7 +1,150 @@
|
|||||||
{ pkgs, config, lib, ... }: {
|
{ pkgs, config, lib, ... }:
|
||||||
|
with import ../../support.nix { inherit lib config; }; {
|
||||||
|
home-manager.users.alukard.home.file.".config/rofi/custom.rasi".text = ''
|
||||||
|
* {
|
||||||
|
red: rgba ( ${thmDec.red}, 100 % );
|
||||||
|
blue: rgba ( ${thmDec.blue}, 100 % );
|
||||||
|
lightfg: rgba ( ${thmDec.cyan}, 100 % );
|
||||||
|
lightbg: rgba ( ${thmDec.dark}, 100 % );
|
||||||
|
foreground: rgba ( ${thmDec.purple}, 100 % );
|
||||||
|
background: rgba ( ${thmDec.bg}, 100 % );
|
||||||
|
background-color: rgba ( ${thmDec.bg}, 0 % );
|
||||||
|
separatorcolor: @foreground;
|
||||||
|
border-color: @foreground;
|
||||||
|
selected-normal-foreground: @background;
|
||||||
|
selected-normal-background: @blue;
|
||||||
|
selected-active-foreground: @lightbg;
|
||||||
|
selected-active-background: @lightfg;
|
||||||
|
selected-urgent-foreground: @background;
|
||||||
|
selected-urgent-background: @red;
|
||||||
|
normal-foreground: @foreground;
|
||||||
|
normal-background: @background;
|
||||||
|
active-foreground: @blue;
|
||||||
|
active-background: @background;
|
||||||
|
urgent-foreground: @red;
|
||||||
|
urgent-background: @background;
|
||||||
|
alternate-normal-foreground: @foreground;
|
||||||
|
alternate-normal-background: @lightbg;
|
||||||
|
alternate-active-foreground: @blue;
|
||||||
|
alternate-active-background: @lightbg;
|
||||||
|
alternate-urgent-foreground: @red;
|
||||||
|
alternate-urgent-background: @lightbg;
|
||||||
|
spacing: 2;
|
||||||
|
}
|
||||||
|
window {
|
||||||
|
background-color: @background;
|
||||||
|
border: 1;
|
||||||
|
padding: 5;
|
||||||
|
}
|
||||||
|
mainbox {
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
message {
|
||||||
|
border: 1px dash 0px 0px ;
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
padding: 1px ;
|
||||||
|
}
|
||||||
|
textbox {
|
||||||
|
text-color: @foreground;
|
||||||
|
}
|
||||||
|
listview {
|
||||||
|
fixed-height: 0;
|
||||||
|
border: 2px dash 0px 0px ;
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
spacing: 2px ;
|
||||||
|
scrollbar: true;
|
||||||
|
padding: 2px 0px 0px ;
|
||||||
|
}
|
||||||
|
element {
|
||||||
|
border: 0;
|
||||||
|
padding: 1px ;
|
||||||
|
}
|
||||||
|
element normal.normal {
|
||||||
|
background-color: @normal-background;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
element normal.urgent {
|
||||||
|
background-color: @urgent-background;
|
||||||
|
text-color: @urgent-foreground;
|
||||||
|
}
|
||||||
|
element normal.active {
|
||||||
|
background-color: @active-background;
|
||||||
|
text-color: @active-foreground;
|
||||||
|
}
|
||||||
|
element selected.normal {
|
||||||
|
background-color: @selected-normal-background;
|
||||||
|
text-color: @selected-normal-foreground;
|
||||||
|
}
|
||||||
|
element selected.urgent {
|
||||||
|
background-color: @selected-urgent-background;
|
||||||
|
text-color: @selected-urgent-foreground;
|
||||||
|
}
|
||||||
|
element selected.active {
|
||||||
|
background-color: @selected-active-background;
|
||||||
|
text-color: @selected-active-foreground;
|
||||||
|
}
|
||||||
|
element alternate.normal {
|
||||||
|
background-color: @alternate-normal-background;
|
||||||
|
text-color: @alternate-normal-foreground;
|
||||||
|
}
|
||||||
|
element alternate.urgent {
|
||||||
|
background-color: @alternate-urgent-background;
|
||||||
|
text-color: @alternate-urgent-foreground;
|
||||||
|
}
|
||||||
|
element alternate.active {
|
||||||
|
background-color: @alternate-active-background;
|
||||||
|
text-color: @alternate-active-foreground;
|
||||||
|
}
|
||||||
|
scrollbar {
|
||||||
|
width: 4px ;
|
||||||
|
border: 0;
|
||||||
|
handle-color: @normal-foreground;
|
||||||
|
handle-width: 8px ;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
sidebar {
|
||||||
|
border: 2px dash 0px 0px ;
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
}
|
||||||
|
button {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
button selected {
|
||||||
|
background-color: @selected-normal-background;
|
||||||
|
text-color: @selected-normal-foreground;
|
||||||
|
}
|
||||||
|
inputbar {
|
||||||
|
spacing: 0px;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
padding: 1px ;
|
||||||
|
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
|
||||||
|
}
|
||||||
|
case-indicator {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
entry {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
prompt {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
textbox-prompt-colon {
|
||||||
|
expand: false;
|
||||||
|
str: ":";
|
||||||
|
margin: 0px 0.3000em 0.0000em 0.0000em ;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
# TODO: отвязать от абсолютного пути (/home/user/...)
|
||||||
home-manager.users.alukard.programs.rofi = {
|
home-manager.users.alukard.programs.rofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
font = "Roboto Mono 14";
|
font = "Roboto Mono 14";
|
||||||
terminal = "\${rxvt_unicode}/bin/urxvt";
|
terminal = "\${rxvt_unicode}/bin/urxvt";
|
||||||
|
theme = "custom.rasi";
|
||||||
};
|
};
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user