mirror of
https://github.com/kmein/niveum
synced 2026-03-16 10:11:08 +01:00
configure niri
This commit is contained in:
@@ -223,6 +223,7 @@ in
|
|||||||
./htop.nix
|
./htop.nix
|
||||||
./fu-berlin.nix
|
./fu-berlin.nix
|
||||||
./i3.nix
|
./i3.nix
|
||||||
|
./niri.nix
|
||||||
./i3status-rust.nix
|
./i3status-rust.nix
|
||||||
./keyboard.nix
|
./keyboard.nix
|
||||||
./mycelium.nix
|
./mycelium.nix
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
|
config,
|
||||||
niveumPackages,
|
niveumPackages,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
@@ -107,6 +108,7 @@ in {
|
|||||||
noto-fonts
|
noto-fonts
|
||||||
noto-fonts-cjk-sans
|
noto-fonts-cjk-sans
|
||||||
noto-fonts-emoji
|
noto-fonts-emoji
|
||||||
|
nerd-fonts.blex-mono
|
||||||
roboto-slab
|
roboto-slab
|
||||||
scheherazade-new
|
scheherazade-new
|
||||||
source-code-pro
|
source-code-pro
|
||||||
@@ -119,10 +121,10 @@ in {
|
|||||||
zilla-slab
|
zilla-slab
|
||||||
]; # google-fonts league-of-moveable-type
|
]; # google-fonts league-of-moveable-type
|
||||||
fontconfig.defaultFonts = rec {
|
fontconfig.defaultFonts = rec {
|
||||||
monospace = ["Noto Sans Mono"] ++ emoji;
|
monospace = [config.stylix.fonts.monospace.name] ++ emoji;
|
||||||
serif = ["Noto Serif" "Noto Naskh Arabic" "Noto Serif Devanagari"];
|
serif = [config.stylix.fonts.serif.name "Scheherazade New" "Ezra SIL" "Antinoou" "Noto Serif Devanagari"];
|
||||||
sansSerif = ["Noto Sans Display" "Noto Naskh Arabic" "Noto Sans Hebrew" "Noto Sans Devanagari" "Noto Sans CJK JP" "Noto Sans Coptic" "Noto Sans Syriac Western"];
|
sansSerif = [config.stylix.fonts.sansSerif.name "Noto Sans Display" "Noto Naskh Arabic" "Noto Sans Hebrew" "Noto Sans Devanagari" "Noto Sans CJK JP" "Noto Sans Coptic" "Noto Sans Syriac Western"];
|
||||||
emoji = ["Noto Color Emoji"];
|
emoji = [config.stylix.fonts.emoji.name];
|
||||||
};
|
};
|
||||||
# xelatex fails with woff files
|
# xelatex fails with woff files
|
||||||
# ref https://tex.stackexchange.com/questions/392144/xelatex-and-fontspec-crash-trying-to-find-woff-file-for-some-fonts-but-not-other
|
# ref https://tex.stackexchange.com/questions/392144/xelatex-and-fontspec-crash-trying-to-find-woff-file-for-some-fonts-but-not-other
|
||||||
|
|||||||
@@ -71,7 +71,16 @@ in {
|
|||||||
pkgs.writers.writeDashBin "kb-${language}" ''
|
pkgs.writers.writeDashBin "kb-${language}" ''
|
||||||
${pkgs.xorg.setxkbmap}/bin/setxkbmap ${defaultLanguage.code},${code} ${defaultLanguage.variant},${variant} ${toString (map (option: "-option ${option}") xkbOptions)}
|
${pkgs.xorg.setxkbmap}/bin/setxkbmap ${defaultLanguage.code},${code} ${defaultLanguage.variant},${variant} ${toString (map (option: "-option ${option}") xkbOptions)}
|
||||||
'')
|
'')
|
||||||
languages;
|
languages ++
|
||||||
|
lib.mapAttrsToList
|
||||||
|
(language: settings:
|
||||||
|
let
|
||||||
|
code = if settings ? "code" then settings.code else language;
|
||||||
|
variant = if settings ? "variant" then settings.variant else "";
|
||||||
|
in
|
||||||
|
pkgs.writers.writeDashBin "kb-niri-${language}" ''
|
||||||
|
${pkgs.gnused}/bin/sed -i 's/^\(\s*layout\) ".*"$/\1 "${defaultLanguage.code},${code}"/;s/^\(\s*variant\) ".*"$/\1 "${defaultLanguage.variant},${variant}"/' ~/.config/niri/config.kdl
|
||||||
|
'') languages;
|
||||||
|
|
||||||
# improve held key rate
|
# improve held key rate
|
||||||
services.xserver.displayManager.sessionCommands = "${pkgs.xorg.xset}/bin/xset r rate 300 50";
|
services.xserver.displayManager.sessionCommands = "${pkgs.xorg.xset}/bin/xset r rate 300 50";
|
||||||
|
|||||||
@@ -37,8 +37,8 @@
|
|||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
(pkgs.writers.writeDashBin "vim" ''neovim "$@"'')
|
(pkgs.writers.writeDashBin "vim" ''neovim "$@"'')
|
||||||
(niveumPackages.vim.override {
|
(niveumPackages.vim.override {
|
||||||
# stylixColors = config.lib.stylix.colors;
|
stylixColors = config.lib.stylix.colors;
|
||||||
colorscheme = "base16-gruvbox-light-medium";
|
# colorscheme = "base16-gruvbox-light-medium";
|
||||||
})
|
})
|
||||||
|
|
||||||
# language servers
|
# language servers
|
||||||
|
|||||||
630
configs/niri.nix
630
configs/niri.nix
@@ -1,298 +1,307 @@
|
|||||||
{ pkgs, config, niveumPackages, lib, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
niveumPackages,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
|
inherit (import ../lib) defaultApplications;
|
||||||
niriConfig =
|
niriConfig =
|
||||||
let
|
let
|
||||||
klem = niveumPackages.klem.override {
|
klem = niveumPackages.klem.override {
|
||||||
config.dmenu = "${pkgs.dmenu}/bin/dmenu -i -p klem";
|
config.dmenu = "${pkgs.dmenu}/bin/dmenu -i -p klem";
|
||||||
config.scripts = {
|
config.scripts = {
|
||||||
"p.r paste" = pkgs.writers.writeDash "p.r" ''
|
"p.r paste" = pkgs.writers.writeDash "p.r" ''
|
||||||
${pkgs.curl}/bin/curl -fSs http://p.r --data-binary @- \
|
${pkgs.curl}/bin/curl -fSs http://p.r --data-binary @- \
|
||||||
| ${pkgs.coreutils}/bin/tail --lines=1 \
|
| ${pkgs.coreutils}/bin/tail --lines=1 \
|
||||||
| ${pkgs.gnused}/bin/sed 's/\\<r\\>/krebsco.de/'
|
| ${pkgs.gnused}/bin/sed 's/\\<r\\>/krebsco.de/'
|
||||||
'';
|
'';
|
||||||
"envs.sh paste" = pkgs.writers.writeDash "envs-host" ''
|
"envs.sh paste" = pkgs.writers.writeDash "envs-host" ''
|
||||||
${pkgs.curl}/bin/curl -F "file=@-" https://envs.sh
|
${pkgs.curl}/bin/curl -F "file=@-" https://envs.sh
|
||||||
'';
|
'';
|
||||||
"envs.sh shorten" = pkgs.writers.writeDash "envs-shorten" ''
|
"envs.sh shorten" = pkgs.writers.writeDash "envs-shorten" ''
|
||||||
${pkgs.curl}/bin/curl -F "shorten=$(${pkgs.coreutils}/bin/cat)" https://envs.sh
|
${pkgs.curl}/bin/curl -F "shorten=$(${pkgs.coreutils}/bin/cat)" https://envs.sh
|
||||||
'';
|
'';
|
||||||
"go.r shorten" = pkgs.writers.writeDash "go.r" ''
|
"go.r shorten" = pkgs.writers.writeDash "go.r" ''
|
||||||
${pkgs.curl}/bin/curl -fSs http://go.r -F "uri=$(${pkgs.coreutils}/bin/cat)"
|
${pkgs.curl}/bin/curl -fSs http://go.r -F "uri=$(${pkgs.coreutils}/bin/cat)"
|
||||||
'';
|
'';
|
||||||
"4d2.org paste" = pkgs.writers.writeDash "4d2-paste" ''
|
"4d2.org paste" = pkgs.writers.writeDash "4d2-paste" ''
|
||||||
${pkgs.curl}/bin/curl -F "file=@-" https://depot.4d2.org/
|
${pkgs.curl}/bin/curl -F "file=@-" https://depot.4d2.org/
|
||||||
'';
|
'';
|
||||||
"0x0.st shorten" = pkgs.writers.writeDash "0x0.st" ''
|
"0x0.st shorten" = pkgs.writers.writeDash "0x0.st" ''
|
||||||
${pkgs.curl}/bin/curl -fSs https://0x0.st -F "shorten=$(${pkgs.coreutils}/bin/cat)"
|
${pkgs.curl}/bin/curl -fSs https://0x0.st -F "shorten=$(${pkgs.coreutils}/bin/cat)"
|
||||||
'';
|
'';
|
||||||
"rot13" = pkgs.writers.writeDash "rot13" ''
|
"rot13" = pkgs.writers.writeDash "rot13" ''
|
||||||
${pkgs.coreutils}/bin/tr '[A-Za-z]' '[N-ZA-Mn-za-m]'
|
${pkgs.coreutils}/bin/tr '[A-Za-z]' '[N-ZA-Mn-za-m]'
|
||||||
'';
|
'';
|
||||||
"ipa" = pkgs.writers.writeDash "ipa" ''
|
"ipa" = pkgs.writers.writeDash "ipa" ''
|
||||||
${niveumPackages.ipa}/bin/ipa
|
${niveumPackages.ipa}/bin/ipa
|
||||||
'';
|
'';
|
||||||
"betacode" = pkgs.writers.writeDash "betacode" ''
|
"betacode" = pkgs.writers.writeDash "betacode" ''
|
||||||
${niveumPackages.betacode}/bin/betacode
|
${niveumPackages.betacode}/bin/betacode
|
||||||
'';
|
'';
|
||||||
"curl" = pkgs.writers.writeDash "curl" ''
|
"curl" = pkgs.writers.writeDash "curl" ''
|
||||||
${pkgs.curl}/bin/curl -fSs "$(${pkgs.coreutils}/bin/cat)"
|
${pkgs.curl}/bin/curl -fSs "$(${pkgs.coreutils}/bin/cat)"
|
||||||
'';
|
'';
|
||||||
ocr = pkgs.writers.writeDash "ocr" ''
|
ocr = pkgs.writers.writeDash "ocr" ''
|
||||||
${pkgs.tesseract4}/bin/tesseract -l eng+deu - stdout
|
${pkgs.tesseract4}/bin/tesseract -l eng+deu - stdout
|
||||||
'';
|
'';
|
||||||
emojai = pkgs.writers.writeDash "emojai" ''
|
emojai = pkgs.writers.writeDash "emojai" ''
|
||||||
${pkgs.curl}/bin/curl https://www.emojai.app/api/generate -X POST -H 'Content-Type: application/json' --data-raw "$(${pkgs.jq}/bin/jq -sR '{emoji:.}')" | ${pkgs.jq}/bin/jq -r .result
|
${pkgs.curl}/bin/curl https://www.emojai.app/api/generate -X POST -H 'Content-Type: application/json' --data-raw "$(${pkgs.jq}/bin/jq -sR '{emoji:.}')" | ${pkgs.jq}/bin/jq -r .result
|
||||||
'';
|
'';
|
||||||
"gpt-3.5" = pkgs.writers.writeDash "gpt" ''
|
"gpt-3.5" = pkgs.writers.writeDash "gpt" ''
|
||||||
${niveumPackages.gpt35}/bin/gpt
|
${niveumPackages.gpt35}/bin/gpt
|
||||||
'';
|
'';
|
||||||
gpt-4 = pkgs.writers.writeDash "gpt" ''
|
gpt-4 = pkgs.writers.writeDash "gpt" ''
|
||||||
${niveumPackages.gpt4}/bin/gpt
|
${niveumPackages.gpt4}/bin/gpt
|
||||||
'';
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
in
|
||||||
in
|
''
|
||||||
''
|
spawn-at-startup "${pkgs.ironbar}/bin/ironbar"
|
||||||
spawn-at-startup "waybar"
|
spawn-at-startup "${pkgs.xwayland-satellite}/bin/xwayland-satellite"
|
||||||
spawn-at-startup "${pkgs.xwayland-satellite}/bin/xwayland-satellite"
|
|
||||||
|
|
||||||
environment {
|
environment {
|
||||||
DISPLAY ":0"
|
DISPLAY ":0"
|
||||||
}
|
ANKI_WAYLAND "1"
|
||||||
|
}
|
||||||
|
|
||||||
input {
|
input {
|
||||||
warp-mouse-to-focus
|
warp-mouse-to-focus
|
||||||
focus-follows-mouse max-scroll-amount="0%"
|
focus-follows-mouse max-scroll-amount="0%"
|
||||||
|
|
||||||
keyboard {
|
keyboard {
|
||||||
repeat-rate 35
|
repeat-rate 35
|
||||||
repeat-delay 350
|
repeat-delay 350
|
||||||
track-layout "global"
|
track-layout "global"
|
||||||
|
|
||||||
xkb {
|
xkb {
|
||||||
layout "de"
|
layout "de"
|
||||||
variant "T3"
|
variant "T3"
|
||||||
options "ctrl:nocaps,compose:caps,grp:ctrls_toggle"
|
options "ctrl:nocaps,compose:caps,grp:ctrls_toggle"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
touchpad {
|
touchpad {
|
||||||
click-method "clickfinger"
|
click-method "clickfinger"
|
||||||
tap
|
tap
|
||||||
dwt
|
dwt
|
||||||
dwtp
|
dwtp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
prefer-no-csd
|
prefer-no-csd
|
||||||
|
|
||||||
hotkey-overlay {
|
hotkey-overlay {
|
||||||
skip-at-startup
|
skip-at-startup
|
||||||
}
|
}
|
||||||
|
|
||||||
layout {
|
layout {
|
||||||
gaps 5
|
gaps 5
|
||||||
|
|
||||||
default-column-width {
|
default-column-width {
|
||||||
proportion 0.5
|
|
||||||
}
|
|
||||||
|
|
||||||
preset-column-widths {
|
|
||||||
proportion 0.33333
|
|
||||||
proportion 0.5
|
proportion 0.5
|
||||||
proportion 0.66667
|
}
|
||||||
|
|
||||||
|
preset-column-widths {
|
||||||
|
proportion 0.33333
|
||||||
|
proportion 0.5
|
||||||
|
proportion 0.66667
|
||||||
|
}
|
||||||
|
|
||||||
|
focus-ring {
|
||||||
|
width 2
|
||||||
|
}
|
||||||
|
|
||||||
|
shadow {
|
||||||
|
// on
|
||||||
|
softness 30
|
||||||
|
spread 5
|
||||||
|
offset x=0 y=5
|
||||||
|
draw-behind-window true
|
||||||
|
color "#00000070"
|
||||||
|
// inactive-color "#00000054"
|
||||||
|
}
|
||||||
|
|
||||||
|
tab-indicator {
|
||||||
|
// off
|
||||||
|
hide-when-single-tab
|
||||||
|
place-within-column
|
||||||
|
gap 5
|
||||||
|
width 4
|
||||||
|
length total-proportion=1.0
|
||||||
|
position "right"
|
||||||
|
gaps-between-tabs 2
|
||||||
|
corner-radius 8
|
||||||
|
active-color "red"
|
||||||
|
inactive-color "gray"
|
||||||
|
urgent-color "blue"
|
||||||
|
// active-gradient from="#80c8ff" to="#bbddff" angle=45
|
||||||
|
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||||
|
// urgent-gradient from="#800" to="#a33" angle=45
|
||||||
|
}
|
||||||
|
|
||||||
|
border {
|
||||||
|
off
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
animations {
|
||||||
|
// off
|
||||||
|
workspace-switch {
|
||||||
|
spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001
|
||||||
}
|
}
|
||||||
|
|
||||||
focus-ring {
|
window-open {
|
||||||
width 2
|
duration-ms 150
|
||||||
|
curve "ease-out-expo"
|
||||||
}
|
}
|
||||||
|
|
||||||
shadow {
|
window-close {
|
||||||
// on
|
duration-ms 150
|
||||||
softness 30
|
curve "ease-out-quad"
|
||||||
spread 5
|
|
||||||
offset x=0 y=5
|
|
||||||
draw-behind-window true
|
|
||||||
color "#00000070"
|
|
||||||
// inactive-color "#00000054"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tab-indicator {
|
horizontal-view-movement {
|
||||||
// off
|
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
|
||||||
hide-when-single-tab
|
|
||||||
place-within-column
|
|
||||||
gap 5
|
|
||||||
width 4
|
|
||||||
length total-proportion=1.0
|
|
||||||
position "right"
|
|
||||||
gaps-between-tabs 2
|
|
||||||
corner-radius 8
|
|
||||||
active-color "red"
|
|
||||||
inactive-color "gray"
|
|
||||||
urgent-color "blue"
|
|
||||||
// active-gradient from="#80c8ff" to="#bbddff" angle=45
|
|
||||||
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
|
||||||
// urgent-gradient from="#800" to="#a33" angle=45
|
|
||||||
}
|
}
|
||||||
|
|
||||||
border {
|
window-movement {
|
||||||
off
|
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
animations {
|
window-resize {
|
||||||
// off
|
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
|
||||||
workspace-switch {
|
|
||||||
spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001
|
|
||||||
}
|
|
||||||
|
|
||||||
window-open {
|
|
||||||
duration-ms 150
|
|
||||||
curve "ease-out-expo"
|
|
||||||
}
|
|
||||||
|
|
||||||
window-close {
|
|
||||||
duration-ms 150
|
|
||||||
curve "ease-out-quad"
|
|
||||||
}
|
|
||||||
|
|
||||||
horizontal-view-movement {
|
|
||||||
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
|
|
||||||
}
|
|
||||||
|
|
||||||
window-movement {
|
|
||||||
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
|
|
||||||
}
|
|
||||||
|
|
||||||
window-resize {
|
|
||||||
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
|
|
||||||
}
|
|
||||||
|
|
||||||
config-notification-open-close {
|
|
||||||
spring damping-ratio=0.6 stiffness=1000 epsilon=0.001
|
|
||||||
}
|
|
||||||
|
|
||||||
screenshot-ui-open {
|
|
||||||
duration-ms 200
|
|
||||||
curve "ease-out-quad"
|
|
||||||
}
|
|
||||||
|
|
||||||
overview-open-close {
|
|
||||||
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window-rule {
|
|
||||||
geometry-corner-radius 0
|
|
||||||
clip-to-geometry true
|
|
||||||
}
|
|
||||||
|
|
||||||
window-rule {
|
|
||||||
match is-window-cast-target=true
|
|
||||||
|
|
||||||
border {
|
|
||||||
on
|
|
||||||
width 3
|
|
||||||
active-color "#f38ba8"
|
|
||||||
inactive-color "#7d0d2d"
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
binds {
|
config-notification-open-close {
|
||||||
Mod+Shift+Slash { show-hotkey-overlay; }
|
spring damping-ratio=0.6 stiffness=1000 epsilon=0.001
|
||||||
Mod+Return { spawn "${(defaultApplications pkgs).terminal}"; }
|
}
|
||||||
Mod+D { spawn "${pkgs.wofi}/bin/wofi" "--show" "run"; }
|
|
||||||
Mod+Shift+D { spawn "${niveumPackages.notemenu}/bin/notemenu"; }
|
|
||||||
Mod+T { spawn "${(defaultApplications pkgs).fileManager}"; }
|
|
||||||
Mod+Y { spawn "${(defaultApplications pkgs).browser}"; }
|
|
||||||
Mod+P { spawn "rofi-pass"; }
|
|
||||||
Mod+U { spawn "${niveumPackages.unicodmenu}/bin/unicodmenu"; }
|
|
||||||
|
|
||||||
Mod+B { spawn "pkill" "-SIGUSR1" "waybar"; }
|
screenshot-ui-open {
|
||||||
Mod+F12 { spawn "${klem}/bin/klem"; }
|
duration-ms 200
|
||||||
|
curve "ease-out-quad"
|
||||||
|
}
|
||||||
|
|
||||||
Mod+Shift+Q { close-window; }
|
overview-open-close {
|
||||||
|
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
XF86AudioRaiseVolume allow-when-locked=true { spawn "${pkgs.pamixer}/bin/pamixer -i 5"; }
|
window-rule {
|
||||||
XF86AudioLowerVolume allow-when-locked=true { spawn "${pkgs.pamixer}/bin/pamixer -d 5"; }
|
geometry-corner-radius 0
|
||||||
XF86AudioMute allow-when-locked=true { spawn "${pkgs.pamixer}/bin/pamixer -t"; }
|
clip-to-geometry true
|
||||||
|
}
|
||||||
|
|
||||||
XF86AudioPause allow-when-locked=true { spawn "${pkgs.playerctl}/bin/playerctl play-pause"; }
|
window-rule {
|
||||||
XF86AudioPlay allow-when-locked=true { spawn "${pkgs.playerctl}/bin/playerctl play-pause"; }
|
match is-window-cast-target=true
|
||||||
XF86AudioNext allow-when-locked=true { spawn "${pkgs.playerctl}/bin/playerctl next"; }
|
|
||||||
XF86AudioPrev allow-when-locked=true { spawn "${pkgs.playerctl}/bin/playerctl previous"; }
|
|
||||||
XF86AudioStop allow-when-locked=true { spawn "${pkgs.playerctl}/bin/playerctl stop"; }
|
|
||||||
Print { spawn "flameshot gui"; }
|
|
||||||
Mod+Shift+W { spawn "swaylock"; }
|
|
||||||
|
|
||||||
Mod+Comma { consume-or-expel-window-left; }
|
border {
|
||||||
Mod+Period { consume-or-expel-window-right; }
|
on
|
||||||
Mod+W { toggle-column-tabbed-display; }
|
width 3
|
||||||
Mod+A repeat=false { toggle-overview; }
|
active-color "#f38ba8"
|
||||||
Mod+F { maximize-column; }
|
inactive-color "#7d0d2d"
|
||||||
Mod+C { center-column; }
|
}
|
||||||
Mod+Minus { set-column-width "-25%"; }
|
}
|
||||||
Mod+Plus { set-column-width "+25%"; }
|
|
||||||
|
|
||||||
Mod+Ctrl+0 { spawn "niri" "msg" "action" "switch-layout" "0"; }
|
binds {
|
||||||
Mod+Ctrl+1 { spawn "niri" "msg" "action" "switch-layout" "1"; }
|
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||||
Mod+Ctrl+2 { spawn "niri" "msg" "action" "switch-layout" "2"; }
|
Mod+Return { spawn "${(defaultApplications pkgs).terminal}"; }
|
||||||
Mod+Ctrl+3 { spawn "niri" "msg" "action" "switch-layout" "3"; }
|
Mod+D { spawn "${pkgs.wofi}/bin/wofi" "--show" "run"; }
|
||||||
Mod+Ctrl+4 { spawn "niri" "msg" "action" "switch-layout" "4"; }
|
Mod+Shift+D { spawn "${niveumPackages.notemenu}/bin/notemenu"; }
|
||||||
Mod+Ctrl+5 { spawn "niri" "msg" "action" "switch-layout" "5"; }
|
Mod+T { spawn "${(defaultApplications pkgs).fileManager}"; }
|
||||||
Mod+Ctrl+6 { spawn "niri" "msg" "action" "switch-layout" "6"; }
|
Mod+Y { spawn "${(defaultApplications pkgs).browser}"; }
|
||||||
Mod+Ctrl+7 { spawn "niri" "msg" "action" "switch-layout" "7"; }
|
Mod+P { spawn "${niveumPackages.passmenu}/bin/passmenu"; }
|
||||||
Mod+Ctrl+8 { spawn "niri" "msg" "action" "switch-layout" "8"; }
|
Mod+U { spawn "${niveumPackages.unicodmenu}/bin/unicodmenu"; }
|
||||||
Mod+Ctrl+9 { spawn "niri" "msg" "action" "switch-layout" "9"; }
|
|
||||||
|
|
||||||
Mod+H { focus-column-or-monitor-left; }
|
Mod+B { spawn "${pkgs.ironbar}/bin/ironbar" "bar" "bar-1337" "toggle-visible"; }
|
||||||
Mod+J { focus-window-or-workspace-down; }
|
Mod+F12 { spawn "${klem}/bin/klem"; }
|
||||||
Mod+K { focus-window-or-workspace-up; }
|
|
||||||
Mod+L { focus-column-or-monitor-right; }
|
|
||||||
|
|
||||||
Mod+Shift+H { move-column-left-or-to-monitor-left; }
|
Mod+Shift+Q { close-window; }
|
||||||
Mod+Shift+J { move-window-down-or-to-workspace-down; }
|
|
||||||
Mod+Shift+K { move-window-up-or-to-workspace-up; }
|
|
||||||
Mod+Shift+L { move-column-right-or-to-monitor-right; }
|
|
||||||
|
|
||||||
Mod+Ctrl+H { focus-monitor-left; }
|
XF86AudioRaiseVolume allow-when-locked=true { spawn "${pkgs.pamixer}/bin/pamixer -i 5"; }
|
||||||
Mod+Ctrl+J { focus-monitor-down; }
|
XF86AudioLowerVolume allow-when-locked=true { spawn "${pkgs.pamixer}/bin/pamixer -d 5"; }
|
||||||
Mod+Ctrl+K { focus-monitor-up; }
|
XF86AudioMute allow-when-locked=true { spawn "${pkgs.pamixer}/bin/pamixer -t"; }
|
||||||
Mod+Ctrl+L { focus-monitor-right; }
|
|
||||||
|
|
||||||
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
|
XF86AudioPause allow-when-locked=true { spawn "${pkgs.playerctl}/bin/playerctl play-pause"; }
|
||||||
Mod+Shift+Ctrl+J { move-column-to-workspace-down; }
|
XF86AudioPlay allow-when-locked=true { spawn "${pkgs.playerctl}/bin/playerctl play-pause"; }
|
||||||
Mod+Shift+Ctrl+K { move-column-to-workspace-up; }
|
XF86AudioNext allow-when-locked=true { spawn "${pkgs.playerctl}/bin/playerctl next"; }
|
||||||
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
|
XF86AudioPrev allow-when-locked=true { spawn "${pkgs.playerctl}/bin/playerctl previous"; }
|
||||||
|
XF86AudioStop allow-when-locked=true { spawn "${pkgs.playerctl}/bin/playerctl stop"; }
|
||||||
|
Print { spawn "flameshot gui"; }
|
||||||
|
Mod+Shift+W { spawn "swaylock"; }
|
||||||
|
|
||||||
Mod+Shift+Alt+Ctrl+H { move-workspace-to-monitor-left; }
|
Mod+Comma { consume-or-expel-window-left; }
|
||||||
Mod+Shift+Alt+Ctrl+J { move-workspace-down; }
|
Mod+Period { consume-or-expel-window-right; }
|
||||||
Mod+Shift+Alt+Ctrl+K { move-workspace-up; }
|
Mod+W { toggle-column-tabbed-display; }
|
||||||
Mod+Shift+Alt+Ctrl+L { move-workspace-to-monitor-right; }
|
Mod+A repeat=false { toggle-overview; }
|
||||||
|
Mod+F { maximize-column; }
|
||||||
|
Mod+C { center-column; }
|
||||||
|
Mod+Minus { set-column-width "-25%"; }
|
||||||
|
Mod+Plus { set-column-width "+25%"; }
|
||||||
|
|
||||||
Mod+1 { focus-workspace 1; }
|
Mod+Ctrl+0 { spawn "niri" "msg" "action" "switch-layout" "0"; }
|
||||||
Mod+2 { focus-workspace 2; }
|
Mod+Ctrl+1 { spawn "niri" "msg" "action" "switch-layout" "1"; }
|
||||||
Mod+3 { focus-workspace 3; }
|
Mod+Ctrl+2 { spawn "niri" "msg" "action" "switch-layout" "2"; }
|
||||||
Mod+4 { focus-workspace 4; }
|
Mod+Ctrl+3 { spawn "niri" "msg" "action" "switch-layout" "3"; }
|
||||||
Mod+5 { focus-workspace 5; }
|
Mod+Ctrl+4 { spawn "niri" "msg" "action" "switch-layout" "4"; }
|
||||||
Mod+6 { focus-workspace 6; }
|
Mod+Ctrl+5 { spawn "niri" "msg" "action" "switch-layout" "5"; }
|
||||||
Mod+7 { focus-workspace 7; }
|
Mod+Ctrl+6 { spawn "niri" "msg" "action" "switch-layout" "6"; }
|
||||||
Mod+8 { focus-workspace 8; }
|
Mod+Ctrl+7 { spawn "niri" "msg" "action" "switch-layout" "7"; }
|
||||||
Mod+9 { focus-workspace 9; }
|
Mod+Ctrl+8 { spawn "niri" "msg" "action" "switch-layout" "8"; }
|
||||||
Mod+0 { focus-workspace 10; }
|
Mod+Ctrl+9 { spawn "niri" "msg" "action" "switch-layout" "9"; }
|
||||||
|
|
||||||
Mod+Shift+1 { move-window-to-workspace "1"; }
|
Mod+H { focus-column-or-monitor-left; }
|
||||||
Mod+Shift+2 { move-window-to-workspace "2"; }
|
Mod+J { focus-window-or-workspace-down; }
|
||||||
Mod+Shift+3 { move-window-to-workspace "3"; }
|
Mod+K { focus-window-or-workspace-up; }
|
||||||
Mod+Shift+4 { move-window-to-workspace "4"; }
|
Mod+L { focus-column-or-monitor-right; }
|
||||||
Mod+Shift+5 { move-window-to-workspace "5"; }
|
|
||||||
Mod+Shift+6 { move-window-to-workspace "6"; }
|
Mod+Shift+H { move-column-left-or-to-monitor-left; }
|
||||||
Mod+Shift+7 { move-window-to-workspace "7"; }
|
Mod+Shift+J { move-window-down-or-to-workspace-down; }
|
||||||
Mod+Shift+8 { move-window-to-workspace "8"; }
|
Mod+Shift+K { move-window-up-or-to-workspace-up; }
|
||||||
Mod+Shift+9 { move-window-to-workspace "9"; }
|
Mod+Shift+L { move-column-right-or-to-monitor-right; }
|
||||||
Mod+Shift+0 { move-window-to-workspace "0"; }
|
|
||||||
}
|
Mod+Ctrl+H { focus-monitor-left; }
|
||||||
'';
|
Mod+Ctrl+J { focus-monitor-down; }
|
||||||
in {
|
Mod+Ctrl+K { focus-monitor-up; }
|
||||||
|
Mod+Ctrl+L { focus-monitor-right; }
|
||||||
|
|
||||||
|
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
|
||||||
|
Mod+Shift+Ctrl+J { move-column-to-workspace-down; }
|
||||||
|
Mod+Shift+Ctrl+K { move-column-to-workspace-up; }
|
||||||
|
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
|
||||||
|
|
||||||
|
Mod+Shift+Alt+Ctrl+H { move-workspace-to-monitor-left; }
|
||||||
|
Mod+Shift+Alt+Ctrl+J { move-workspace-down; }
|
||||||
|
Mod+Shift+Alt+Ctrl+K { move-workspace-up; }
|
||||||
|
Mod+Shift+Alt+Ctrl+L { move-workspace-to-monitor-right; }
|
||||||
|
|
||||||
|
Mod+1 { focus-workspace 1; }
|
||||||
|
Mod+2 { focus-workspace 2; }
|
||||||
|
Mod+3 { focus-workspace 3; }
|
||||||
|
Mod+4 { focus-workspace 4; }
|
||||||
|
Mod+5 { focus-workspace 5; }
|
||||||
|
Mod+6 { focus-workspace 6; }
|
||||||
|
Mod+7 { focus-workspace 7; }
|
||||||
|
Mod+8 { focus-workspace 8; }
|
||||||
|
Mod+9 { focus-workspace 9; }
|
||||||
|
Mod+0 { focus-workspace 10; }
|
||||||
|
|
||||||
|
Mod+Shift+1 { move-window-to-workspace "1"; }
|
||||||
|
Mod+Shift+2 { move-window-to-workspace "2"; }
|
||||||
|
Mod+Shift+3 { move-window-to-workspace "3"; }
|
||||||
|
Mod+Shift+4 { move-window-to-workspace "4"; }
|
||||||
|
Mod+Shift+5 { move-window-to-workspace "5"; }
|
||||||
|
Mod+Shift+6 { move-window-to-workspace "6"; }
|
||||||
|
Mod+Shift+7 { move-window-to-workspace "7"; }
|
||||||
|
Mod+Shift+8 { move-window-to-workspace "8"; }
|
||||||
|
Mod+Shift+9 { move-window-to-workspace "9"; }
|
||||||
|
Mod+Shift+0 { move-window-to-workspace "0"; }
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
system.activationScripts.niriConfig = {
|
system.activationScripts.niriConfig = {
|
||||||
text = ''
|
text = ''
|
||||||
cp ${pkgs.writeText "config.kdl" niriConfig} ${config.users.users.me.home}/.config/niri/config.kdl
|
cp ${pkgs.writeText "config.kdl" niriConfig} ${config.users.users.me.home}/.config/niri/config.kdl
|
||||||
@@ -303,14 +312,113 @@ in {
|
|||||||
programs.niri.enable = true;
|
programs.niri.enable = true;
|
||||||
services.displayManager.defaultSession = lib.mkForce "niri";
|
services.displayManager.defaultSession = lib.mkForce "niri";
|
||||||
home-manager.users.me = {
|
home-manager.users.me = {
|
||||||
|
xdg.configFile."ironbar/style.css".text = ''
|
||||||
|
* {
|
||||||
|
font-size: 8pt;
|
||||||
|
font-family: "Gentium Plus", "BlexMono Nerd Font";
|
||||||
|
}
|
||||||
|
|
||||||
|
box, menubar, button {
|
||||||
|
background-color: unset;
|
||||||
|
box-shadow: none;
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clock, .upower, .volume {
|
||||||
|
font-weight: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip * {
|
||||||
|
font-family: "BlexMono Nerd Font";
|
||||||
|
font-size: 7pt;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
xdg.configFile."ironbar/config.json".source = (pkgs.formats.json { }).generate "ironbar.json" {
|
||||||
|
name = "bar-1337";
|
||||||
|
height = 12;
|
||||||
|
layer = "top";
|
||||||
|
position = "bottom";
|
||||||
|
start = [ ];
|
||||||
|
center = [
|
||||||
|
{
|
||||||
|
type = "tray";
|
||||||
|
icon_size = 8;
|
||||||
|
}
|
||||||
|
{ type = "clipboard"; }
|
||||||
|
{ type = "notifications"; }
|
||||||
|
];
|
||||||
|
end = [
|
||||||
|
{
|
||||||
|
type = "upower";
|
||||||
|
icon_size = 8;
|
||||||
|
format = "{percentage}%";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "label";
|
||||||
|
tooltip = "{{df -h --output=size,used,avail,pcent,target}}";
|
||||||
|
label = "\t{{5000:df -h / --output=avail | tail +2}}";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "label";
|
||||||
|
tooltip = "{{free -Lh --si | awk '{for(i=1;i<=NF;i++){printf \"%s%s\", $i, (i%2? OFS: ORS)} if(NF%2) printf ORS}'}}";
|
||||||
|
label = "\t{{500:free -h --si | awk 'NR==2{printf $3 \"\\n\"}'}}";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "label";
|
||||||
|
tooltip = "{{}}";
|
||||||
|
on_click_left = "pamixer -t";
|
||||||
|
on_scroll_up = "pamixer -i 1";
|
||||||
|
on_scroll_down = "pamixer -d 1";
|
||||||
|
label = "{{500:if $(pamixer --get-mute) = true; then echo ; else echo ; fi}}\t{{500:pamixer --get-volume}}%";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "label";
|
||||||
|
tooltip = "{{uptime}}";
|
||||||
|
label = "\t{{500:uptime | sed 's/.*load average: \\([^ ]*\\);.*/\\1/' | tr ' ' '\n'}}";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "label";
|
||||||
|
tooltip = "{{khal list today today -d astro-test-3 }}";
|
||||||
|
label = "";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "label";
|
||||||
|
tooltip = "{{curl wttr.in/?0 | ${pkgs.ansifilter}/bin/ansifilter}}";
|
||||||
|
label = "";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "label";
|
||||||
|
name = "cal";
|
||||||
|
tooltip = "{{cal}}";
|
||||||
|
label = "{{500:date +'<U+F017>\t%Y-%m-%d (%W %a) %H:%M'}}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
programs.alacritty.enable = true; # Super+T in the default setting (terminal)
|
programs.alacritty.enable = true; # Super+T in the default setting (terminal)
|
||||||
programs.swaylock.enable = true; # Super+Alt+L in the default setting (screen locker)
|
programs.swaylock.enable = true; # Super+Alt+L in the default setting (screen locker)
|
||||||
programs.waybar = {
|
services.swaync = {
|
||||||
enable = true; # launch on startup in the default setting (bar)
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
notification-window-width = 300;
|
||||||
|
control-center-width = 300;
|
||||||
|
widgets = [
|
||||||
|
"volume"
|
||||||
|
"mpris"
|
||||||
|
"title"
|
||||||
|
"dnd"
|
||||||
|
"notifications"
|
||||||
|
];
|
||||||
|
widget-config = {
|
||||||
|
title = {
|
||||||
|
text = "ⲡⲧⲏⲣϥ̄";
|
||||||
|
"clear-all-button" = true;
|
||||||
|
"button-text" = "ⲧⲁⲩⲟⲟⲩ";
|
||||||
|
};
|
||||||
|
dnd.text = "ⲙ̄ⲡⲣ̄ϣⲧⲣ̄ⲧⲱⲣⲧ̄";
|
||||||
|
label.text = "ⲧⲙⲏⲧⲉ";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
services.mako.enable = true; # notification daemon
|
|
||||||
services.swayidle.enable = true; # idle management daemon
|
services.swayidle.enable = true; # idle management daemon
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
xdg-desktop-portal-gnome
|
xdg-desktop-portal-gnome
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ in {
|
|||||||
stylix.enable = true;
|
stylix.enable = true;
|
||||||
stylix.image = generatedWallpaper;
|
stylix.image = generatedWallpaper;
|
||||||
|
|
||||||
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-light-medium.yaml";
|
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/ayu-light.yaml";
|
||||||
|
|
||||||
stylix.cursor = {
|
stylix.cursor = {
|
||||||
name = "capitaine-cursors-white";
|
name = "capitaine-cursors-white";
|
||||||
@@ -52,18 +52,18 @@ in {
|
|||||||
|
|
||||||
stylix.fonts = {
|
stylix.fonts = {
|
||||||
serif = {
|
serif = {
|
||||||
package = pkgs.noto-fonts;
|
package = pkgs.gentium;
|
||||||
name = "Noto Serif";
|
name = "Gentium Plus";
|
||||||
};
|
};
|
||||||
|
|
||||||
sansSerif = {
|
sansSerif = {
|
||||||
package = pkgs.noto-fonts;
|
package = pkgs.gentium;
|
||||||
name = "Noto Sans";
|
name = "Gentium Plus";
|
||||||
};
|
};
|
||||||
|
|
||||||
monospace = {
|
monospace = {
|
||||||
package = pkgs.noto-fonts;
|
package = pkgs.nerd-fonts.blex-mono;
|
||||||
name = "Noto Sans Mono";
|
name = "BlexMono Nerd Font";
|
||||||
};
|
};
|
||||||
|
|
||||||
emoji = {
|
emoji = {
|
||||||
|
|||||||
@@ -407,6 +407,7 @@
|
|||||||
text2pdf = pkgs.callPackage packages/text2pdf.nix {};
|
text2pdf = pkgs.callPackage packages/text2pdf.nix {};
|
||||||
timer = pkgs.callPackage packages/timer.nix {};
|
timer = pkgs.callPackage packages/timer.nix {};
|
||||||
tocharian-font = pkgs.callPackage packages/tocharian-font.nix {};
|
tocharian-font = pkgs.callPackage packages/tocharian-font.nix {};
|
||||||
|
passmenu = pkgs.callPackage packages/passmenu.nix {};
|
||||||
trans = pkgs.callPackage packages/trans.nix {};
|
trans = pkgs.callPackage packages/trans.nix {};
|
||||||
ttspaste = pkgs.callPackage packages/ttspaste.nix {};
|
ttspaste = pkgs.callPackage packages/ttspaste.nix {};
|
||||||
unicodmenu = pkgs.callPackage packages/unicodmenu.nix {};
|
unicodmenu = pkgs.callPackage packages/unicodmenu.nix {};
|
||||||
|
|||||||
18
packages/passmenu.nix
Normal file
18
packages/passmenu.nix
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{ writers, wofi, pass, libnotify, ... }:
|
||||||
|
writers.writeBashBin "passmenu" ''
|
||||||
|
shopt -s nullglob globstar
|
||||||
|
|
||||||
|
IFS=$'\n'
|
||||||
|
|
||||||
|
prefix=$(readlink -f $${PASSWORD_STORE_DIR-~/.password-store})
|
||||||
|
password_files=( $( fd -L ".gpg\$" "$prefix" ) )
|
||||||
|
password_files=( "$${password_files[@]#"$prefix"/}" )
|
||||||
|
password_files=( "$${password_files[@]%.gpg}" )
|
||||||
|
|
||||||
|
password=$( printf '%s\n' "$${password_files[@]}" | ${wofi}/bin/wofi -i -k /dev/null -d menu -- "$@" )
|
||||||
|
|
||||||
|
[[ -n $password ]] || exit
|
||||||
|
|
||||||
|
OUT=$(${pass}/bin/pass show --clip "$password")
|
||||||
|
${libnotify}/bin/notify-send -t 5000 "$(echo "$OUT" | grep '^login:' | sed 's/^login: //')"
|
||||||
|
''
|
||||||
@@ -7,8 +7,8 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (import ../../lib) retiolumAddresses defaultApplications;
|
|
||||||
# TODO wrap obsidian: obsidian --no-sandbox --ozone-platform=wayland --ozone-platform-hint=auto --enable-features=UseOzonePlatform,WaylandWindowDecorations %U
|
# TODO wrap obsidian: obsidian --no-sandbox --ozone-platform=wayland --ozone-platform-hint=auto --enable-features=UseOzonePlatform,WaylandWindowDecorations %U
|
||||||
|
inherit (import ../../lib) retiolumAddresses;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
@@ -17,313 +17,6 @@ in
|
|||||||
../../configs/default.nix
|
../../configs/default.nix
|
||||||
../../configs/networkmanager.nix
|
../../configs/networkmanager.nix
|
||||||
../../configs/power-action.nix
|
../../configs/power-action.nix
|
||||||
{
|
|
||||||
programs.niri.enable = true;
|
|
||||||
services.displayManager.defaultSession = lib.mkForce "niri";
|
|
||||||
home-manager.users.me = {
|
|
||||||
imports = [ inputs.centerpiece.hmModules."x86_64-linux".default ];
|
|
||||||
programs.centerpiece = {
|
|
||||||
enable = true;
|
|
||||||
config.plugin = {
|
|
||||||
clock.enable = true;
|
|
||||||
resource_monitor_battery.enable = true;
|
|
||||||
resource_monitor_cpu.enable = true;
|
|
||||||
resource_monitor_disks.enable = true;
|
|
||||||
resource_monitor_memory.enable = true;
|
|
||||||
system.enable = true;
|
|
||||||
wifi.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.alacritty.enable = true; # Super+T in the default setting (terminal)
|
|
||||||
programs.swaylock.enable = true; # Super+Alt+L in the default setting (screen locker)
|
|
||||||
programs.waybar.enable = true; # launch on startup in the default setting (bar)
|
|
||||||
services.mako.enable = true; # notification daemon
|
|
||||||
services.swayidle.enable = true; # idle management daemon
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
xdg-desktop-portal-gnome
|
|
||||||
swaybg
|
|
||||||
];
|
|
||||||
home.file.".config/niri/config.kdl".text =
|
|
||||||
let
|
|
||||||
klem = niveumPackages.klem.override {
|
|
||||||
config.dmenu = "${pkgs.dmenu}/bin/dmenu -i -p klem";
|
|
||||||
config.scripts = {
|
|
||||||
"p.r paste" = pkgs.writers.writeDash "p.r" ''
|
|
||||||
${pkgs.curl}/bin/curl -fSs http://p.r --data-binary @- \
|
|
||||||
| ${pkgs.coreutils}/bin/tail --lines=1 \
|
|
||||||
| ${pkgs.gnused}/bin/sed 's/\\<r\\>/krebsco.de/'
|
|
||||||
'';
|
|
||||||
"envs.sh paste" = pkgs.writers.writeDash "envs-host" ''
|
|
||||||
${pkgs.curl}/bin/curl -F "file=@-" https://envs.sh
|
|
||||||
'';
|
|
||||||
"envs.sh shorten" = pkgs.writers.writeDash "envs-shorten" ''
|
|
||||||
${pkgs.curl}/bin/curl -F "shorten=$(${pkgs.coreutils}/bin/cat)" https://envs.sh
|
|
||||||
'';
|
|
||||||
"go.r shorten" = pkgs.writers.writeDash "go.r" ''
|
|
||||||
${pkgs.curl}/bin/curl -fSs http://go.r -F "uri=$(${pkgs.coreutils}/bin/cat)"
|
|
||||||
'';
|
|
||||||
"4d2.org paste" = pkgs.writers.writeDash "4d2-paste" ''
|
|
||||||
${pkgs.curl}/bin/curl -F "file=@-" https://depot.4d2.org/
|
|
||||||
'';
|
|
||||||
"0x0.st shorten" = pkgs.writers.writeDash "0x0.st" ''
|
|
||||||
${pkgs.curl}/bin/curl -fSs https://0x0.st -F "shorten=$(${pkgs.coreutils}/bin/cat)"
|
|
||||||
'';
|
|
||||||
"rot13" = pkgs.writers.writeDash "rot13" ''
|
|
||||||
${pkgs.coreutils}/bin/tr '[A-Za-z]' '[N-ZA-Mn-za-m]'
|
|
||||||
'';
|
|
||||||
"ipa" = pkgs.writers.writeDash "ipa" ''
|
|
||||||
${niveumPackages.ipa}/bin/ipa
|
|
||||||
'';
|
|
||||||
"betacode" = pkgs.writers.writeDash "betacode" ''
|
|
||||||
${niveumPackages.betacode}/bin/betacode
|
|
||||||
'';
|
|
||||||
"curl" = pkgs.writers.writeDash "curl" ''
|
|
||||||
${pkgs.curl}/bin/curl -fSs "$(${pkgs.coreutils}/bin/cat)"
|
|
||||||
'';
|
|
||||||
ocr = pkgs.writers.writeDash "ocr" ''
|
|
||||||
${pkgs.tesseract4}/bin/tesseract -l eng+deu - stdout
|
|
||||||
'';
|
|
||||||
emojai = pkgs.writers.writeDash "emojai" ''
|
|
||||||
${pkgs.curl}/bin/curl https://www.emojai.app/api/generate -X POST -H 'Content-Type: application/json' --data-raw "$(${pkgs.jq}/bin/jq -sR '{emoji:.}')" | ${pkgs.jq}/bin/jq -r .result
|
|
||||||
'';
|
|
||||||
"gpt-3.5" = pkgs.writers.writeDash "gpt" ''
|
|
||||||
${niveumPackages.gpt35}/bin/gpt
|
|
||||||
'';
|
|
||||||
gpt-4 = pkgs.writers.writeDash "gpt" ''
|
|
||||||
${niveumPackages.gpt4}/bin/gpt
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
''
|
|
||||||
spawn-at-startup "waybar"
|
|
||||||
|
|
||||||
input {
|
|
||||||
warp-mouse-to-focus
|
|
||||||
focus-follows-mouse max-scroll-amount="0%"
|
|
||||||
|
|
||||||
keyboard {
|
|
||||||
repeat-rate 35
|
|
||||||
repeat-delay 350
|
|
||||||
track-layout "global"
|
|
||||||
|
|
||||||
xkb {
|
|
||||||
layout "de"
|
|
||||||
variant "T3"
|
|
||||||
options "ctrl:nocaps,compose:caps"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
touchpad {
|
|
||||||
click-method "clickfinger"
|
|
||||||
tap
|
|
||||||
dwt
|
|
||||||
dwtp
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
prefer-no-csd
|
|
||||||
|
|
||||||
hotkey-overlay {
|
|
||||||
skip-at-startup
|
|
||||||
}
|
|
||||||
|
|
||||||
layout {
|
|
||||||
gaps 5
|
|
||||||
|
|
||||||
default-column-width {
|
|
||||||
proportion 0.5
|
|
||||||
}
|
|
||||||
|
|
||||||
preset-column-widths {
|
|
||||||
proportion 0.33333
|
|
||||||
proportion 0.5
|
|
||||||
proportion 0.66667
|
|
||||||
}
|
|
||||||
|
|
||||||
focus-ring {
|
|
||||||
width 2
|
|
||||||
}
|
|
||||||
|
|
||||||
shadow {
|
|
||||||
// on
|
|
||||||
softness 30
|
|
||||||
spread 5
|
|
||||||
offset x=0 y=5
|
|
||||||
draw-behind-window true
|
|
||||||
color "#00000070"
|
|
||||||
// inactive-color "#00000054"
|
|
||||||
}
|
|
||||||
|
|
||||||
tab-indicator {
|
|
||||||
// off
|
|
||||||
hide-when-single-tab
|
|
||||||
place-within-column
|
|
||||||
gap 5
|
|
||||||
width 4
|
|
||||||
length total-proportion=1.0
|
|
||||||
position "right"
|
|
||||||
gaps-between-tabs 2
|
|
||||||
corner-radius 8
|
|
||||||
active-color "red"
|
|
||||||
inactive-color "gray"
|
|
||||||
urgent-color "blue"
|
|
||||||
// active-gradient from="#80c8ff" to="#bbddff" angle=45
|
|
||||||
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
|
||||||
// urgent-gradient from="#800" to="#a33" angle=45
|
|
||||||
}
|
|
||||||
|
|
||||||
border {
|
|
||||||
off
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
animations {
|
|
||||||
// off
|
|
||||||
workspace-switch {
|
|
||||||
spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001
|
|
||||||
}
|
|
||||||
|
|
||||||
window-open {
|
|
||||||
duration-ms 150
|
|
||||||
curve "ease-out-expo"
|
|
||||||
}
|
|
||||||
|
|
||||||
window-close {
|
|
||||||
duration-ms 150
|
|
||||||
curve "ease-out-quad"
|
|
||||||
}
|
|
||||||
|
|
||||||
horizontal-view-movement {
|
|
||||||
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
|
|
||||||
}
|
|
||||||
|
|
||||||
window-movement {
|
|
||||||
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
|
|
||||||
}
|
|
||||||
|
|
||||||
window-resize {
|
|
||||||
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
|
|
||||||
}
|
|
||||||
|
|
||||||
config-notification-open-close {
|
|
||||||
spring damping-ratio=0.6 stiffness=1000 epsilon=0.001
|
|
||||||
}
|
|
||||||
|
|
||||||
screenshot-ui-open {
|
|
||||||
duration-ms 200
|
|
||||||
curve "ease-out-quad"
|
|
||||||
}
|
|
||||||
|
|
||||||
overview-open-close {
|
|
||||||
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window-rule {
|
|
||||||
geometry-corner-radius 0
|
|
||||||
clip-to-geometry true
|
|
||||||
}
|
|
||||||
|
|
||||||
window-rule {
|
|
||||||
match is-window-cast-target=true
|
|
||||||
|
|
||||||
border {
|
|
||||||
on
|
|
||||||
width 3
|
|
||||||
active-color "#f38ba8"
|
|
||||||
inactive-color "#7d0d2d"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
binds {
|
|
||||||
Mod+Shift+Slash { show-hotkey-overlay; }
|
|
||||||
Mod+Return { spawn "${(defaultApplications pkgs).terminal}"; }
|
|
||||||
Mod+D { spawn "${pkgs.wofi}/bin/wofi --show run"; }
|
|
||||||
Mod+Shift+D { spawn "${niveumPackages.notemenu}/bin/notemenu"; }
|
|
||||||
Mod+T { spawn "${(defaultApplications pkgs).fileManager}"; }
|
|
||||||
Mod+Y { spawn "${(defaultApplications pkgs).browser}"; }
|
|
||||||
Mod+P { spawn "rofi-pass"; }
|
|
||||||
Mod+U { spawn "${niveumPackages.unicodmenu}/bin/unicodmenu"; }
|
|
||||||
|
|
||||||
Mod+B { spawn "pkill -SIGUSR1 waybar"; }
|
|
||||||
Mod+F12 { spawn "${klem}/bin/klem"; }
|
|
||||||
|
|
||||||
Mod+Shift+Q { close-window; }
|
|
||||||
|
|
||||||
XF86AudioRaiseVolume allow-when-locked=true { spawn "${pkgs.pamixer}/bin/pamixer -i 5"; }
|
|
||||||
XF86AudioLowerVolume allow-when-locked=true { spawn "${pkgs.pamixer}/bin/pamixer -d 5"; }
|
|
||||||
XF86AudioMute allow-when-locked=true { spawn "${pkgs.pamixer}/bin/pamixer -t"; }
|
|
||||||
|
|
||||||
XF86AudioPause allow-when-locked=true { spawn "${pkgs.playerctl}/bin/playerctl play-pause"; }
|
|
||||||
XF86AudioPlay allow-when-locked=true { spawn "${pkgs.playerctl}/bin/playerctl play-pause"; }
|
|
||||||
XF86AudioNext allow-when-locked=true { spawn "${pkgs.playerctl}/bin/playerctl next"; }
|
|
||||||
XF86AudioPrev allow-when-locked=true { spawn "${pkgs.playerctl}/bin/playerctl previous"; }
|
|
||||||
XF86AudioStop allow-when-locked=true { spawn "${pkgs.playerctl}/bin/playerctl stop"; }
|
|
||||||
Print { spawn "flameshot gui"; }
|
|
||||||
Mod+Shift+W { spawn "swaylock"; }
|
|
||||||
|
|
||||||
Mod+Comma { consume-or-expel-window-left; }
|
|
||||||
Mod+Period { consume-or-expel-window-right; }
|
|
||||||
Mod+W { toggle-column-tabbed-display; }
|
|
||||||
Mod+A repeat=false { toggle-overview; }
|
|
||||||
Mod+F { maximize-column; }
|
|
||||||
Mod+C { center-column; }
|
|
||||||
Mod+Minus { set-column-width "-25%"; }
|
|
||||||
Mod+Plus { set-column-width "+25%"; }
|
|
||||||
|
|
||||||
Mod+H { focus-column-or-monitor-left; }
|
|
||||||
Mod+J { focus-window-or-workspace-down; }
|
|
||||||
Mod+K { focus-window-or-workspace-up; }
|
|
||||||
Mod+L { focus-column-or-monitor-right; }
|
|
||||||
|
|
||||||
Mod+Shift+H { move-column-left-or-to-monitor-left; }
|
|
||||||
Mod+Shift+J { move-window-down-or-to-workspace-down; }
|
|
||||||
Mod+Shift+K { move-window-up-or-to-workspace-up; }
|
|
||||||
Mod+Shift+L { move-column-right-or-to-monitor-right; }
|
|
||||||
|
|
||||||
Mod+Ctrl+H { focus-monitor-left; }
|
|
||||||
Mod+Ctrl+J { focus-monitor-down; }
|
|
||||||
Mod+Ctrl+K { focus-monitor-up; }
|
|
||||||
Mod+Ctrl+L { focus-monitor-right; }
|
|
||||||
|
|
||||||
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
|
|
||||||
Mod+Shift+Ctrl+J { move-column-to-workspace-down; }
|
|
||||||
Mod+Shift+Ctrl+K { move-column-to-workspace-up; }
|
|
||||||
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
|
|
||||||
|
|
||||||
Mod+Shift+Alt+Ctrl+H { move-workspace-to-monitor-left; }
|
|
||||||
Mod+Shift+Alt+Ctrl+J { move-workspace-down; }
|
|
||||||
Mod+Shift+Alt+Ctrl+K { move-workspace-up; }
|
|
||||||
Mod+Shift+Alt+Ctrl+L { move-workspace-to-monitor-right; }
|
|
||||||
|
|
||||||
Mod+1 { focus-workspace 1; }
|
|
||||||
Mod+2 { focus-workspace 2; }
|
|
||||||
Mod+3 { focus-workspace 3; }
|
|
||||||
Mod+4 { focus-workspace 4; }
|
|
||||||
Mod+5 { focus-workspace 5; }
|
|
||||||
Mod+6 { focus-workspace 6; }
|
|
||||||
Mod+7 { focus-workspace 7; }
|
|
||||||
Mod+8 { focus-workspace 8; }
|
|
||||||
Mod+9 { focus-workspace 9; }
|
|
||||||
Mod+0 { focus-workspace 10; }
|
|
||||||
|
|
||||||
Mod+Shift+1 { move-window-to-workspace "1"; }
|
|
||||||
Mod+Shift+2 { move-window-to-workspace "2"; }
|
|
||||||
Mod+Shift+3 { move-window-to-workspace "3"; }
|
|
||||||
Mod+Shift+4 { move-window-to-workspace "4"; }
|
|
||||||
Mod+Shift+5 { move-window-to-workspace "5"; }
|
|
||||||
Mod+Shift+6 { move-window-to-workspace "6"; }
|
|
||||||
Mod+Shift+7 { move-window-to-workspace "7"; }
|
|
||||||
Mod+Shift+8 { move-window-to-workspace "8"; }
|
|
||||||
Mod+Shift+9 { move-window-to-workspace "9"; }
|
|
||||||
Mod+Shift+0 { move-window-to-workspace "0"; }
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
services.gnome.gnome-keyring.enable = true; # secret service
|
|
||||||
security.pam.services.swaylock = { };
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
|
|
||||||
niveum = {
|
niveum = {
|
||||||
|
|||||||
Reference in New Issue
Block a user