feat: add a lot of stuff
This commit is contained in:
parent
8eb88574fb
commit
6067f0ff0b
47 changed files with 578 additions and 136 deletions
27
users/gandalf/modules/gui/common.nix
Normal file
27
users/gandalf/modules/gui/common.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ pkgs, lib, ... }: {
|
||||
colorschemes = rec {
|
||||
custom = {
|
||||
black = "#000000";
|
||||
white = "#ffffff";
|
||||
|
||||
# https://yeun.github.io/open-color/
|
||||
active = "#ffdeeb"; # pink1
|
||||
activeDark = "#f783ac"; # pink4
|
||||
_activeDark = "f783ac"; # pink4
|
||||
inactive = "#495057"; # gray7
|
||||
inactiveDark = "#212529"; # gray9
|
||||
alert = "#c92a2a"; # red9
|
||||
};
|
||||
default = custom;
|
||||
};
|
||||
|
||||
font = "DejaVuSansM Nerd Font";
|
||||
font-size = "14";
|
||||
gtk = "Adwaita";
|
||||
|
||||
wallpaper = pkgs.fetchurl {
|
||||
url = "https://live.staticflickr.com/65535/52797919139_2444712a38_o_d.png";
|
||||
sha256 = "1a9148d8911fa25afa82d3b843ee620173955a7ca705d525f3e9d00e00696308";
|
||||
meta.licenses = lib.licenses.cc0;
|
||||
};
|
||||
}
|
||||
12
users/gandalf/modules/gui/default.nix
Normal file
12
users/gandalf/modules/gui/default.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{ lib, nixosConfig, ... }: {
|
||||
|
||||
imports = with lib; with nixosConfig.bchmnn;
|
||||
optionals gui.enable [
|
||||
./programs
|
||||
] ++ optionals (gui.enable && elem "sway" gui.flavour) [
|
||||
./sway
|
||||
] ++ optionals (gui.enable && elem "i3" gui.flavour) [
|
||||
./i3
|
||||
];
|
||||
|
||||
}
|
||||
42
users/gandalf/modules/gui/i3/autorandr.nix
Normal file
42
users/gandalf/modules/gui/i3/autorandr.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{ ... }: {
|
||||
|
||||
programs.autorandr = {
|
||||
enable = true;
|
||||
|
||||
profiles = {
|
||||
|
||||
nomad = {
|
||||
config = {
|
||||
"LVDS-1" = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
station = {
|
||||
|
||||
config = {
|
||||
"LVDS-1" = {
|
||||
enable = false;
|
||||
};
|
||||
"DP-1-3" = {
|
||||
enable = true;
|
||||
mode = "1920x1080";
|
||||
position = "0x0";
|
||||
};
|
||||
"DP-1-2" = {
|
||||
enable = true;
|
||||
mode = "1920x1080";
|
||||
position = "1920x0";
|
||||
};
|
||||
"VGA-1-2" = {
|
||||
enable = true;
|
||||
mode = "1920x1080";
|
||||
position = "3840x0";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
187
users/gandalf/modules/gui/i3/default.nix
Normal file
187
users/gandalf/modules/gui/i3/default.nix
Normal file
|
|
@ -0,0 +1,187 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
let
|
||||
|
||||
cfg = config.xsession.windowManager.i3.config;
|
||||
# common = (import ../common.nix) { pkgs = pkgs; lib = lib; };
|
||||
common = (import ../common.nix) { inherit pkgs; inherit lib; };
|
||||
|
||||
in {
|
||||
|
||||
imports = [
|
||||
./autorandr.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
alacritty
|
||||
dmenu
|
||||
wireplumber
|
||||
feh # lightweight image viewer (also sets wallpaper)
|
||||
brightnessctl # control screen brightness
|
||||
pavucontrol # control audio
|
||||
playerctl # control player
|
||||
networkmanagerapplet # control network
|
||||
blueman # control bluetooth
|
||||
nextcloud-client # nextcloud client to connect to any instance
|
||||
plasma5Packages.kdeconnect-kde # sync phone and pc
|
||||
];
|
||||
|
||||
xsession.windowManager.i3 = {
|
||||
enable = true;
|
||||
config = {
|
||||
modifier = "Mod4";
|
||||
terminal = "${pkgs.alacritty}/bin/alacritty";
|
||||
menu = "${pkgs.dmenu}/bin/dmenu_run";
|
||||
startup = with pkgs; [
|
||||
{ command = "${feh}/bin/feh --bg-fill ${common.wallpaper}"; }
|
||||
{ command = "${networkmanagerapplet}/bin/nm-applet"; }
|
||||
{ command = "${blueman}/bin/blueman-applet"; }
|
||||
{ command = "${nextcloud-client}/bin/nextcloud"; }
|
||||
{ command = "${plasma5Packages.kdeconnect-kde}/bin/kdeconnect-indicator"; }
|
||||
];
|
||||
fonts = {
|
||||
names = [ common.font ];
|
||||
style = "Bold";
|
||||
size = 12.0;
|
||||
};
|
||||
window = {
|
||||
titlebar = false;
|
||||
border = 4;
|
||||
};
|
||||
gaps = {
|
||||
inner = 5;
|
||||
};
|
||||
colors = {
|
||||
focused = {
|
||||
border = common.colorschemes.default.active;
|
||||
background = common.colorschemes.default.active;
|
||||
text = common.colorschemes.default.black;
|
||||
indicator = common.colorschemes.default.activeDark;
|
||||
childBorder = common.colorschemes.default.active;
|
||||
};
|
||||
focusedInactive = {
|
||||
border = common.colorschemes.default.inactive;
|
||||
background = common.colorschemes.default.inactive;
|
||||
text = common.colorschemes.default.white;
|
||||
indicator = common.colorschemes.default.inactive;
|
||||
childBorder = common.colorschemes.default.inactive;
|
||||
};
|
||||
unfocused = {
|
||||
border = common.colorschemes.default.inactiveDark;
|
||||
background = common.colorschemes.default.inactiveDark;
|
||||
text = common.colorschemes.default.white;
|
||||
indicator = common.colorschemes.default.inactiveDark;
|
||||
childBorder = common.colorschemes.default.inactiveDark;
|
||||
};
|
||||
urgent = {
|
||||
border = common.colorschemes.default.alert;
|
||||
background = common.colorschemes.default.alert;
|
||||
text = common.colorschemes.default.white;
|
||||
indicator = common.colorschemes.default.black;
|
||||
childBorder = common.colorschemes.default.alert;
|
||||
};
|
||||
placeholder = {
|
||||
border = common.colorschemes.default.active;
|
||||
background = common.colorschemes.default.active;
|
||||
text = common.colorschemes.default.black;
|
||||
indicator = common.colorschemes.default.activeDark;
|
||||
childBorder = common.colorschemes.default.active;
|
||||
};
|
||||
};
|
||||
keybindings = {
|
||||
# Basics
|
||||
"${cfg.modifier}+Return" = "exec ${cfg.terminal}";
|
||||
"${cfg.modifier}+q" = "kill";
|
||||
"${cfg.modifier}+i" = "exec ${cfg.menu}";
|
||||
"${cfg.modifier}+space" = "exec ${cfg.menu}";
|
||||
"${cfg.modifier}+Shift+c" = "reload";
|
||||
"${cfg.modifier}+Shift+q" = "exec i3-nagbar -t warning -m 'Do you want to exit i3?' -b 'Yes' 'i3-msg exit'";
|
||||
"${cfg.modifier}+Shift+r" = "restart";
|
||||
|
||||
# Focus
|
||||
"${cfg.modifier}+h" = "focus left";
|
||||
"${cfg.modifier}+j" = "focus down";
|
||||
"${cfg.modifier}+k" = "focus up";
|
||||
"${cfg.modifier}+l" = "focus right";
|
||||
|
||||
"${cfg.modifier}+p" = "focus output left";
|
||||
"${cfg.modifier}+n" = "focus output right";
|
||||
|
||||
# Moving
|
||||
"${cfg.modifier}+Shift+h" = "move left";
|
||||
"${cfg.modifier}+Shift+j" = "move down";
|
||||
"${cfg.modifier}+Shift+k" = "move up";
|
||||
"${cfg.modifier}+Shift+l" = "move right";
|
||||
|
||||
# Workspaces
|
||||
"${cfg.modifier}+1" = "workspace number 1";
|
||||
"${cfg.modifier}+2" = "workspace number 2";
|
||||
"${cfg.modifier}+3" = "workspace number 3";
|
||||
"${cfg.modifier}+4" = "workspace number 4";
|
||||
"${cfg.modifier}+5" = "workspace number 5";
|
||||
"${cfg.modifier}+6" = "workspace number 6";
|
||||
"${cfg.modifier}+7" = "workspace number 7";
|
||||
"${cfg.modifier}+8" = "workspace number 8";
|
||||
"${cfg.modifier}+9" = "workspace number 9";
|
||||
"${cfg.modifier}+0" = "workspace number 10";
|
||||
|
||||
"${cfg.modifier}+Shift+1" = "move container to workspace number 1";
|
||||
"${cfg.modifier}+Shift+2" = "move container to workspace number 2";
|
||||
"${cfg.modifier}+Shift+3" = "move container to workspace number 3";
|
||||
"${cfg.modifier}+Shift+4" = "move container to workspace number 4";
|
||||
"${cfg.modifier}+Shift+5" = "move container to workspace number 5";
|
||||
"${cfg.modifier}+Shift+6" = "move container to workspace number 6";
|
||||
"${cfg.modifier}+Shift+7" = "move container to workspace number 7";
|
||||
"${cfg.modifier}+Shift+8" = "move container to workspace number 8";
|
||||
"${cfg.modifier}+Shift+9" = "move container to workspace number 9";
|
||||
"${cfg.modifier}+Shift+0" = "move container to workspace number 10";
|
||||
|
||||
"${cfg.modifier}+Control+j" = "workspace prev";
|
||||
"${cfg.modifier}+Control+k" = "workspace next";
|
||||
"${cfg.modifier}+Control+Shift+j" = "move workspace to output left";
|
||||
"${cfg.modifier}+Control+Shift+k" = "move workspace to output right";
|
||||
|
||||
# Splits
|
||||
"${cfg.modifier}+b" = "split h";
|
||||
"${cfg.modifier}+v" = "split v";
|
||||
|
||||
# Layouts
|
||||
"${cfg.modifier}+s" = "layout stacking";
|
||||
"${cfg.modifier}+w" = "layout tabbed";
|
||||
"${cfg.modifier}+e" = "layout toggle split";
|
||||
"${cfg.modifier}+f" = "fullscreen toggle";
|
||||
|
||||
"${cfg.modifier}+a" = "focus parent";
|
||||
|
||||
"${cfg.modifier}+d" = "floating toggle";
|
||||
"${cfg.modifier}+Shift+d" = "focus mode_toggle";
|
||||
|
||||
# Scratchpad
|
||||
"${cfg.modifier}+Shift+minus" = "move scratchpad";
|
||||
"${cfg.modifier}+minus" = "scratchpad show";
|
||||
|
||||
# Resize mode
|
||||
"${cfg.modifier}+r" = "mode resize";
|
||||
|
||||
# Multimedia Keys
|
||||
"XF86AudioRaiseVolume" = "exec ${pkgs.wireplumber}/bin/wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+";
|
||||
"XF86AudioLowerVolume" = "exec ${pkgs.wireplumber}/bin/wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-";
|
||||
"XF86AudioMute" = "exec ${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
||||
"XF86AudioMicMute" = "exec ${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
|
||||
|
||||
"XF86MonBrightnessDown" = "exec ${pkgs.brightnessctl}/bin/brightnessctl -q set 5%-";
|
||||
"XF86MonBrightnessUp" = "exec ${pkgs.brightnessctl}/bin/brightnessctl -q set 5%+";
|
||||
|
||||
"XF86AudioPrev" = "exec ${pkgs.playerctl}/bin/playerctl previous";
|
||||
"XF86AudioNext" = "exec ${pkgs.playerctl}/bin/playerctl next";
|
||||
"XF86AudioPlay" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
|
||||
"XF86AudioPause" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
|
||||
|
||||
# Programs
|
||||
"${cfg.modifier}+Shift+v" = "exec ${pkgs.pavucontrol}/bin/pavucontrol";
|
||||
"${cfg.modifier}+Shift+b" = "exec ${pkgs.blueman}/bin/blueman-manager";
|
||||
"${cfg.modifier}+Shift+n" = "exec ${pkgs.networkmanagerapplet}/bin/nm-connection-editor";
|
||||
"${cfg.modifier}+Shift+a" = "exec ${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
23
users/gandalf/modules/gui/programs/alacritty.nix
Normal file
23
users/gandalf/modules/gui/programs/alacritty.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{ pkgs, lib, ... }:
|
||||
let
|
||||
common = (import ../common.nix) { pkgs = pkgs; lib = lib; };
|
||||
in
|
||||
{
|
||||
# alacritty - a cross-platform, GPU-accelerated terminal emulator
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
# custom settings
|
||||
settings = {
|
||||
env.TERM = "xterm-256color";
|
||||
font = {
|
||||
size = 12;
|
||||
draw_bold_text_with_bright_colors = true;
|
||||
normal = {
|
||||
family = common.font;
|
||||
};
|
||||
};
|
||||
scrolling.multiplier = 5;
|
||||
selection.save_to_clipboard = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
86
users/gandalf/modules/gui/programs/chromium.nix
Normal file
86
users/gandalf/modules/gui/programs/chromium.nix
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
|
||||
icons = {
|
||||
chromium = pkgs.fetchurl {
|
||||
url = "https://upload.wikimedia.org/wikipedia/commons/thumb/2/28/Chromium_Logo.svg/240px-Chromium_Logo.svg.png";
|
||||
sha256 = "ff6383a5c08745100e1f8720397c3d6e1b30bc6d4a329cf44bbac16ec03948e7";
|
||||
meta.licenses = lib.licenses.publicDomain;
|
||||
};
|
||||
spotify = pkgs.fetchurl {
|
||||
url = "https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Spotify_icon.svg/232px-Spotify_icon.svg.png";
|
||||
sha256 = "0568b108bf4533e7382e0f3526e211308868d2d2aa35ab8f0cc7beb464e70d5f";
|
||||
meta.licenses = lib.licenses.publicDomain;
|
||||
};
|
||||
teams = pkgs.fetchurl {
|
||||
url = "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Microsoft_Office_Teams_%282018%E2%80%93present%29.svg/258px-Microsoft_Office_Teams_%282018%E2%80%93present%29.svg.png";
|
||||
sha256 = "a7bf37b6132e45c3c3314e7ed3a465138caabe3d87535a8b82a84be6a5f70dac";
|
||||
meta.licenses = lib.licenses.publicDomain;
|
||||
};
|
||||
outlook = pkgs.fetchurl {
|
||||
url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/df/Microsoft_Office_Outlook_%282018%E2%80%93present%29.svg/258px-Microsoft_Office_Outlook_%282018%E2%80%93present%29.svg.png";
|
||||
sha256 = "565fff2ed6a3c4c98daf7a2b56aad386c2d076f4f5b88199785593eb380eb3d4";
|
||||
meta.licenses = lib.licenses.publicDomain;
|
||||
};
|
||||
whatsapp = pkgs.fetchurl {
|
||||
url = "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/WhatsApp.svg/240px-WhatsApp.svg.png";
|
||||
sha256 = "65b4eeab9b5a02c46f75f26abeac3c72a479cf8fce829b7f9c46f59e9a7f9785";
|
||||
meta.licenses = lib.licenses.publicDomain;
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
|
||||
programs.chromium = {
|
||||
enable = true;
|
||||
extensions = [
|
||||
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # ublock origin
|
||||
{ id = "dbepggeogbaibhgnhhndojpepiihcmeb"; } # vimium
|
||||
];
|
||||
};
|
||||
|
||||
xdg.dataFile = {
|
||||
"applications/chromium-development.desktop".text = ''
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Chromium (Development Modus)
|
||||
Exec=${pkgs.chromium}/bin/chromium --allow-file-access-from-files --disable-site-isolation-trials --allow-running-insecure-content --no-referrers --unlimited-storage --user-data-dir=${config.xdg.dataHome}/chromium-development/data --disable-web-security
|
||||
Terminal=false
|
||||
Icon=${icons.chromium}
|
||||
'';
|
||||
"applications/spotify.desktop".text = ''
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Spotify
|
||||
Exec=${pkgs.chromium}/bin/chromium --app=https://spotify.com
|
||||
Terminal=false
|
||||
Icon=${icons.spotify}
|
||||
'';
|
||||
"applications/teams.desktop".text = ''
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Microsoft Teams
|
||||
Exec=${pkgs.chromium}/bin/chromium --app=https://teams.microsoft.com
|
||||
Terminal=false
|
||||
Icon=${icons.teams}
|
||||
'';
|
||||
"applications/outlook.desktop".text = ''
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Microsoft Outlook
|
||||
Exec=${pkgs.chromium}/bin/chromium --app=https://outlook.office365.com/mail
|
||||
Terminal=false
|
||||
Icon=${icons.outlook}
|
||||
'';
|
||||
"applications/whatsapp.desktop".text = ''
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=WhatsApp
|
||||
Exec=${pkgs.chromium}/bin/chromium --app=https://web.whatsapp.com
|
||||
Terminal=false
|
||||
Icon=${icons.whatsapp}
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
||||
24
users/gandalf/modules/gui/programs/default.nix
Normal file
24
users/gandalf/modules/gui/programs/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ pkgs, ... }: {
|
||||
|
||||
imports = [
|
||||
./alacritty.nix
|
||||
./chromium.nix
|
||||
./discord.nix
|
||||
./keyring.nix
|
||||
./obs.nix
|
||||
./vscode.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
firefox
|
||||
speechd # https://support.mozilla.org/en-US/kb/speechd-setup
|
||||
gnome.nautilus
|
||||
gimp
|
||||
vlc
|
||||
qbittorrent
|
||||
gnome.simple-scan
|
||||
telegram-desktop
|
||||
signal-desktop
|
||||
];
|
||||
|
||||
}
|
||||
5
users/gandalf/modules/gui/programs/discord.nix
Normal file
5
users/gandalf/modules/gui/programs/discord.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
discord
|
||||
];
|
||||
}
|
||||
14
users/gandalf/modules/gui/programs/flameshot/build.nix
Normal file
14
users/gandalf/modules/gui/programs/flameshot/build.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{ pkgs , cmake , qttools , qtsvg , kguiaddons , wrapQtAppsHook }:
|
||||
|
||||
# https://ryantm.github.io/nixpkgs/using/overrides/
|
||||
pkgs.flameshot.overrideAttrs (finalAttrs: previousAttrs: {
|
||||
|
||||
pname = previousAttrs.pname + "-wl";
|
||||
|
||||
nativeBuildInputs = [ cmake qttools qtsvg kguiaddons wrapQtAppsHook ];
|
||||
cmakeFlags = [
|
||||
"-DUSE_WAYLAND_CLIPBOARD=1"
|
||||
"-DUSE_WAYLAND_GRIM=1"
|
||||
];
|
||||
|
||||
})
|
||||
3
users/gandalf/modules/gui/programs/flameshot/default.nix
Normal file
3
users/gandalf/modules/gui/programs/flameshot/default.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
import ./flameshot.nix
|
||||
# include with:
|
||||
# flameshot = pkgs.libsForQt5.callPackage ./flameshot/build.nix { };
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
# https://nixos.wiki/wiki/Qt
|
||||
# https://nixos.org/manual/nixpkgs/stable/#sec-language-qt
|
||||
pkgs.libsForQt5.callPackage ./build.nix { }
|
||||
16
users/gandalf/modules/gui/programs/keyring.nix
Normal file
16
users/gandalf/modules/gui/programs/keyring.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{ pkgs, ... }: {
|
||||
|
||||
services.gnome-keyring = {
|
||||
enable = true;
|
||||
components = [
|
||||
"pkcs11"
|
||||
"secrets"
|
||||
"ssh"
|
||||
];
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
gnome.seahorse
|
||||
];
|
||||
|
||||
}
|
||||
8
users/gandalf/modules/gui/programs/obs.nix
Normal file
8
users/gandalf/modules/gui/programs/obs.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ pkgs, ... }: {
|
||||
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
plugins = [ pkgs.obs-studio-plugins.wlrobs ];
|
||||
};
|
||||
|
||||
}
|
||||
161
users/gandalf/modules/gui/programs/vscode.nix
Normal file
161
users/gandalf/modules/gui/programs/vscode.nix
Normal file
|
|
@ -0,0 +1,161 @@
|
|||
{ pkgs, lib, ... }:
|
||||
let
|
||||
common = (import ../common.nix) { pkgs = pkgs; lib = lib; };
|
||||
in
|
||||
{
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
enableExtensionUpdateCheck = true;
|
||||
enableUpdateCheck = false;
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
vscodevim.vim
|
||||
editorconfig.editorconfig
|
||||
dbaeumer.vscode-eslint
|
||||
waderyan.gitblame
|
||||
bierner.markdown-mermaid
|
||||
pkief.material-icon-theme
|
||||
christian-kohler.path-intellisense
|
||||
johnpapa.vscode-peacock
|
||||
esbenp.prettier-vscode
|
||||
bradlc.vscode-tailwindcss
|
||||
jnoortheen.nix-ide
|
||||
];
|
||||
userSettings = {
|
||||
"window.menuBarVisibility" = "toggle";
|
||||
|
||||
"workbench.iconTheme" = "material-icon-theme";
|
||||
|
||||
"explorer.confirmDragAndDrop" = false;
|
||||
"explorer.confirmDelete" = false;
|
||||
|
||||
"editor.renderControlCharacters" = true;
|
||||
"editor.renderWhitespace" = "all";
|
||||
"editor.renderFinalNewline" = "on";
|
||||
"editor.tabSize" = 4;
|
||||
"editor.cursorStyle" = "line";
|
||||
"editor.insertSpaces" = false;
|
||||
"editor.lineNumbers" = "on";
|
||||
"editor.wordSeparators" = "/\\()\"':,.;<>~!@#$%^&*|+=[]{}`?-";
|
||||
"editor.wordWrap" = "on";
|
||||
"editor.suggestSelection" = "first";
|
||||
"editor.fontFamily" = common.font;
|
||||
"editor.fontSize" = 16;
|
||||
"editor.bracketPairColorization.enabled" = true;
|
||||
"editor.guides.bracketPairs" = "active";
|
||||
"editor.quickSuggestions" = {
|
||||
strings = "on";
|
||||
};
|
||||
"editor.codeActionsOnSave" = {
|
||||
".source.organizeImports" = true;
|
||||
};
|
||||
|
||||
"terminal.integrated.fontFamily" = common.font;
|
||||
|
||||
"files.exclude" = {
|
||||
"**/.classpath" = true;
|
||||
"**/.project" = true;
|
||||
"**/.settings" = true;
|
||||
"**/.factorypath" = true;
|
||||
"**/__pycache__" = true;
|
||||
};
|
||||
|
||||
"vim.normalModeKeyBindingsNonRecursive" = [
|
||||
{
|
||||
"before" = [ "<C-p>" ];
|
||||
"commands" = [ "workbench.action.quickOpen" ];
|
||||
}
|
||||
{
|
||||
"before" = [ "<C-b>" ];
|
||||
"commands" = [
|
||||
"workbench.view.explorer"
|
||||
"workbench.action.toggleSidebarVisibility"
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
"[html]" = {
|
||||
"editor.tabSize" = 2;
|
||||
"editor.insertSpaces" = true;
|
||||
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
||||
};
|
||||
"[javascript]" = {
|
||||
"editor.tabSize" = 2;
|
||||
"editor.insertSpaces" = true;
|
||||
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
||||
};
|
||||
"[typescript]" = {
|
||||
"editor.tabSize" = 2;
|
||||
"editor.insertSpaces" = true;
|
||||
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
||||
};
|
||||
"[typescriptreact]" = {
|
||||
"editor.tabSize" = 2;
|
||||
"editor.insertSpaces" = true;
|
||||
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
||||
};
|
||||
"[python]" = {
|
||||
"editor.tabSize" = 4;
|
||||
"editor.insertSpaces" = true;
|
||||
"editor.formatOnType" = true;
|
||||
};
|
||||
"[yaml]" = {
|
||||
"editor.insertSpaces" = true;
|
||||
"editor.tabSize" = 2;
|
||||
"editor.autoIndent" = "advanced";
|
||||
};
|
||||
"[json]" = {
|
||||
"editor.defaultFormatter" = "vscode.json-language-features";
|
||||
};
|
||||
"[jsonc]" = {
|
||||
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
||||
};
|
||||
"[java]" = {
|
||||
"editor.defaultFormatter" = "redhat.java";
|
||||
};
|
||||
"[markdown]" = {
|
||||
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
||||
};
|
||||
"[css]" = {
|
||||
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
||||
};
|
||||
"[nix]" = {
|
||||
"editor.defaultFormatter" = "jnoortheen.nix-ide";
|
||||
};
|
||||
|
||||
|
||||
"git.autofetch" = true;
|
||||
"json.schemaDownload.enable" = true;
|
||||
"javascript.updateImportsOnFileMove.enabled" = "always";
|
||||
"typescript.updateImportsOnFileMove.enabled" = "always";
|
||||
|
||||
"nix.enableLanguageServer" = true;
|
||||
"nix.serverPath" = "${pkgs.nil}/bin/nil";
|
||||
"nix.formatterPath" = "${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt";
|
||||
};
|
||||
|
||||
keybindings = [
|
||||
{
|
||||
key = "ctrl+tab";
|
||||
command = "workbench.action.nextEditor";
|
||||
}
|
||||
{
|
||||
key = "ctrl+shift+tab";
|
||||
command = "workbench.action.previousEditor";
|
||||
}
|
||||
{
|
||||
key = "alt+left";
|
||||
command = "workbench.action.navigateBack";
|
||||
}
|
||||
{
|
||||
key = "alt+right";
|
||||
command = "workbench.action.navigateForward";
|
||||
}
|
||||
{
|
||||
key = "ctrl+f";
|
||||
command = "editor.action.formatDocument";
|
||||
when = "editorHasDocumentFormattingProvider && editorTextFocus && !editorReadonly && !inCompositeEditor";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
317
users/gandalf/modules/gui/sway/default.nix
Normal file
317
users/gandalf/modules/gui/sway/default.nix
Normal file
|
|
@ -0,0 +1,317 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
let
|
||||
|
||||
cfg = config.wayland.windowManager.sway.config;
|
||||
common = (import ../common.nix) { pkgs = pkgs; lib = lib; };
|
||||
|
||||
in
|
||||
{
|
||||
|
||||
imports = [
|
||||
./kanshi.nix
|
||||
./swaync
|
||||
./waybar.nix
|
||||
./wofi.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
brightnessctl # control screen brightness
|
||||
pavucontrol # control audio
|
||||
playerctl # control player
|
||||
networkmanagerapplet # control network
|
||||
dracula-theme # gtk theme
|
||||
gnome3.adwaita-icon-theme # default gnome cursors
|
||||
wl-clipboard # cli tool to manage wayland clipboard
|
||||
sway-contrib.grimshot
|
||||
wdisplays
|
||||
wlr-randr
|
||||
kanshi # display manager
|
||||
nextcloud-client # self hosted cloud client
|
||||
plasma5Packages.kdeconnect-kde # sync phone and pc
|
||||
];
|
||||
|
||||
programs.swaylock = {
|
||||
enable = true;
|
||||
package = pkgs.swaylock-effects;
|
||||
};
|
||||
|
||||
wayland.windowManager.sway = {
|
||||
enable = true;
|
||||
wrapperFeatures = {
|
||||
base = true;
|
||||
gtk = true;
|
||||
};
|
||||
xwayland = true;
|
||||
extraSessionCommands = ''
|
||||
export CLUTTER_BACKEND=wayland;
|
||||
export GDK_BACKEND=wayland;
|
||||
export GDK_DPI_SCALE=1;
|
||||
export NIXOS_OZONE_WL=1;
|
||||
export WLR_NO_HARDWARE_CURSORS=1;
|
||||
export MOZ_ENABLE_WAYLAND=1;
|
||||
export MOZ_USE_XINPUT2=1;
|
||||
export XDG_SESSION_TYPE=wayland;
|
||||
export XDG_CURRENT_DESKTOP=sway;
|
||||
# SDL:
|
||||
export SDL_VIDEODRIVER=wayland
|
||||
# QT (needs qt5.qtwayland in systemPackages):
|
||||
export QT_QPA_PLATFORM=wayland-egl
|
||||
# export QT_QPA_PLATFORM=wayland
|
||||
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
|
||||
# Fix for some Java AWT applications (e.g. Android Studio),
|
||||
# use this if they aren't displayed properly:
|
||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on";
|
||||
|
||||
# Nvidia
|
||||
# export WLR_RENDERER=vulkan;
|
||||
# export GBM_BACKEND=nvidia-drm;
|
||||
# export __GL_GSYNC_ALLOWED=0;
|
||||
# export __GL_VRR_ALLOWED=0;
|
||||
# export __GLX_VENDOR_LIBRARY_NAME=nvidia;
|
||||
# Xwayland compat
|
||||
# export XWAYLAND_NO_GLAMOR=1;
|
||||
'';
|
||||
config = {
|
||||
modifier = "Mod4";
|
||||
terminal = "${pkgs.alacritty}/bin/alacritty";
|
||||
menu = "${pkgs.wofi}/bin/wofi";
|
||||
startup = with pkgs; [
|
||||
{ command = "${kanshi}/bin/kanshi"; }
|
||||
{ command = "${networkmanagerapplet}/bin/nm-applet"; }
|
||||
{ command = "${blueman}/bin/blueman-applet"; }
|
||||
{ command = "${swaynotificationcenter}/bin/swaync"; }
|
||||
{ command = "${nextcloud-client}/bin/nextcloud"; }
|
||||
{ command = "${plasma5Packages.kdeconnect-kde}/bin/kdeconnect-indicator"; }
|
||||
];
|
||||
input = {
|
||||
"2:7:SynPS/2_Synaptics_TouchPad" = {
|
||||
accel_profile = "flat";
|
||||
dwt = "enabled";
|
||||
dwtp = "enabled";
|
||||
tap = "enabled";
|
||||
natural_scroll = "enabled";
|
||||
middle_emulation = "enabled";
|
||||
scroll_factor = "0.3";
|
||||
};
|
||||
"2:10:TPPS/2_IBM_TrackPoint" = {
|
||||
accel_profile = "flat";
|
||||
scroll_factor = "0.5";
|
||||
};
|
||||
};
|
||||
output = {
|
||||
"*".bg = "${common.wallpaper} fill";
|
||||
};
|
||||
left = "h";
|
||||
down = "j";
|
||||
up = "k";
|
||||
right = "l";
|
||||
|
||||
keybindings = {
|
||||
"${cfg.modifier}+Ctrl+Shift+l" = "exec ${pkgs.swaylock-effects}/bin/swaylock --screenshots --clock --indicator --indicator-radius 100 --indicator-thickness 7 --effect-blur 7x5 --effect-vignette 0.5:0.5 --ring-color ffffff --key-hl-color ${common.colorschemes.default._activeDark} --line-color 00000000 --inside-color 00000088 --inside-ver-color ${common.colorschemes.default._activeDark} --separator-color 00000000 --text-color ${common.colorschemes.default._activeDark} --fade-in 0.1";
|
||||
|
||||
# Basics
|
||||
"${cfg.modifier}+Return" = "exec ${cfg.terminal}";
|
||||
"${cfg.modifier}+q" = "kill";
|
||||
"${cfg.modifier}+Space" = "exec ${cfg.menu}";
|
||||
"${cfg.modifier}+Shift+c" = "reload";
|
||||
"${cfg.modifier}+Shift+q" = "exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'";
|
||||
|
||||
# Focus
|
||||
"${cfg.modifier}+${cfg.left}" = "focus left";
|
||||
"${cfg.modifier}+${cfg.down}" = "focus down";
|
||||
"${cfg.modifier}+${cfg.up}" = "focus up";
|
||||
"${cfg.modifier}+${cfg.right}" = "focus right";
|
||||
|
||||
"${cfg.modifier}+p" = "focus output left";
|
||||
"${cfg.modifier}+n" = "focus output right";
|
||||
|
||||
# Moving
|
||||
"${cfg.modifier}+Shift+${cfg.left}" = "move left";
|
||||
"${cfg.modifier}+Shift+${cfg.down}" = "move down";
|
||||
"${cfg.modifier}+Shift+${cfg.up}" = "move up";
|
||||
"${cfg.modifier}+Shift+${cfg.right}" = "move right";
|
||||
|
||||
# Workspaces
|
||||
"${cfg.modifier}+1" = "workspace number 1";
|
||||
"${cfg.modifier}+2" = "workspace number 2";
|
||||
"${cfg.modifier}+3" = "workspace number 3";
|
||||
"${cfg.modifier}+4" = "workspace number 4";
|
||||
"${cfg.modifier}+5" = "workspace number 5";
|
||||
"${cfg.modifier}+6" = "workspace number 6";
|
||||
"${cfg.modifier}+7" = "workspace number 7";
|
||||
"${cfg.modifier}+8" = "workspace number 8";
|
||||
"${cfg.modifier}+9" = "workspace number 9";
|
||||
"${cfg.modifier}+0" = "workspace number 10";
|
||||
|
||||
"${cfg.modifier}+Shift+1" = "move container to workspace number 1";
|
||||
"${cfg.modifier}+Shift+2" = "move container to workspace number 2";
|
||||
"${cfg.modifier}+Shift+3" = "move container to workspace number 3";
|
||||
"${cfg.modifier}+Shift+4" = "move container to workspace number 4";
|
||||
"${cfg.modifier}+Shift+5" = "move container to workspace number 5";
|
||||
"${cfg.modifier}+Shift+6" = "move container to workspace number 6";
|
||||
"${cfg.modifier}+Shift+7" = "move container to workspace number 7";
|
||||
"${cfg.modifier}+Shift+8" = "move container to workspace number 8";
|
||||
"${cfg.modifier}+Shift+9" = "move container to workspace number 9";
|
||||
"${cfg.modifier}+Shift+0" = "move container to workspace number 10";
|
||||
|
||||
"${cfg.modifier}+Control+${cfg.down}" = "workspace prev";
|
||||
"${cfg.modifier}+Control+${cfg.up}" = "workspace next";
|
||||
"${cfg.modifier}+Control+Shift+${cfg.down}" = "move workspace to output left";
|
||||
"${cfg.modifier}+Control+Shift+${cfg.up}" = "move workspace to output right";
|
||||
|
||||
# Splits
|
||||
"${cfg.modifier}+b" = "splith";
|
||||
"${cfg.modifier}+v" = "splitv";
|
||||
|
||||
# Layouts
|
||||
"${cfg.modifier}+s" = "layout stacking";
|
||||
"${cfg.modifier}+w" = "layout tabbed";
|
||||
"${cfg.modifier}+e" = "layout toggle split";
|
||||
"${cfg.modifier}+f" = "fullscreen toggle";
|
||||
|
||||
"${cfg.modifier}+a" = "focus parent";
|
||||
|
||||
"${cfg.modifier}+d" = "floating toggle";
|
||||
"${cfg.modifier}+Shift+d" = "focus mode_toggle";
|
||||
|
||||
# Scratchpad
|
||||
"${cfg.modifier}+Shift+minus" = "move scratchpad";
|
||||
"${cfg.modifier}+minus" = "scratchpad show";
|
||||
|
||||
# Resize mode
|
||||
"${cfg.modifier}+r" = "mode resize";
|
||||
|
||||
# Multimedia Keys
|
||||
"XF86AudioRaiseVolume" = "exec ${pkgs.wireplumber}/bin/wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+";
|
||||
"XF86AudioLowerVolume" = "exec ${pkgs.wireplumber}/bin/wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-";
|
||||
"XF86AudioMute" = "exec ${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
||||
"XF86AudioMicMute" = "exec ${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
|
||||
|
||||
"XF86MonBrightnessDown" = "exec ${pkgs.brightnessctl}/bin/brightnessctl -q set 5%-";
|
||||
"XF86MonBrightnessUp" = "exec ${pkgs.brightnessctl}/bin/brightnessctl -q set 5%+";
|
||||
|
||||
"XF86AudioPrev" = "exec ${pkgs.playerctl}/bin/playerctl previous";
|
||||
"XF86AudioNext" = "exec ${pkgs.playerctl}/bin/playerctl next";
|
||||
"XF86AudioPlay" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
|
||||
"XF86AudioPause" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
|
||||
|
||||
# Screenshot
|
||||
"Print" = "exec ${pkgs.sway-contrib.grimshot}/bin/grimshot copy area";
|
||||
|
||||
# Programs
|
||||
"${cfg.modifier}+Shift+v" = "exec ${pkgs.pavucontrol}/bin/pavucontrol";
|
||||
"${cfg.modifier}+Shift+b" = "exec ${pkgs.blueman}/bin/blueman-manager";
|
||||
"${cfg.modifier}+Shift+n" = "exec ${pkgs.networkmanagerapplet}/bin/nm-connection-editor";
|
||||
"${cfg.modifier}+Shift+a" = "exec ${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw";
|
||||
};
|
||||
fonts = {
|
||||
names = [ common.font ];
|
||||
style = "Bold";
|
||||
size = 12.0;
|
||||
};
|
||||
seat = {
|
||||
"*" = {
|
||||
xcursor_theme = common.gtk;
|
||||
};
|
||||
};
|
||||
window = {
|
||||
titlebar = false;
|
||||
border = 4;
|
||||
};
|
||||
gaps = {
|
||||
inner = 5;
|
||||
};
|
||||
colors = {
|
||||
focused = {
|
||||
border = common.colorschemes.default.active;
|
||||
background = common.colorschemes.default.active;
|
||||
text = common.colorschemes.default.black;
|
||||
indicator = common.colorschemes.default.activeDark;
|
||||
childBorder = common.colorschemes.default.active;
|
||||
};
|
||||
focusedInactive = {
|
||||
border = common.colorschemes.default.inactive;
|
||||
background = common.colorschemes.default.inactive;
|
||||
text = common.colorschemes.default.white;
|
||||
indicator = common.colorschemes.default.inactive;
|
||||
childBorder = common.colorschemes.default.inactive;
|
||||
};
|
||||
unfocused = {
|
||||
border = common.colorschemes.default.inactiveDark;
|
||||
background = common.colorschemes.default.inactiveDark;
|
||||
text = common.colorschemes.default.white;
|
||||
indicator = common.colorschemes.default.inactiveDark;
|
||||
childBorder = common.colorschemes.default.inactiveDark;
|
||||
};
|
||||
urgent = {
|
||||
border = common.colorschemes.default.alert;
|
||||
background = common.colorschemes.default.alert;
|
||||
text = common.colorschemes.default.white;
|
||||
indicator = common.colorschemes.default.black;
|
||||
childBorder = common.colorschemes.default.alert;
|
||||
};
|
||||
placeholder = {
|
||||
border = common.colorschemes.default.active;
|
||||
background = common.colorschemes.default.active;
|
||||
text = common.colorschemes.default.black;
|
||||
indicator = common.colorschemes.default.activeDark;
|
||||
childBorder = common.colorschemes.default.active;
|
||||
};
|
||||
};
|
||||
bars = [
|
||||
{
|
||||
command = "${pkgs.waybar}/bin/waybar";
|
||||
}
|
||||
];
|
||||
};
|
||||
extraConfig = ''
|
||||
for_window [title="Firefox — Sharing Indicator"] {
|
||||
floating enable
|
||||
}
|
||||
for_window [title="Bluetooth Devices"] {
|
||||
floating enable
|
||||
resize set 700px 450px
|
||||
move position 100ppt 0
|
||||
move left 700px
|
||||
}
|
||||
for_window [title="Volume Control"] {
|
||||
floating enable
|
||||
resize set 700px 450px
|
||||
move position 100ppt 0
|
||||
move left 700px
|
||||
}
|
||||
for_window [app_id="nm-connection-editor" title="Network Connections"] {
|
||||
floating enable
|
||||
resize set 700px 450px
|
||||
move position 100ppt 0
|
||||
move left 700px
|
||||
}
|
||||
for_window [app_id="thunderbird" title="Reminder"] {
|
||||
floating enable
|
||||
resize set 700px 450px
|
||||
move position 100ppt 0
|
||||
move left 700px
|
||||
}
|
||||
|
||||
set $ddterm-id dropdown-terminal
|
||||
set $ddterm ${cfg.terminal} --class $ddterm-id
|
||||
set $ddterm-resize resize set 100ppt 40ppt, move position 0 0
|
||||
|
||||
# resize/move new dropdown terminal windows
|
||||
for_window [app_id="$ddterm-id"] {
|
||||
floating enable
|
||||
$ddterm-resize
|
||||
move to scratchpad
|
||||
scratchpad show
|
||||
}
|
||||
|
||||
# show existing or start new dropdown terminal
|
||||
bindsym ${cfg.modifier}+grave exec swaymsg '[app_id="$ddterm-id"] scratchpad show' || $ddterm && sleep .1 && swaymsg '[app_id="$ddterm-id"] $ddterm-resize'
|
||||
bindsym ${cfg.modifier}+Escape exec swaymsg '[app_id="$ddterm-id"] scratchpad show' || $ddterm && sleep .1 && swaymsg '[app_id="$ddterm-id"] $ddterm-resize'
|
||||
# ^-- resize again, case moving to different output
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
45
users/gandalf/modules/gui/sway/kanshi.nix
Normal file
45
users/gandalf/modules/gui/sway/kanshi.nix
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
{ ... }: {
|
||||
|
||||
services.kanshi = {
|
||||
enable = true;
|
||||
|
||||
profiles = {
|
||||
|
||||
nomad = {
|
||||
outputs = [
|
||||
{
|
||||
criteria = "LVDS-1";
|
||||
status = "enable";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
station = {
|
||||
outputs = [
|
||||
{
|
||||
criteria = "LVDS-1";
|
||||
status = "disable";
|
||||
}
|
||||
{
|
||||
criteria = "Dell Inc. DELL U2515H 9X2VY5490XUL";
|
||||
status = "enable";
|
||||
mode = "1920x1080";
|
||||
position = "0,0";
|
||||
}
|
||||
{
|
||||
criteria = "Dell Inc. DELL U2515H 9X2VY5C7138L";
|
||||
status = "enable";
|
||||
mode = "1920x1080";
|
||||
position = "1920,0";
|
||||
}
|
||||
{
|
||||
criteria = "HJW VGA TO HDMI 0x00000100";
|
||||
status = "enable";
|
||||
mode = "1920x1080";
|
||||
position = "3840,0";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
94
users/gandalf/modules/gui/sway/swaync/config.json
Normal file
94
users/gandalf/modules/gui/sway/swaync/config.json
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
{
|
||||
"positionX": "right",
|
||||
"positionY": "top",
|
||||
"notification-icon-size": 64,
|
||||
"notification-body-image-height": 100,
|
||||
"notification-body-image-width": 200,
|
||||
"timeout": 10,
|
||||
"timeout-low": 5,
|
||||
"timeout-critical": 0,
|
||||
"fit-to-screen": true,
|
||||
"keyboard-shortcuts": true,
|
||||
"image-visibility": "when-available",
|
||||
"transition-time": 200,
|
||||
"hide-on-clear": false,
|
||||
"hide-on-action": true,
|
||||
"script-fail-notify": true,
|
||||
"widgets": [
|
||||
"mpris",
|
||||
"volume",
|
||||
"backlight",
|
||||
"title",
|
||||
"dnd",
|
||||
"notifications"
|
||||
],
|
||||
"widget-config": {
|
||||
"title": {
|
||||
"text": "Notifications",
|
||||
"clear-all-button": true,
|
||||
"button-text": "Clear All"
|
||||
},
|
||||
"dnd": {
|
||||
"text": "Do Not Disturb"
|
||||
},
|
||||
"label": {
|
||||
"max-lines": 1,
|
||||
"text": "Notification Center"
|
||||
},
|
||||
"mpris": {
|
||||
"image-size": 96,
|
||||
"image-radius": 12
|
||||
},
|
||||
"volume": {
|
||||
"label": " "
|
||||
},
|
||||
"backlight": {
|
||||
"label": " "
|
||||
},
|
||||
"buttons-grid": {
|
||||
"actions": [
|
||||
{
|
||||
"label": "",
|
||||
"command": "systemctl poweroff"
|
||||
},
|
||||
{
|
||||
"label": "",
|
||||
"command": "systemctl reboot"
|
||||
},
|
||||
{
|
||||
"label": "",
|
||||
"command": "swaylock"
|
||||
},
|
||||
{
|
||||
"label": "",
|
||||
"command": "swaymsg exit"
|
||||
},
|
||||
{
|
||||
"label": "",
|
||||
"command": "systemctl suspend"
|
||||
},
|
||||
{
|
||||
"label": "",
|
||||
"command": "pactl set-sink-mute @DEFAULT_SINK@ toggle"
|
||||
},
|
||||
{
|
||||
"label": "",
|
||||
"command": "pactl set-source-mute @DEFAULT_SOURCE@ toggle"
|
||||
},
|
||||
{
|
||||
"label": "",
|
||||
"command": "iwgtk"
|
||||
},
|
||||
{
|
||||
"label": "",
|
||||
"command": "blueman-manager"
|
||||
},
|
||||
{
|
||||
"label": "",
|
||||
"command": "kooha"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
5
users/gandalf/modules/gui/sway/swaync/default.nix
Normal file
5
users/gandalf/modules/gui/sway/swaync/default.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
imports = [
|
||||
./swaync.nix
|
||||
];
|
||||
}
|
||||
340
users/gandalf/modules/gui/sway/swaync/style.css
Normal file
340
users/gandalf/modules/gui/sway/swaync/style.css
Normal file
|
|
@ -0,0 +1,340 @@
|
|||
@define-color cc-bg rgba(0, 0, 0, 1);
|
||||
@define-color noti-border-color rgba(255, 255, 255, 0.15);
|
||||
@define-color noti-bg rgb(17, 17, 27);
|
||||
@define-color noti-bg-darker rgb(43, 43, 57);
|
||||
@define-color noti-bg-hover rgb(27, 27, 43);
|
||||
@define-color noti-bg-focus rgba(27, 27, 27, 0.6);
|
||||
@define-color noti-close-bg rgba(255, 255, 255, 0.1);
|
||||
@define-color noti-close-bg-hover rgba(255, 255, 255, 0.15);
|
||||
@define-color text-color rgba(169, 177, 214, 1);
|
||||
@define-color text-color-disabled rgb(150, 150, 150);
|
||||
@define-color bg-selected rgb(0, 128, 255);
|
||||
|
||||
* {
|
||||
font-family: DejaVuSansM Nerd Font;
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.control-center .notification-row:focus,
|
||||
.control-center .notification-row:hover {
|
||||
opacity: 1;
|
||||
background: @noti-bg-darker
|
||||
}
|
||||
|
||||
.notification-row {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.notification {
|
||||
border-radius: 12px;
|
||||
margin: 10px;
|
||||
padding: 0;
|
||||
border: 2px solid #7aa2f7
|
||||
}
|
||||
|
||||
.notification-content {
|
||||
background: transparent;
|
||||
padding: 10px;
|
||||
border-radius: 12px
|
||||
}
|
||||
|
||||
.close-button {
|
||||
background: @noti-close-bg;
|
||||
color: @text-color;
|
||||
text-shadow: none;
|
||||
padding: 0;
|
||||
border-radius: 100%;
|
||||
margin-top: 10px;
|
||||
margin-right: 16px;
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
min-width: 24px;
|
||||
min-height: 24px
|
||||
}
|
||||
|
||||
.close-button:hover {
|
||||
box-shadow: none;
|
||||
background: @noti-close-bg-hover;
|
||||
transition: all .15s ease-in-out;
|
||||
border: none
|
||||
}
|
||||
|
||||
.notification-default-action,
|
||||
.notification-action {
|
||||
padding: 4px;
|
||||
margin: 0;
|
||||
box-shadow: none;
|
||||
background: @noti-bg;
|
||||
border: none;
|
||||
color: @text-color;
|
||||
transition: all .15s ease-in-out
|
||||
}
|
||||
|
||||
.notification-default-action:hover,
|
||||
.notification-action:hover {
|
||||
-gtk-icon-effect: none;
|
||||
background: @noti-bg-hover
|
||||
}
|
||||
|
||||
.notification-default-action {
|
||||
border-radius: 12px
|
||||
}
|
||||
|
||||
.notification-default-action:not(:only-child) {
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0
|
||||
}
|
||||
|
||||
.notification-action {
|
||||
border-radius: 0;
|
||||
border-top: none;
|
||||
border-right: none
|
||||
}
|
||||
|
||||
.notification-action:first-child {
|
||||
border-bottom-left-radius: 10px;
|
||||
background: #1b1b2b
|
||||
}
|
||||
|
||||
.notification-action:last-child {
|
||||
border-bottom-right-radius: 10px;
|
||||
background: #1b1b2b
|
||||
}
|
||||
|
||||
.inline-reply {
|
||||
margin-top: 8px
|
||||
}
|
||||
|
||||
.inline-reply-entry {
|
||||
background: @noti-bg-darker;
|
||||
color: @text-color;
|
||||
caret-color: @text-color;
|
||||
border: 1px solid @noti-border-color;
|
||||
border-radius: 12px
|
||||
}
|
||||
|
||||
.inline-reply-button {
|
||||
margin-left: 4px;
|
||||
background: @noti-bg;
|
||||
border: 1px solid @noti-border-color;
|
||||
border-radius: 12px;
|
||||
color: @text-color
|
||||
}
|
||||
|
||||
.inline-reply-button:disabled {
|
||||
background: initial;
|
||||
color: @text-color-disabled;
|
||||
border: 1px solid transparent
|
||||
}
|
||||
|
||||
.inline-reply-button:hover {
|
||||
background: @noti-bg-hover
|
||||
}
|
||||
|
||||
.body-image {
|
||||
margin-top: 6px;
|
||||
background-color: #fff;
|
||||
border-radius: 12px
|
||||
}
|
||||
|
||||
.summary {
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
background: transparent;
|
||||
color: rgba(158, 206, 106, 1);
|
||||
text-shadow: none
|
||||
}
|
||||
|
||||
.time {
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
background: transparent;
|
||||
color: @text-color;
|
||||
text-shadow: none;
|
||||
margin-right: 18px
|
||||
}
|
||||
|
||||
.body {
|
||||
font-size: 15px;
|
||||
font-weight: 400;
|
||||
background: transparent;
|
||||
color: @text-color;
|
||||
text-shadow: none
|
||||
}
|
||||
|
||||
.control-center {
|
||||
background: @cc-bg;
|
||||
border: 1px solid #7aa2f7;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.control-center-list {
|
||||
background: transparent
|
||||
}
|
||||
|
||||
.control-center-list-placeholder {
|
||||
opacity: .5
|
||||
}
|
||||
|
||||
.floating-notifications {
|
||||
background: transparent
|
||||
}
|
||||
|
||||
.blank-window {
|
||||
background: alpha(black, 0.25)
|
||||
}
|
||||
|
||||
.widget-title {
|
||||
color: @text-color;
|
||||
margin: 10px;
|
||||
font-size: 1.5rem
|
||||
}
|
||||
|
||||
.widget-title>button {
|
||||
font-size: initial;
|
||||
color: @text-color;
|
||||
text-shadow: none;
|
||||
background: @noti-bg;
|
||||
border: 1px solid @noti-border-color;
|
||||
box-shadow: none;
|
||||
border-radius: 12px
|
||||
}
|
||||
|
||||
.widget-title>button:hover {
|
||||
background: @noti-bg-hover
|
||||
}
|
||||
|
||||
.widget-dnd {
|
||||
color: @text-color;
|
||||
margin: 10px;
|
||||
font-size: 1.1rem
|
||||
}
|
||||
|
||||
.widget-dnd>switch {
|
||||
font-size: initial;
|
||||
border-radius: 12px;
|
||||
background: @noti-bg;
|
||||
border: 1px solid @noti-border-color;
|
||||
box-shadow: none
|
||||
}
|
||||
|
||||
.widget-dnd>switch:checked {
|
||||
background: @bg-selected
|
||||
}
|
||||
|
||||
.widget-dnd>switch slider {
|
||||
background: @noti-bg-hover;
|
||||
border-radius: 12px
|
||||
}
|
||||
|
||||
.widget-label {
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.widget-label>label {
|
||||
font-size: 1.5rem;
|
||||
color: @text-color;
|
||||
}
|
||||
|
||||
.widget-mpris {
|
||||
color: @text-color;
|
||||
background: @noti-bg-darker;
|
||||
padding: 10px;
|
||||
margin: 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.widget-mpris-player {
|
||||
padding: 8px;
|
||||
margin: 8px
|
||||
}
|
||||
|
||||
.widget-mpris-title {
|
||||
font-weight: 700;
|
||||
font-size: 1.25rem
|
||||
}
|
||||
|
||||
.widget-mpris-subtitle {
|
||||
font-size: 1.1rem
|
||||
}
|
||||
|
||||
.widget-buttons-grid {
|
||||
font-size: x-large;
|
||||
padding: 8px;
|
||||
margin: 20px 10px 10px;
|
||||
border-radius: 12px;
|
||||
background: @noti-bg-darker;
|
||||
}
|
||||
|
||||
.widget-buttons-grid>flowbox>flowboxchild>button {
|
||||
margin: 3px;
|
||||
background: #343b58;
|
||||
border-radius: 12px;
|
||||
color: @text-color
|
||||
}
|
||||
|
||||
.widget-buttons-grid>flowbox>flowboxchild>button:hover {
|
||||
/* background: @noti-bg-hover; */
|
||||
color: rgba(158, 206, 106, 1)
|
||||
}
|
||||
|
||||
.widget-menubar>box>.menu-button-bar>button {
|
||||
border: none;
|
||||
background: transparent
|
||||
}
|
||||
|
||||
.topbar-buttons>button {
|
||||
border: none;
|
||||
background: transparent
|
||||
}
|
||||
|
||||
.widget-volume {
|
||||
background: @noti-bg-darker;
|
||||
padding: 8px;
|
||||
margin: 10px;
|
||||
border-radius: 12px;
|
||||
font-size: x-large;
|
||||
color: @text-color
|
||||
}
|
||||
|
||||
.widget-volume>box>button {
|
||||
background: transparent;
|
||||
border: none
|
||||
}
|
||||
|
||||
.per-app-volume {
|
||||
background-color: @noti-bg;
|
||||
padding: 4px 8px 8px;
|
||||
margin: 0 8px 8px;
|
||||
border-radius: 12px
|
||||
}
|
||||
|
||||
.widget-backlight {
|
||||
background: @noti-bg-darker;
|
||||
padding: 8px;
|
||||
margin: 10px;
|
||||
border-radius: 12px;
|
||||
font-size: x-large;
|
||||
color: @text-color
|
||||
}
|
||||
|
||||
.widget-inhibitors {
|
||||
margin: 8px;
|
||||
font-size: 1.5rem
|
||||
}
|
||||
|
||||
.widget-inhibitors>button {
|
||||
font-size: initial;
|
||||
color: @text-color;
|
||||
text-shadow: none;
|
||||
background: @noti-bg;
|
||||
border: 1px solid @noti-border-color;
|
||||
box-shadow: none;
|
||||
border-radius: 12px
|
||||
}
|
||||
|
||||
.widget-inhibitors>button:hover {
|
||||
background: @noti-bg-hover
|
||||
}
|
||||
13
users/gandalf/modules/gui/sway/swaync/swaync.nix
Normal file
13
users/gandalf/modules/gui/sway/swaync/swaync.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{ pkgs, ... }: {
|
||||
|
||||
home.packages = with pkgs; [
|
||||
swaynotificationcenter
|
||||
libnotify
|
||||
];
|
||||
|
||||
xdg.configFile = {
|
||||
"swaync/config.json".source = ./config.json;
|
||||
"swaync/style.css".source = ./style.css;
|
||||
};
|
||||
|
||||
}
|
||||
338
users/gandalf/modules/gui/sway/waybar.nix
Normal file
338
users/gandalf/modules/gui/sway/waybar.nix
Normal file
|
|
@ -0,0 +1,338 @@
|
|||
{ pkgs, ... }: {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
|
||||
settings.mainBar = {
|
||||
layer = "top";
|
||||
margin = "5 5 5 5";
|
||||
modules-left = [ "sway/workspaces" "sway/window" "sway/mode" ];
|
||||
modules-center = [ "clock" ];
|
||||
modules-right = [ "tray" "network" "pulseaudio" "custom/mem" "temperature" "backlight" "battery" ];
|
||||
"sway/workspaces" = {
|
||||
disable-scroll = true;
|
||||
persistent_workspaces = {
|
||||
"1" = [ ];
|
||||
"2" = [ ];
|
||||
"3" = [ ];
|
||||
"4" = [ ];
|
||||
};
|
||||
};
|
||||
"sway/window" = {
|
||||
format = "{title}";
|
||||
max-length = 43;
|
||||
};
|
||||
"sway/mode" = {
|
||||
format = "<span style=\"italic\">{}</span>";
|
||||
};
|
||||
clock = {
|
||||
timezones = [ "Europe/Berlin" ];
|
||||
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
|
||||
format = "{:%a, %d %b, %H:%M}";
|
||||
actions = {
|
||||
on-click = "tz_up";
|
||||
};
|
||||
};
|
||||
network = {
|
||||
interval = 1;
|
||||
format = "{ifname}";
|
||||
format-wifi = "{signalStrength}% ";
|
||||
format-ethernet = "eth ";
|
||||
format-disconnected = ""; # An empty format will hide the module.
|
||||
tooltip-format = "{ifname} via {gwaddr} ";
|
||||
tooltip-format-wifi = "{essid} ({signalStrength}%) ";
|
||||
tooltip-format-ethernet = "{ifname} ";
|
||||
tooltip-format-disconnected = "Disconnected";
|
||||
};
|
||||
pulseaudio = {
|
||||
reverse-scrolling = 1;
|
||||
format = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth-muted = " {icon} {format_source}";
|
||||
format-muted = " {format_source}";
|
||||
format-source = "{volume}% ";
|
||||
format-source-muted = "";
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
car = "";
|
||||
default = [
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
|
||||
min-length = 13;
|
||||
};
|
||||
"custom/mem" = {
|
||||
format = "{} ";
|
||||
interval = 3;
|
||||
exec = "free -h | awk '/Mem:/{printf $3}'";
|
||||
tooltip = false;
|
||||
};
|
||||
temperature = {
|
||||
critical-threshold = 80;
|
||||
format = "{temperatureC}°C {icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
tooltip = false;
|
||||
};
|
||||
backlight = {
|
||||
device = "intel_backlight";
|
||||
format = "{percent}% {icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
battery = {
|
||||
states = {
|
||||
warning = 30;
|
||||
critical = 15;
|
||||
};
|
||||
format = "{capacity}% {icon}";
|
||||
format-charging = "{capacity}% ";
|
||||
format-plugged = "{capacity}% ";
|
||||
format-alt = "{time} {icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
on-update = pkgs.writeShellScript "check-battery" ''
|
||||
bat=/sys/class/power_supply/BAT0
|
||||
CRIT=''${1:-15}
|
||||
|
||||
FILE=~/.config/waybar/.notified.target
|
||||
|
||||
stat=$(cat $bat/status)
|
||||
perc=$(cat $bat/capacity)
|
||||
|
||||
if [[ $perc -le $CRIT ]] && [[ $stat == "Discharging" ]]; then
|
||||
if [[ ! -f "$FILE" ]]; then
|
||||
notify-send --urgency=critical --icon=dialog-warning "Battery Low" "Current charge: $perc%"
|
||||
touch $FILE
|
||||
fi
|
||||
elif [[ -f "$FILE" ]]; then
|
||||
rm $FILE
|
||||
fi
|
||||
'';
|
||||
};
|
||||
tray = {
|
||||
icon-size = 16;
|
||||
spacing = 0;
|
||||
};
|
||||
};
|
||||
style = ''
|
||||
@define-color bg-color #212529;
|
||||
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-family: DejaVuSansM Nerd Font;
|
||||
min-height: 20px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
window#waybar.hidden {
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
margin-right: 8px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
background: @bg-color;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
transition: none;
|
||||
color: #7c818c;
|
||||
background: transparent;
|
||||
padding: 5px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#workspaces button.persistent {
|
||||
color: #7c818c;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
transition: none;
|
||||
box-shadow: inherit;
|
||||
text-shadow: inherit;
|
||||
border-radius: inherit;
|
||||
color: @bg-color;
|
||||
background: #7c818c;
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
color: white;
|
||||
}
|
||||
|
||||
#window {
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
margin-right: 8px;
|
||||
border-radius: 10px 10px 10px 10px;
|
||||
transition: none;
|
||||
color: #ffffff;
|
||||
background: @bg-color;
|
||||
}
|
||||
|
||||
#mode {
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #ffffff;
|
||||
background: @bg-color;
|
||||
}
|
||||
|
||||
#clock {
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px 10px 10px 10px;
|
||||
transition: none;
|
||||
color: #ffffff;
|
||||
background: @bg-color;
|
||||
}
|
||||
|
||||
#network {
|
||||
margin-right: 8px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #ffffff;
|
||||
background: @bg-color;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
margin-right: 8px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #ffffff;
|
||||
background: @bg-color;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
background-color: #90b1b1;
|
||||
color: #2a5c45;
|
||||
}
|
||||
|
||||
#custom-mem {
|
||||
margin-right: 8px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #ffffff;
|
||||
background: @bg-color;
|
||||
}
|
||||
|
||||
#temperature {
|
||||
margin-right: 8px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #ffffff;
|
||||
background: @bg-color;
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
margin-right: 8px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #ffffff;
|
||||
background: @bg-color;
|
||||
}
|
||||
|
||||
#battery {
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #ffffff;
|
||||
background: @bg-color;
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
color: #ffffff;
|
||||
background-color: #26A65B;
|
||||
}
|
||||
|
||||
#battery.warning:not(.charging) {
|
||||
background-color: #ffbe61;
|
||||
color: black;
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
background-color: #f53c3c;
|
||||
color: #ffffff;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#tray {
|
||||
margin-right: 8px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: #ffffff;
|
||||
background: @bg-color;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
66
users/gandalf/modules/gui/sway/wofi.nix
Normal file
66
users/gandalf/modules/gui/sway/wofi.nix
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
{ pkgs, lib, ... }:
|
||||
let
|
||||
common = (import ../common.nix) { pkgs = pkgs; lib = lib; };
|
||||
in
|
||||
{
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
settings = {
|
||||
show = "drun";
|
||||
allow_images = true;
|
||||
image_size = 24;
|
||||
no_actions = true;
|
||||
};
|
||||
style = ''
|
||||
* {
|
||||
font-family: '${common.font}', monospace;
|
||||
font-size: ${common.font-size}px;
|
||||
color: ${common.colorschemes.default.black};
|
||||
}
|
||||
|
||||
window {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#input {
|
||||
background-color: ${common.colorschemes.default.active};
|
||||
border: 5px;
|
||||
border-color: ${common.colorschemes.default.activeDark};
|
||||
border-radius: 0px;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#scroll {
|
||||
background-color: ${common.colorschemes.default.active};
|
||||
border: 5px;
|
||||
border-color: ${common.colorschemes.default.activeDark};
|
||||
border-radius: 0px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
#entry {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
#entry #text {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
background-color: ${common.colorschemes.default.activeDark};
|
||||
}
|
||||
|
||||
#entry:selected #img {
|
||||
background-color: ${common.colorschemes.default.activeDark};
|
||||
}
|
||||
|
||||
#entry:selected #text {
|
||||
background-color: ${common.colorschemes.default.activeDark};
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue