mirror of
https://forge.katzen.cafe/schrottkatze/nix-configs.git
synced 2024-11-22 05:14:42 +01:00
meooow
This commit is contained in:
parent
9d44504c4e
commit
5938c92ec6
|
@ -30,9 +30,9 @@ with builtins;
|
||||||
|
|
||||||
|
|
||||||
wget git neofetch pciutils zip unzip gnutar iw btop nodejs jdk8 jdk11
|
wget git neofetch pciutils zip unzip gnutar iw btop nodejs jdk8 jdk11
|
||||||
jdk libsecret gh nix-prefetch-scripts fzf glab openal
|
jdk libsecret gh nix-prefetch-scripts fzf glab ripgrep
|
||||||
sl lolcat appimage-run git-crypt file whois p7zip file nmap cmatrix tree
|
sl lolcat appimage-run git-crypt file whois p7zip file nmap cmatrix tree
|
||||||
socat
|
socat smartmontools
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ with builtins;
|
||||||
|
|
||||||
users.users.jade = {
|
users.users.jade = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [ "wheel" "input" "uinput" "libvirtd" "adbusers" ];
|
extraGroups = [ "wheel" "input" "uinput" "libvirtd" "adbusers" "dialout" "plugdev" ];
|
||||||
packages = [
|
packages = [
|
||||||
pkgs.marksman
|
pkgs.marksman
|
||||||
];
|
];
|
||||||
|
@ -93,6 +93,6 @@ users.users.jade = {
|
||||||
algorithm = "zstd";
|
algorithm = "zstd";
|
||||||
};
|
};
|
||||||
|
|
||||||
users.defaultUserShell = pkgs.zsh;
|
users.defaultUserShell = pkgs.nushell.override { additionalFeatures = (p: p ++ ["dataframe"]); };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
17
flake.nix
17
flake.nix
|
@ -43,6 +43,23 @@
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
catbook-j = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = {
|
||||||
|
inherit inputs;
|
||||||
|
};
|
||||||
|
system = "x86_64-linux";
|
||||||
|
modules = [
|
||||||
|
./hosts/catbook-j/configuration.nix
|
||||||
|
home-manager.nixosModules.home-manager {
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.users.jade = { nixosConfig, pkgs, ... }: {
|
||||||
|
home.sessionVariables.TZ = nixosConfig.time.timeZone;
|
||||||
|
home.stateVersion = "${nixosConfig.system.stateVersion}";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
potatobook-g = nixpkgs.lib.nixosSystem {
|
potatobook-g = nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
|
|
|
@ -24,6 +24,8 @@ import XMonad.Prompt
|
||||||
import XMonad.Prompt.Layout
|
import XMonad.Prompt.Layout
|
||||||
import Graphics.X11.ExtraTypes.XF86
|
import Graphics.X11.ExtraTypes.XF86
|
||||||
|
|
||||||
|
import Control.Monad (when)
|
||||||
|
|
||||||
-- The preferred terminal program, which is used in a binding below and by
|
-- The preferred terminal program, which is used in a binding below and by
|
||||||
-- certain contrib modules.
|
-- certain contrib modules.
|
||||||
--
|
--
|
||||||
|
@ -74,18 +76,22 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
|
||||||
-- Rotate through the available layout algorithms
|
-- Rotate through the available layout algorithms
|
||||||
, ((modm, xK_space ), sendMessage NextLayout)
|
, ((modm, xK_space ), sendMessage NextLayout)
|
||||||
|
|
||||||
-- rofiing
|
-- rofiing
|
||||||
, ((modm, xK_d), spawn "rofi -show drun")
|
, ((modm, xK_d), spawn "rofi -show drun")
|
||||||
, ((modm .|. shiftMask, xK_e), spawn "rofi -show \"desktopctl\" -modes \"desktopctl:$(which desktopctl)\"")
|
, ((modm .|. shiftMask, xK_e), spawn "rofi -show desktopctl -modes desktopctl:desktopctl -show-icons")
|
||||||
, ((modm, xK_m), spawn "menu-qalc")
|
, ((modm, xK_m), spawn "menu-qalc -- -theme gruvbox-dark")
|
||||||
, ((modm, xK_i), spawn "rofimoji -f alchemical_symbols anatolian_hieroglyphs emojis braille_patterns box_drawing chess_symbols emoticons geometric_shapes gothic greek_extended math mathematical_alphanumeric_symbols mathematical_operators miscellaneous_symbols miscellaneous_mathematical_symbols-a miscellaneous_mathematical_symbols-b miscellaneous_symbols_and_arrows miscellaneous_symbols_and_pictographs miscellaneous_technical modi modifier_tone_letters musical_symbols nerd_font number_forms shorthand_format_controls specials variation_selectors vertical_forms -a copy")
|
, ((modm, xK_i), spawn "rofimoji --selector-args '-theme gruvbox-dark' -f alchemical_symbols anatolian_hieroglyphs emojis braille_patterns box_drawing chess_symbols emoticons geometric_shapes gothic greek_extended math mathematical_alphanumeric_symbols mathematical_operators miscellaneous_symbols miscellaneous_mathematical_symbols-a miscellaneous_mathematical_symbols-b miscellaneous_symbols_and_arrows miscellaneous_symbols_and_pictographs miscellaneous_technical modi modifier_tone_letters musical_symbols nerd_font number_forms shorthand_format_controls specials variation_selectors vertical_forms -a copy")
|
||||||
|
|
||||||
-- screenshotting
|
, ((modm, xK_o), spawn "rofi -show searchwolf -modes searchwolf:searchwolf -theme gruvbox-dark")
|
||||||
-- TODO: Fix/rewrite window-screenshot.sh
|
|
||||||
, ((modm, xK_w), spawn "window-screenshot.sh")
|
-- screenshotting
|
||||||
, ((modm, xK_s), spawn "flameshot gui -c -p $HOME/Pictures/screenshots")
|
-- TODO: Fix/rewrite window-screenshot.sh
|
||||||
, ((modm, xK_a), spawn "flameshot screen -c -p $HOME/Pictures/screenshots")
|
, ((modm, xK_w), spawn "window-screenshot.sh")
|
||||||
, ((modm, xK_t), spawn "ocr-screenshot.sh")
|
, ((modm, xK_s), spawn "flameshot gui -c -p $HOME/Pictures/screenshots")
|
||||||
|
, ((modm, xK_a), spawn "flameshot screen -c -p $HOME/Pictures/screenshots")
|
||||||
|
, ((modm, xK_t), spawn "ocr-screenshot.sh")
|
||||||
|
|
||||||
|
, ((modm .|. shiftMask, xK_t), spawn "DEVICE=\"MELF0410:00 1FD2:7007\"; if [ $(xinput list-props \"$DEVICE\" | awk '/^\\tDevice Enabled \\([0-9]+\\):\\t[01]/ {print $NF}') = \"1\" ]; then xinput disable \"$DEVICE\"; else xinput enable \"$DEVICE\"; fi")
|
||||||
|
|
||||||
-- Reset the layouts on the current workspace to default
|
-- Reset the layouts on the current workspace to default
|
||||||
-- , ((modm .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf)
|
-- , ((modm .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf)
|
||||||
|
@ -117,13 +123,13 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
|
||||||
, ((modm , xK_period), sendMessage (IncMasterN (-1)))
|
, ((modm , xK_period), sendMessage (IncMasterN (-1)))
|
||||||
|
|
||||||
-- Brightness n stuff
|
-- Brightness n stuff
|
||||||
, ((0, xF86XK_AudioRaiseVolume), spawn "amixer -D pulse sset Master 10%+")
|
-- , ((0, xF86XK_AudioRaiseVolume), spawn "amixer -D pulse sset Master 10%+")
|
||||||
, ((0, xF86XK_AudioLowerVolume), spawn "amixer -D pulse sset Master 10%-")
|
-- , ((0, xF86XK_AudioLowerVolume), spawn "amixer -D pulse sset Master 10%-")
|
||||||
, ((0, xF86XK_AudioMute), spawn "amixer -D pulse sset Master toggle")
|
-- , ((0, xF86XK_AudioMute), spawn "amixer -D pulse sset Master toggle")
|
||||||
, ((0, xF86XK_MonBrightnessUp), spawn "brightnessctl set +10%")
|
-- , ((0, xF86XK_MonBrightnessUp), spawn "brightnessctl set +10%")
|
||||||
, ((0, xF86XK_MonBrightnessDown), spawn "brightnessctl set 10%-")
|
-- , ((0, xF86XK_MonBrightnessDown), spawn "brightnessctl set 10%-")
|
||||||
, ((0, xF86XK_KbdBrightnessUp), spawn "brightnessctl -d \"kbd_backlight\" set +10%")
|
-- , ((0, xF86XK_KbdBrightnessUp), spawn "brightnessctl -d \"kbd_backlight\" set +10%")
|
||||||
, ((0, xF86XK_KbdBrightnessDown), spawn "brightnessctl -d \"kbd_backlight\" set 10%-")
|
-- , ((0, xF86XK_KbdBrightnessDown), spawn "brightnessctl -d \"kbd_backlight\" set 10%-")
|
||||||
|
|
||||||
-- Toggle the status bar gap
|
-- Toggle the status bar gap
|
||||||
-- Use this binding with avoidStruts from Hooks.ManageDocks.
|
-- Use this binding with avoidStruts from Hooks.ManageDocks.
|
||||||
|
@ -137,7 +143,6 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
|
||||||
--, ((modm , xK_q ), spawn "xmonad --recompile; xmonad --restart")
|
--, ((modm , xK_q ), spawn "xmonad --recompile; xmonad --restart")
|
||||||
|
|
||||||
-- Run xmessage with a summary of the default keybindings (useful for beginners)
|
-- Run xmessage with a summary of the default keybindings (useful for beginners)
|
||||||
, ((modm .|. shiftMask, xK_slash ), spawn ("echo \"" ++ help ++ "\" | xmessage -file -"))
|
|
||||||
]
|
]
|
||||||
++
|
++
|
||||||
|
|
||||||
|
@ -148,15 +153,15 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
|
||||||
[((m .|. modm, k), windows $ f i)
|
[((m .|. modm, k), windows $ f i)
|
||||||
| (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
|
| (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
|
||||||
, (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
|
, (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
|
||||||
++
|
-- ++
|
||||||
|
|
||||||
--
|
--
|
||||||
-- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3
|
-- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3
|
||||||
-- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3
|
-- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3
|
||||||
--
|
--
|
||||||
[((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f))
|
-- [((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f))
|
||||||
| (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
|
-- | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
|
||||||
, (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
|
-- , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
@ -246,6 +251,11 @@ myManageHook = composeAll
|
||||||
--
|
--
|
||||||
myEventHook = mempty
|
myEventHook = mempty
|
||||||
|
|
||||||
|
focusChangeHook (FocusChangeEvent {ev_event_type=t, ev_window=window}) = do
|
||||||
|
when (t == focusIn) $ spawn "notify-send 'focusIn'"
|
||||||
|
when (t == focusOut) $ spawn "notify-send 'focusOut'"
|
||||||
|
return $ All True
|
||||||
|
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
-- Status bars and logging
|
-- Status bars and logging
|
||||||
|
|
||||||
|
@ -269,6 +279,8 @@ myStartupHook = do
|
||||||
spawn "pkill nm-applet; nm-applet"
|
spawn "pkill nm-applet; nm-applet"
|
||||||
spawn "mullvad-vpn --background"
|
spawn "mullvad-vpn --background"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
-- Now run xmonad with all the defaults we set up.
|
-- Now run xmonad with all the defaults we set up.
|
||||||
|
|
||||||
|
@ -284,74 +296,24 @@ main = xmonad $ withEasySB mySB defToggleStrutsKey defaults
|
||||||
-- No need to modify this.
|
-- No need to modify this.
|
||||||
--
|
--
|
||||||
defaults = def
|
defaults = def
|
||||||
-- simple stuff
|
-- simple stuff
|
||||||
{ terminal = myTerminal
|
{ terminal = myTerminal
|
||||||
, focusFollowsMouse = myFocusFollowsMouse
|
, focusFollowsMouse = myFocusFollowsMouse
|
||||||
, clickJustFocuses = myClickJustFocuses
|
, clickJustFocuses = myClickJustFocuses
|
||||||
, borderWidth = myBorderWidth
|
, borderWidth = myBorderWidth
|
||||||
, modMask = myModMask
|
, modMask = myModMask
|
||||||
, workspaces = myWorkspaces
|
, workspaces = myWorkspaces
|
||||||
, normalBorderColor = myNormalBorderColor
|
, normalBorderColor = myNormalBorderColor
|
||||||
, focusedBorderColor = myFocusedBorderColor
|
, focusedBorderColor = myFocusedBorderColor
|
||||||
|
-- , clientMask = focusChangeMask .|. XMonad.clientMask
|
||||||
-- key bindings
|
-- key bindings
|
||||||
, keys = myKeys
|
, keys = myKeys
|
||||||
, mouseBindings = myMouseBindings
|
, mouseBindings = myMouseBindings
|
||||||
-- hooks, layouts
|
-- hooks, layouts
|
||||||
, layoutHook = spacingRaw True (Border 0 0 0 0) True (Border 7 7 7 7) True $ myLayout
|
, layoutHook = spacingRaw True (Border 0 0 0 0) True (Border 7 7 7 7) True $ myLayout
|
||||||
, manageHook = myManageHook
|
, manageHook = myManageHook
|
||||||
, handleEventHook = myEventHook
|
, handleEventHook = myEventHook
|
||||||
, logHook = myLogHook
|
, logHook = myLogHook
|
||||||
, startupHook = myStartupHook
|
, startupHook = myStartupHook
|
||||||
}
|
}
|
||||||
|
|
||||||
-- | Finally, a copy of the default bindings in simple textual tabular format.
|
|
||||||
help :: String
|
|
||||||
help = unlines ["The default modifier key is 'alt'. Default keybindings:",
|
|
||||||
"",
|
|
||||||
"-- launching and killing programs",
|
|
||||||
"mod-Shift-Enter Launch xterminal",
|
|
||||||
"mod-p Launch dmenu",
|
|
||||||
"mod-Shift-p Launch gmrun",
|
|
||||||
"mod-Shift-c Close/kill the focused window",
|
|
||||||
"mod-Space Rotate through the available layout algorithms",
|
|
||||||
"mod-Shift-Space Reset the layouts on the current workSpace to default",
|
|
||||||
"mod-n Resize/refresh viewed windows to the correct size",
|
|
||||||
"",
|
|
||||||
"-- move focus up or down the window stack",
|
|
||||||
"mod-Tab Move focus to the next window",
|
|
||||||
"mod-Shift-Tab Move focus to the previous window",
|
|
||||||
"mod-j Move focus to the next window",
|
|
||||||
"mod-k Move focus to the previous window",
|
|
||||||
"mod-m Move focus to the master window",
|
|
||||||
"",
|
|
||||||
"-- modifying the window order",
|
|
||||||
"mod-Return Swap the focused window and the master window",
|
|
||||||
"mod-Shift-j Swap the focused window with the next window",
|
|
||||||
"mod-Shift-k Swap the focused window with the previous window",
|
|
||||||
"",
|
|
||||||
"-- resizing the master/slave ratio",
|
|
||||||
"mod-h Shrink the master area",
|
|
||||||
"mod-l Expand the master area",
|
|
||||||
"",
|
|
||||||
"-- floating layer support",
|
|
||||||
"mod-t Push window back into tiling; unfloat and re-tile it",
|
|
||||||
"",
|
|
||||||
"-- increase or decrease number of windows in the master area",
|
|
||||||
"mod-comma (mod-,) Increment the number of windows in the master area",
|
|
||||||
"mod-period (mod-.) Deincrement the number of windows in the master area",
|
|
||||||
"",
|
|
||||||
"-- quit, or restart",
|
|
||||||
"mod-Shift-q Quit xmonad",
|
|
||||||
"mod-q Restart xmonad",
|
|
||||||
"mod-[1..9] Switch to workSpace N",
|
|
||||||
"",
|
|
||||||
"-- Workspaces & screens",
|
|
||||||
"mod-Shift-[1..9] Move client to workspace N",
|
|
||||||
"mod-{w,e,r} Switch to physical/Xinerama screens 1, 2, or 3",
|
|
||||||
"mod-Shift-{w,e,r} Move client to screen 1, 2, or 3",
|
|
||||||
"",
|
|
||||||
"-- Mouse bindings: default actions bound to mouse events",
|
|
||||||
"mod-button1 Set the window to floating mode and move by dragging",
|
|
||||||
"mod-button2 Raise the window to the top of the stack",
|
|
||||||
"mod-button3 Set the window to floating mode and resize by dragging"]
|
|
||||||
|
|
119
hosts/catbook-j/configuration.nix
Normal file
119
hosts/catbook-j/configuration.nix
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
# Edit this configuration file to define what should be installed on
|
||||||
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
|
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
evremap = pkgs.rustPlatform.buildRustPackage {
|
||||||
|
pname = "evremap";
|
||||||
|
version = "0.1.0";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "wez";
|
||||||
|
repo = "evremap";
|
||||||
|
rev = "4480c4eda223b98899b0fbd926bc34f7bd0e1a18";
|
||||||
|
sha256 = "sha256-BxSrphgW1n465FX6bKVkq6O0XE2JqanfSYlsGwWUWkQ=";
|
||||||
|
};
|
||||||
|
cargoHash = "";
|
||||||
|
cargoLock.lockFile = ../../other/evremap.Cargo.lock;
|
||||||
|
postPatch = ''
|
||||||
|
cp ${../../other/evremap.Cargo.lock} Cargo.lock
|
||||||
|
'';
|
||||||
|
nativeBuildInputs = [ pkgs.pkg-config ];
|
||||||
|
buildInputs = [ pkgs.libevdev ];
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
imports =
|
||||||
|
[ # Include the results of the hardware scan.
|
||||||
|
./hardware-configuration.nix
|
||||||
|
../../common.nix
|
||||||
|
../../modules
|
||||||
|
];
|
||||||
|
jade = {
|
||||||
|
flatpak.enable = true;
|
||||||
|
desktop = {
|
||||||
|
enable = true;
|
||||||
|
compositing.enable = true;
|
||||||
|
creative.enable = true;
|
||||||
|
syncthing.enable = true;
|
||||||
|
kdeconnect.enable = true;
|
||||||
|
cloud.enable = true;
|
||||||
|
social.enable = true;
|
||||||
|
mail.enable = true;
|
||||||
|
gaming.enable = true;
|
||||||
|
};
|
||||||
|
helix.enable = true;
|
||||||
|
zellij.enable = true;
|
||||||
|
terminal.enable = true;
|
||||||
|
# zsh.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.trackpoint = {
|
||||||
|
enable = true;
|
||||||
|
# device = "MELF0410:00 1FD2:7007";
|
||||||
|
device = "DELL081C:00 044E:121F Mouse";
|
||||||
|
sensitivity = 255;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.resumeDevice = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694";
|
||||||
|
boot.kernelParams = [ "resume_offset=7380652" ];
|
||||||
|
|
||||||
|
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||||
|
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
|
services.blueman.enable = true;
|
||||||
|
|
||||||
|
services.xserver.libinput.touchpad.tapping = false;
|
||||||
|
|
||||||
|
environment.systemPackages = [ pkgs.vivaldi pkgs.vivaldi-ffmpeg-codecs pkgs.plantuml ];
|
||||||
|
|
||||||
|
# Bootloader.
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
|
# Setup keyfile
|
||||||
|
boot.initrd.secrets = {
|
||||||
|
"/crypto_keyfile.bin" = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services = {
|
||||||
|
evremap = {
|
||||||
|
script = "${evremap}/bin/evremap remap ${../../other/remaps-catbook.toml}";
|
||||||
|
wantedBy = ["multi-user.target"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.xserver.displayManager.autoLogin = {
|
||||||
|
enable = true;
|
||||||
|
user = "jade";
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.hostName = "catbook-j"; # Define your hostname.
|
||||||
|
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||||
|
|
||||||
|
# Configure network proxy if necessary
|
||||||
|
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||||
|
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||||
|
|
||||||
|
# Enable networking
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
|
i18n.extraLocaleSettings = {
|
||||||
|
LC_ADDRESS = "de_DE.UTF-8";
|
||||||
|
LC_IDENTIFICATION = "de_DE.UTF-8";
|
||||||
|
LC_MEASUREMENT = "de_DE.UTF-8";
|
||||||
|
LC_MONETARY = "de_DE.UTF-8";
|
||||||
|
LC_NAME = "de_DE.UTF-8";
|
||||||
|
LC_NUMERIC = "de_DE.UTF-8";
|
||||||
|
LC_PAPER = "de_DE.UTF-8";
|
||||||
|
LC_TELEPHONE = "de_DE.UTF-8";
|
||||||
|
LC_TIME = "de_DE.UTF-8";
|
||||||
|
};
|
||||||
|
# This value determines the NixOS release from which the default
|
||||||
|
# settings for stateful data, like file locations and database versions
|
||||||
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
# this value at the release version of the first install of this system.
|
||||||
|
# Before changing this value read the documentation for this option
|
||||||
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
|
system.stateVersion = "23.05"; # Did you read the comment?
|
||||||
|
|
||||||
|
}
|
58
hosts/catbook-j/hardware-configuration.nix
Normal file
58
hosts/catbook-j/hardware-configuration.nix
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=@" "compress=zstd:3" "noatime" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/home" =
|
||||||
|
{ device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=@home" "compress=zstd:3" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/swap" =
|
||||||
|
{ device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=@/@swap" "noatime" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.initrd.luks.devices."luks-9cd75cce-6829-4db8-8c5c-a9fb9ec3e122".device = "/dev/disk/by-uuid/9cd75cce-6829-4db8-8c5c-a9fb9ec3e122";
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/C6CA-5DE8";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [{
|
||||||
|
device = "/swap/swapfile";
|
||||||
|
size = (1024 * 12);
|
||||||
|
}];
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wwp0s20f0u2i12.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
|
@ -13,6 +13,7 @@
|
||||||
jack.enable = true;
|
jack.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
sound.mediaKeys.enable = true;
|
||||||
home-manager.users.jade = { pkgs, ... }: {
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
pavucontrol
|
pavucontrol
|
||||||
|
|
|
@ -7,10 +7,10 @@ in with lib; {
|
||||||
};
|
};
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home-manager.users.jade = { pkgs, ... }: {
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
services.nextcloud-client = {
|
# services.nextcloud-client = {
|
||||||
enable = true;
|
# enable = true;
|
||||||
startInBackground = true;
|
# startInBackground = true;
|
||||||
};
|
# };
|
||||||
programs.rbw = {
|
programs.rbw = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
@ -15,11 +15,9 @@ in with lib; {
|
||||||
shadowOffsets = [ (-40) (-30) ];
|
shadowOffsets = [ (-40) (-30) ];
|
||||||
shadowOpacity = 0.2;
|
shadowOpacity = 0.2;
|
||||||
shadowExclude = [
|
shadowExclude = [
|
||||||
"class_g = 'Conky'"
|
|
||||||
"class_g ?= 'Notify-osd'"
|
"class_g ?= 'Notify-osd'"
|
||||||
"class_g = 'Cairo-clock'"
|
|
||||||
"_GTK_FRAME_EXTENTS@:c"
|
"_GTK_FRAME_EXTENTS@:c"
|
||||||
"class_g != 'Rofi'"
|
"!(class_g = 'Rofi' || class_g = 'Dunst')"
|
||||||
];
|
];
|
||||||
|
|
||||||
vSync = true;
|
vSync = true;
|
||||||
|
|
|
@ -84,7 +84,7 @@ in with lib; {
|
||||||
|
|
||||||
virtualisation.libvirtd.enable = true;
|
virtualisation.libvirtd.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [ gnome.gdm ];
|
# environment.systemPackages = with pkgs; [ gnome.gdm ];
|
||||||
services = {
|
services = {
|
||||||
printing.enable = true;
|
printing.enable = true;
|
||||||
gnome.gnome-keyring.enable = true;
|
gnome.gnome-keyring.enable = true;
|
||||||
|
@ -140,10 +140,66 @@ in with lib; {
|
||||||
# also useful:
|
# also useful:
|
||||||
# - every custom script its own flake n stuff
|
# - every custom script its own flake n stuff
|
||||||
|
|
||||||
|
programs.xss-lock = {
|
||||||
|
enable = true;
|
||||||
|
lockerCommand = "${pkgs.i3lock}/bin/i3lock";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.illum.enable = true;
|
||||||
|
services.avahi.enable = true;
|
||||||
|
|
||||||
|
services.smartd = {
|
||||||
|
enable = true;
|
||||||
|
notifications.x11.enable = true;
|
||||||
|
notifications.test = true;
|
||||||
|
};
|
||||||
|
|
||||||
home-manager.users.jade = { pkgs, ... }: {
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
programs.rofi.theme = ../../other/rofi-themes/applauncher.rasi;
|
programs.bat = {
|
||||||
|
# TODO: more config
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
programs.exa = {
|
||||||
|
# TODO: more config
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
programs.nushell = {
|
||||||
|
enable = true;
|
||||||
|
package = config.users.defaultUserShell;
|
||||||
|
configFile.source = ../../other/config.nu;
|
||||||
|
};
|
||||||
|
programs.ripgrep = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
services.dunst = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
global = {
|
||||||
|
dmenu = "${pkgs.rofi}/bin/rofi -theme gruvbox-dark -dmenu -p dunst";
|
||||||
|
browser = "${pkgs.librewolf}/bin/librewolf";
|
||||||
|
mouse_left_click = "context";
|
||||||
|
mouse_middle_click = "close_current";
|
||||||
|
background = "#282828";
|
||||||
|
foreground = "#ebdbb2";
|
||||||
|
frame_color = "#504945";
|
||||||
|
frame_width = 2;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
programs.rofi = {
|
||||||
|
enable = true;
|
||||||
|
theme = ../../other/rofi-themes/applauncher.rasi;
|
||||||
|
};
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
i3lock-fancy rofi rofimoji feh xorg.xinput dunst arandr flameshot
|
#nushell
|
||||||
|
nu_scripts direnv
|
||||||
|
|
||||||
|
magic-wormhole-rs
|
||||||
|
|
||||||
|
# carapace completer
|
||||||
|
carapace
|
||||||
|
|
||||||
|
i3lock rofimoji feh xorg.xinput arandr flameshot
|
||||||
tesseract5 imagemagick xclip xmacro libwacom wacomtablet xorg.xev
|
tesseract5 imagemagick xclip xmacro libwacom wacomtablet xorg.xev
|
||||||
|
|
||||||
# categories
|
# categories
|
||||||
|
@ -154,14 +210,14 @@ in with lib; {
|
||||||
|
|
||||||
# from environment.systemPackages cleanup
|
# from environment.systemPackages cleanup
|
||||||
font-manager xdotool xorg.xwininfo gparted librewolf firefox uhk-agent
|
font-manager xdotool xorg.xwininfo gparted librewolf firefox uhk-agent
|
||||||
cool-retro-term xdg-desktop-portal-gtk nheko obsidian virt-manager
|
cool-retro-term xdg-desktop-portal-gtk obsidian zettlr virt-manager
|
||||||
ddccontrol-db firebird-emu godot gitg gpick qdirstat ffmpeg_5
|
ddccontrol-db firebird-emu gitg gpick qdirstat ffmpeg_5
|
||||||
|
|
||||||
|
|
||||||
# external
|
# external
|
||||||
libnotify i3lock-fancy rofi rofimoji feh xorg.xinput dunst arandr
|
libnotify i3lock rofi rofimoji feh xorg.xinput arandr
|
||||||
flameshot tesseract5 imagemagick xclip kitty xmacro
|
flameshot tesseract5 imagemagick xclip kitty xmacro
|
||||||
brightnessctl drawing libqalculate ddgr jq brillo
|
brightnessctl drawing libqalculate ddgr jq
|
||||||
|
|
||||||
# custom scripts
|
# custom scripts
|
||||||
window-screenshot desktop-ctl em-record em-play em-play-loop
|
window-screenshot desktop-ctl em-record em-play em-play-loop
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
{
|
{
|
||||||
config = {
|
config = {
|
||||||
networking = {
|
networking = {
|
||||||
networkmanager.wifi.backend = "iwd";
|
networkmanager.wifi.backend = "wpa_supplicant";
|
||||||
extraHosts = ''
|
extraHosts = ''
|
||||||
127.0.0.1 www.youtube.com
|
127.0.0.1 www.youtube.com
|
||||||
127.0.0.1 www.reddit.com
|
127.0.0.1 www.reddit.com
|
||||||
|
@ -37,16 +37,6 @@
|
||||||
mullvad-vpn
|
mullvad-vpn
|
||||||
speedtest-cli
|
speedtest-cli
|
||||||
];
|
];
|
||||||
xsession.windowManager.i3.config.startup = [
|
|
||||||
{
|
|
||||||
command = "pkill nm-applet; nm-applet";
|
|
||||||
always = true;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
command = "mullvad-vpn --background";
|
|
||||||
always = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,10 +7,10 @@ in with lib; {
|
||||||
};
|
};
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home-manager.users.jade = { pkgs, ... }: {
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
programs.nheko.enable = true;
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
evolutionWithPlugins
|
evolutionWithPlugins
|
||||||
schildichat-desktop
|
schildichat-desktop
|
||||||
|
mumble
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -31,10 +31,19 @@ in with lib; {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
languages = {
|
languages = {
|
||||||
language = [{
|
language = [
|
||||||
name = "rust";
|
{
|
||||||
config = { rust-analyzer.check.command = "clippy"; };
|
name = "rust";
|
||||||
}];
|
}
|
||||||
|
{
|
||||||
|
name = "php";
|
||||||
|
file-types = [ "php" ];
|
||||||
|
language-server = {
|
||||||
|
command = "psalm";
|
||||||
|
args = ["--language-server"];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,7 +6,6 @@ in with lib; {
|
||||||
enable = mkEnableOption "Enable zsh";
|
enable = mkEnableOption "Enable zsh";
|
||||||
};
|
};
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.zsh.enable = true;
|
|
||||||
home-manager.users.jade = { pkgs,... } : {
|
home-manager.users.jade = { pkgs,... } : {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
thefuck
|
thefuck
|
||||||
|
|
795
other/config.nu
Normal file
795
other/config.nu
Normal file
|
@ -0,0 +1,795 @@
|
||||||
|
# Nushell Config File
|
||||||
|
#
|
||||||
|
# version = "0.84.0"
|
||||||
|
|
||||||
|
# For more information on defining custom themes, see
|
||||||
|
# https://www.nushell.sh/book/coloring_and_theming.html
|
||||||
|
# And here is the theme collection
|
||||||
|
# https://github.com/nushell/nu_scripts/tree/main/themes
|
||||||
|
let dark_theme = {
|
||||||
|
# color for nushell primitives
|
||||||
|
separator: white
|
||||||
|
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
|
||||||
|
header: green_bold
|
||||||
|
empty: blue
|
||||||
|
# Closures can be used to choose colors for specific values.
|
||||||
|
# The value (in this case, a bool) is piped into the closure.
|
||||||
|
# eg) {|| if $in { 'light_cyan' } else { 'light_gray' } }
|
||||||
|
bool: light_cyan
|
||||||
|
int: white
|
||||||
|
filesize: cyan
|
||||||
|
duration: white
|
||||||
|
date: purple
|
||||||
|
range: white
|
||||||
|
float: white
|
||||||
|
string: white
|
||||||
|
nothing: white
|
||||||
|
binary: white
|
||||||
|
cellpath: white
|
||||||
|
row_index: green_bold
|
||||||
|
record: white
|
||||||
|
list: white
|
||||||
|
block: white
|
||||||
|
hints: dark_gray
|
||||||
|
search_result: {bg: red fg: white}
|
||||||
|
shape_and: purple_bold
|
||||||
|
shape_binary: purple_bold
|
||||||
|
shape_block: blue_bold
|
||||||
|
shape_bool: light_cyan
|
||||||
|
shape_closure: green_bold
|
||||||
|
shape_custom: green
|
||||||
|
shape_datetime: cyan_bold
|
||||||
|
shape_directory: cyan
|
||||||
|
shape_external: cyan
|
||||||
|
shape_externalarg: green_bold
|
||||||
|
shape_filepath: cyan
|
||||||
|
shape_flag: blue_bold
|
||||||
|
shape_float: purple_bold
|
||||||
|
# shapes are used to change the cli syntax highlighting
|
||||||
|
shape_garbage: { fg: white bg: red attr: b}
|
||||||
|
shape_globpattern: cyan_bold
|
||||||
|
shape_int: purple_bold
|
||||||
|
shape_internalcall: cyan_bold
|
||||||
|
shape_list: cyan_bold
|
||||||
|
shape_literal: blue
|
||||||
|
shape_match_pattern: green
|
||||||
|
shape_matching_brackets: { attr: u }
|
||||||
|
shape_nothing: light_cyan
|
||||||
|
shape_operator: yellow
|
||||||
|
shape_or: purple_bold
|
||||||
|
shape_pipe: purple_bold
|
||||||
|
shape_range: yellow_bold
|
||||||
|
shape_record: cyan_bold
|
||||||
|
shape_redirection: purple_bold
|
||||||
|
shape_signature: green_bold
|
||||||
|
shape_string: green
|
||||||
|
shape_string_interpolation: cyan_bold
|
||||||
|
shape_table: blue_bold
|
||||||
|
shape_variable: purple
|
||||||
|
shape_vardecl: purple
|
||||||
|
}
|
||||||
|
|
||||||
|
let light_theme = {
|
||||||
|
# color for nushell primitives
|
||||||
|
separator: dark_gray
|
||||||
|
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
|
||||||
|
header: green_bold
|
||||||
|
empty: blue
|
||||||
|
# Closures can be used to choose colors for specific values.
|
||||||
|
# The value (in this case, a bool) is piped into the closure.
|
||||||
|
# eg) {|| if $in { 'dark_cyan' } else { 'dark_gray' } }
|
||||||
|
bool: dark_cyan
|
||||||
|
int: dark_gray
|
||||||
|
filesize: cyan_bold
|
||||||
|
duration: dark_gray
|
||||||
|
date: purple
|
||||||
|
range: dark_gray
|
||||||
|
float: dark_gray
|
||||||
|
string: dark_gray
|
||||||
|
nothing: dark_gray
|
||||||
|
binary: dark_gray
|
||||||
|
cellpath: dark_gray
|
||||||
|
row_index: green_bold
|
||||||
|
record: white
|
||||||
|
list: white
|
||||||
|
block: white
|
||||||
|
hints: dark_gray
|
||||||
|
search_result: {fg: white bg: red}
|
||||||
|
shape_and: purple_bold
|
||||||
|
shape_binary: purple_bold
|
||||||
|
shape_block: blue_bold
|
||||||
|
shape_bool: light_cyan
|
||||||
|
shape_closure: green_bold
|
||||||
|
shape_custom: green
|
||||||
|
shape_datetime: cyan_bold
|
||||||
|
shape_directory: cyan
|
||||||
|
shape_external: cyan
|
||||||
|
shape_externalarg: green_bold
|
||||||
|
shape_filepath: cyan
|
||||||
|
shape_flag: blue_bold
|
||||||
|
shape_float: purple_bold
|
||||||
|
# shapes are used to change the cli syntax highlighting
|
||||||
|
shape_garbage: { fg: white bg: red attr: b}
|
||||||
|
shape_globpattern: cyan_bold
|
||||||
|
shape_int: purple_bold
|
||||||
|
shape_internalcall: cyan_bold
|
||||||
|
shape_list: cyan_bold
|
||||||
|
shape_literal: blue
|
||||||
|
shape_match_pattern: green
|
||||||
|
shape_matching_brackets: { attr: u }
|
||||||
|
shape_nothing: light_cyan
|
||||||
|
shape_operator: yellow
|
||||||
|
shape_or: purple_bold
|
||||||
|
shape_pipe: purple_bold
|
||||||
|
shape_range: yellow_bold
|
||||||
|
shape_record: cyan_bold
|
||||||
|
shape_redirection: purple_bold
|
||||||
|
shape_signature: green_bold
|
||||||
|
shape_string: green
|
||||||
|
shape_string_interpolation: cyan_bold
|
||||||
|
shape_table: blue_bold
|
||||||
|
shape_variable: purple
|
||||||
|
shape_vardecl: purple
|
||||||
|
}
|
||||||
|
|
||||||
|
# External completer example
|
||||||
|
let carapace_completer = {|spans|
|
||||||
|
carapace $spans.0 nushell $spans | from json
|
||||||
|
}
|
||||||
|
|
||||||
|
# The default config record. This is where much of your global configuration is setup.
|
||||||
|
$env.config = {
|
||||||
|
show_banner: false # true or false to enable or disable the welcome banner at startup
|
||||||
|
|
||||||
|
ls: {
|
||||||
|
use_ls_colors: true # use the LS_COLORS environment variable to colorize output
|
||||||
|
clickable_links: true # enable or disable clickable links. Your terminal has to support links.
|
||||||
|
}
|
||||||
|
|
||||||
|
rm: {
|
||||||
|
always_trash: true # always act as if -t was given. Can be overridden with -p
|
||||||
|
}
|
||||||
|
|
||||||
|
cd: {
|
||||||
|
abbreviations: true # allows `cd s/o/f` to expand to `cd some/other/folder`
|
||||||
|
}
|
||||||
|
|
||||||
|
table: {
|
||||||
|
mode: reinforced # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other
|
||||||
|
index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column
|
||||||
|
show_empty: true # show 'empty list' and 'empty record' placeholders for command output
|
||||||
|
padding: { left: 1, right: 1 } # a left right padding of each column in a table
|
||||||
|
trim: {
|
||||||
|
methodology: wrapping # wrapping or truncating
|
||||||
|
wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology
|
||||||
|
truncating_suffix: "..." # A suffix used by the 'truncating' methodology
|
||||||
|
}
|
||||||
|
header_on_separator: false # show header text on separator/border line
|
||||||
|
}
|
||||||
|
|
||||||
|
# datetime_format determines what a datetime rendered in the shell would look like.
|
||||||
|
# Behavior without this configuration point will be to "humanize" the datetime display,
|
||||||
|
# showing something like "a day ago."
|
||||||
|
datetime_format: {
|
||||||
|
# normal: '%a, %d %b %Y %H:%M:%S %z' # shows up in displays of variables or other datetime's outside of tables
|
||||||
|
# table: '%m/%d/%y %I:%M:%S%p' # generally shows up in tabular outputs such as ls. commenting this out will change it to the default human readable datetime format
|
||||||
|
}
|
||||||
|
|
||||||
|
explore: {
|
||||||
|
try: {
|
||||||
|
border_color: {fg: "white"}
|
||||||
|
},
|
||||||
|
status_bar_background: {fg: "#ebdbb2", bg: "#504945"},
|
||||||
|
command_bar_text: {fg: "#ebdbb2"},
|
||||||
|
highlight: {fg: "black", bg: "yellow"},
|
||||||
|
status: {
|
||||||
|
error: {fg: "white", bg: "red"},
|
||||||
|
warn: {}
|
||||||
|
info: {}
|
||||||
|
},
|
||||||
|
table: {
|
||||||
|
split_line: {fg: "#404040"},
|
||||||
|
selected_cell: {},
|
||||||
|
selected_row: {},
|
||||||
|
selected_column: {},
|
||||||
|
show_cursor: true,
|
||||||
|
line_head_top: true,
|
||||||
|
line_head_bottom: true,
|
||||||
|
line_shift: true,
|
||||||
|
line_index: true,
|
||||||
|
},
|
||||||
|
config: {
|
||||||
|
border_color: {fg: "white"}
|
||||||
|
cursor_color: {fg: "black", bg: "light_yellow"}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
history: {
|
||||||
|
max_size: 100_000 # Session has to be reloaded for this to take effect
|
||||||
|
sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file
|
||||||
|
file_format: "sqlite" # "sqlite" or "plaintext"
|
||||||
|
isolation: false # only available with sqlite file_format. true enables history isolation, false disables it. true will allow the history to be isolated to the current session using up/down arrows. false will allow the history to be shared across all sessions.
|
||||||
|
}
|
||||||
|
|
||||||
|
completions: {
|
||||||
|
case_sensitive: false # set to true to enable case-sensitive completions
|
||||||
|
quick: true # set this to false to prevent auto-selecting completions when only one remains
|
||||||
|
partial: true # set this to false to prevent partial filling of the prompt
|
||||||
|
algorithm: "fuzzy" # prefix or fuzzy
|
||||||
|
external: {
|
||||||
|
enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up may be very slow
|
||||||
|
max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
|
||||||
|
completer: $carapace_completer # check 'carapace_completer' above as an example
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
filesize: {
|
||||||
|
metric: true # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard)
|
||||||
|
format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, auto
|
||||||
|
}
|
||||||
|
|
||||||
|
cursor_shape: {
|
||||||
|
emacs: line # block, underscore, line, blink_block, blink_underscore, blink_line (line is the default)
|
||||||
|
vi_insert: line # block, underscore, line , blink_block, blink_underscore, blink_line (block is the default)
|
||||||
|
vi_normal: block # block, underscore, line, blink_block, blink_underscore, blink_line (underscore is the default)
|
||||||
|
}
|
||||||
|
|
||||||
|
color_config: $dark_theme # if you want a more interesting theme, you can replace the empty record with `$dark_theme`, `$light_theme` or another custom record
|
||||||
|
use_grid_icons: true
|
||||||
|
footer_mode: "25" # always, never, number_of_rows, auto
|
||||||
|
float_precision: 2 # the precision for displaying floats in tables
|
||||||
|
buffer_editor: "" # command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL
|
||||||
|
use_ansi_coloring: true
|
||||||
|
bracketed_paste: true # enable bracketed paste, currently useless on windows
|
||||||
|
edit_mode: vi # emacs, vi
|
||||||
|
shell_integration: false # enables terminal shell integration. Off by default, as some terminals have issues with this.
|
||||||
|
render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt.
|
||||||
|
|
||||||
|
hooks: {
|
||||||
|
pre_prompt: [{ ||
|
||||||
|
let direnv = (direnv export json | from json)
|
||||||
|
let direnv = if ($direnv | length) == 1 { $direnv } else { {} }
|
||||||
|
$direnv | load-env
|
||||||
|
}] # run before the prompt is shown
|
||||||
|
pre_execution: [{ null }] # run before the repl input is run
|
||||||
|
env_change: {
|
||||||
|
PWD: [{|before, after| null }] # run if the PWD environment is different since the last repl input
|
||||||
|
}
|
||||||
|
display_output: "if (term size).columns >= 100 { table -e } else { table }" # run to display the output of a pipeline
|
||||||
|
command_not_found: { null } # return an error message when a command is not found
|
||||||
|
}
|
||||||
|
|
||||||
|
menus: [
|
||||||
|
# Configuration for default nushell menus
|
||||||
|
# Note the lack of source parameter
|
||||||
|
{
|
||||||
|
name: completion_menu
|
||||||
|
only_buffer_difference: false
|
||||||
|
marker: "| "
|
||||||
|
type: {
|
||||||
|
layout: columnar
|
||||||
|
columns: 4
|
||||||
|
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
|
||||||
|
col_padding: 2
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: green_reverse
|
||||||
|
description_text: yellow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: history_menu
|
||||||
|
only_buffer_difference: true
|
||||||
|
marker: "? "
|
||||||
|
type: {
|
||||||
|
layout: list
|
||||||
|
page_size: 10
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: green_reverse
|
||||||
|
description_text: yellow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: help_menu
|
||||||
|
only_buffer_difference: true
|
||||||
|
marker: "? "
|
||||||
|
type: {
|
||||||
|
layout: description
|
||||||
|
columns: 4
|
||||||
|
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
|
||||||
|
col_padding: 2
|
||||||
|
selection_rows: 4
|
||||||
|
description_rows: 10
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: green_reverse
|
||||||
|
description_text: yellow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
keybindings: [
|
||||||
|
{
|
||||||
|
name: completion_menu
|
||||||
|
modifier: none
|
||||||
|
keycode: tab
|
||||||
|
mode: [emacs vi_normal vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menu name: completion_menu }
|
||||||
|
{ send: menunext }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: history_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_r
|
||||||
|
mode: [emacs, vi_insert, vi_normal]
|
||||||
|
event: { send: menu name: history_menu }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: help_menu
|
||||||
|
modifier: none
|
||||||
|
keycode: f1
|
||||||
|
mode: [emacs, vi_insert, vi_normal]
|
||||||
|
event: { send: menu name: help_menu }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: completion_previous_menu
|
||||||
|
modifier: shift
|
||||||
|
keycode: backtab
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: menuprevious }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: next_page_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_x
|
||||||
|
mode: emacs
|
||||||
|
event: { send: menupagenext }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: undo_or_previous_page_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_z
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menupageprevious }
|
||||||
|
{ edit: undo }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: escape
|
||||||
|
modifier: none
|
||||||
|
keycode: escape
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: esc } # NOTE: does not appear to work
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cancel_command
|
||||||
|
modifier: control
|
||||||
|
keycode: char_c
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: ctrlc }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: quit_shell
|
||||||
|
modifier: control
|
||||||
|
keycode: char_d
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: ctrld }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: clear_screen
|
||||||
|
modifier: control
|
||||||
|
keycode: char_l
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: clearscreen }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: search_history
|
||||||
|
modifier: control
|
||||||
|
keycode: char_q
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: searchhistory }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: open_command_editor
|
||||||
|
modifier: control
|
||||||
|
keycode: char_o
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: openeditor }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_up
|
||||||
|
modifier: none
|
||||||
|
keycode: up
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{send: menuup}
|
||||||
|
{send: up}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_down
|
||||||
|
modifier: none
|
||||||
|
keycode: down
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{send: menudown}
|
||||||
|
{send: down}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_left
|
||||||
|
modifier: none
|
||||||
|
keycode: left
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{send: menuleft}
|
||||||
|
{send: left}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_right_or_take_history_hint
|
||||||
|
modifier: none
|
||||||
|
keycode: right
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{send: historyhintcomplete}
|
||||||
|
{send: menuright}
|
||||||
|
{send: right}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_left
|
||||||
|
modifier: control
|
||||||
|
keycode: left
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {edit: movewordleft}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_right_or_take_history_hint
|
||||||
|
modifier: control
|
||||||
|
keycode: right
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{send: historyhintwordcomplete}
|
||||||
|
{edit: movewordright}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_start
|
||||||
|
modifier: none
|
||||||
|
keycode: home
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {edit: movetolinestart}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_start
|
||||||
|
modifier: control
|
||||||
|
keycode: char_a
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {edit: movetolinestart}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_end_or_take_history_hint
|
||||||
|
modifier: none
|
||||||
|
keycode: end
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{send: historyhintcomplete}
|
||||||
|
{edit: movetolineend}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_end_or_take_history_hint
|
||||||
|
modifier: control
|
||||||
|
keycode: char_e
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{send: historyhintcomplete}
|
||||||
|
{edit: movetolineend}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_start
|
||||||
|
modifier: control
|
||||||
|
keycode: home
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {edit: movetolinestart}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_end
|
||||||
|
modifier: control
|
||||||
|
keycode: end
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {edit: movetolineend}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_up
|
||||||
|
modifier: control
|
||||||
|
keycode: char_p
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{send: menuup}
|
||||||
|
{send: up}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_down
|
||||||
|
modifier: control
|
||||||
|
keycode: char_t
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{send: menudown}
|
||||||
|
{send: down}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_character_backward
|
||||||
|
modifier: none
|
||||||
|
keycode: backspace
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: {edit: backspace}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: control
|
||||||
|
keycode: backspace
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: {edit: backspaceword}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_character_forward
|
||||||
|
modifier: none
|
||||||
|
keycode: delete
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: {edit: delete}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_character_forward
|
||||||
|
modifier: control
|
||||||
|
keycode: delete
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: {edit: delete}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_character_forward
|
||||||
|
modifier: control
|
||||||
|
keycode: char_h
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: {edit: backspace}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: control
|
||||||
|
keycode: char_w
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: {edit: backspaceword}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_left
|
||||||
|
modifier: none
|
||||||
|
keycode: backspace
|
||||||
|
mode: vi_normal
|
||||||
|
event: {edit: moveleft}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: newline_or_run_command
|
||||||
|
modifier: none
|
||||||
|
keycode: enter
|
||||||
|
mode: emacs
|
||||||
|
event: {send: enter}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_left
|
||||||
|
modifier: control
|
||||||
|
keycode: char_b
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{send: menuleft}
|
||||||
|
{send: left}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_right_or_take_history_hint
|
||||||
|
modifier: control
|
||||||
|
keycode: char_f
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{send: historyhintcomplete}
|
||||||
|
{send: menuright}
|
||||||
|
{send: right}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: redo_change
|
||||||
|
modifier: control
|
||||||
|
keycode: char_g
|
||||||
|
mode: emacs
|
||||||
|
event: {edit: redo}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: undo_change
|
||||||
|
modifier: control
|
||||||
|
keycode: char_z
|
||||||
|
mode: emacs
|
||||||
|
event: {edit: undo}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: paste_before
|
||||||
|
modifier: control
|
||||||
|
keycode: char_y
|
||||||
|
mode: emacs
|
||||||
|
event: {edit: pastecutbufferbefore}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_word_left
|
||||||
|
modifier: control
|
||||||
|
keycode: char_w
|
||||||
|
mode: emacs
|
||||||
|
event: {edit: cutwordleft}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_line_to_end
|
||||||
|
modifier: control
|
||||||
|
keycode: char_k
|
||||||
|
mode: emacs
|
||||||
|
event: {edit: cuttoend}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_line_from_start
|
||||||
|
modifier: control
|
||||||
|
keycode: char_u
|
||||||
|
mode: emacs
|
||||||
|
event: {edit: cutfromstart}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: swap_graphemes
|
||||||
|
modifier: control
|
||||||
|
keycode: char_t
|
||||||
|
mode: emacs
|
||||||
|
event: {edit: swapgraphemes}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_left
|
||||||
|
modifier: alt
|
||||||
|
keycode: left
|
||||||
|
mode: emacs
|
||||||
|
event: {edit: movewordleft}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_right_or_take_history_hint
|
||||||
|
modifier: alt
|
||||||
|
keycode: right
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{send: historyhintwordcomplete}
|
||||||
|
{edit: movewordright}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_left
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_b
|
||||||
|
mode: emacs
|
||||||
|
event: {edit: movewordleft}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_right_or_take_history_hint
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_f
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{send: historyhintwordcomplete}
|
||||||
|
{edit: movewordright}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_forward
|
||||||
|
modifier: alt
|
||||||
|
keycode: delete
|
||||||
|
mode: emacs
|
||||||
|
event: {edit: deleteword}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: alt
|
||||||
|
keycode: backspace
|
||||||
|
mode: emacs
|
||||||
|
event: {edit: backspaceword}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_m
|
||||||
|
mode: emacs
|
||||||
|
event: {edit: backspaceword}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_word_to_right
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_d
|
||||||
|
mode: emacs
|
||||||
|
event: {edit: cutwordright}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: upper_case_word
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_u
|
||||||
|
mode: emacs
|
||||||
|
event: {edit: uppercaseword}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: lower_case_word
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_l
|
||||||
|
mode: emacs
|
||||||
|
event: {edit: lowercaseword}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: capitalize_char
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_c
|
||||||
|
mode: emacs
|
||||||
|
event: {edit: capitalizechar}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# STOLEN FROM: https://www.grailbox.com/2023/07/autostart-zellij-in-nushell/
|
||||||
|
# zellij
|
||||||
|
def start_zellij [] {
|
||||||
|
if 'ZELLIJ' not-in ($env | columns) {
|
||||||
|
if 'ZELLIJ_AUTO_ATTACH' in ($env | columns) and $env.ZELLIJ_AUTO_ATTACH == 'true' {
|
||||||
|
zellij attach -c
|
||||||
|
} else {
|
||||||
|
zellij
|
||||||
|
}
|
||||||
|
|
||||||
|
if 'ZELLIJ_AUTO_EXIT' in ($env | columns) and $env.ZELLIJ_AUTO_EXIT == 'true' {
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
start_zellij
|
||||||
|
|
||||||
|
alias gnix = cd ~/nix-configs;
|
||||||
|
alias grepo = cd ~/Documents/repos;
|
||||||
|
alias wh = wormhole-rs;
|
22
other/remaps-catbook.toml
Normal file
22
other/remaps-catbook.toml
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
device_name = "AT Translated Set 2 keyboard"
|
||||||
|
|
||||||
|
[[remap]]
|
||||||
|
input = [ "KEY_Y" ]
|
||||||
|
output = [ "KEY_Z" ]
|
||||||
|
|
||||||
|
[[remap]]
|
||||||
|
input = [ "KEY_Z" ]
|
||||||
|
output = [ "KEY_Y" ]
|
||||||
|
|
||||||
|
[[remap]]
|
||||||
|
input = [ "KEY_LEFTALT" ]
|
||||||
|
output = [ "KEY_LEFTMETA" ]
|
||||||
|
|
||||||
|
[[remap]]
|
||||||
|
input = [ "KEY_LEFTMETA" ]
|
||||||
|
output = [ "KEY_LEFTALT" ]
|
||||||
|
|
||||||
|
[[dual_role]]
|
||||||
|
input = "KEY_CAPSLOCK"
|
||||||
|
hold = ["KEY_LEFTCTRL"]
|
||||||
|
tap = ["KEY_ESC"]
|
|
@ -1,38 +1,35 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
pkgs.writeShellScriptBin "desktopctl" ''
|
pkgs.writeShellScriptBin "desktopctl" ''
|
||||||
run() {
|
case $@ in
|
||||||
case $@ in
|
"Lock Screen")
|
||||||
"Lock Screen")
|
nohup sh -c "i3lock-fancy" > /dev/null &
|
||||||
nohup sh -c "i3lock-fancy" > /dev/null &
|
exit 0
|
||||||
exit 0
|
;;
|
||||||
;;
|
"Log Out")
|
||||||
"Log Out")
|
pkill xmonad
|
||||||
pkill xmonad
|
exit 0
|
||||||
exit 0
|
;;
|
||||||
;;
|
"Shut Down")
|
||||||
"Shut Down")
|
shutdown now
|
||||||
shutdown now
|
exit 0
|
||||||
exit 0
|
;;
|
||||||
;;
|
"Reboot")
|
||||||
"Reboot")
|
systemctl reboot
|
||||||
systemctl reboot
|
exit 0
|
||||||
exit 0
|
;;
|
||||||
;;
|
esac
|
||||||
esac
|
|
||||||
|
|
||||||
# resizes grid
|
# resizes grid
|
||||||
echo -en "\0theme\x1flistview,inputbar,message{columns:4;lines:1;}\n"
|
echo -en "\0theme\x1flistview,inputbar,message{columns:4;lines:1;}\n"
|
||||||
# resizes window, moves it to top of screen, adjusts rounded corners
|
# resizes window, moves it to top of screen, adjusts rounded corners
|
||||||
echo -en "\0theme\x1fwindow{width:800px;location:north;y-offset:24px;border-radius:0 0 12px 12px;}\n"
|
echo -en "\0theme\x1fwindow{width:800px;location:north;y-offset:24px;border-radius:0 0 12px 12px;}\n"
|
||||||
# swaps grid and input bar
|
# swaps grid and input bar
|
||||||
echo -en "\0theme\x1fmainbox{children:[listview,inputbar];}\n"
|
echo -en "\0theme\x1fmainbox{children:[listview,inputbar];}\n"
|
||||||
# fixes brown line below input bar
|
# fixes brown line below input bar
|
||||||
echo -en "\0theme\x1finputbar{margin:0;}\n"
|
echo -en "\0theme\x1finputbar{margin:0;}\n"
|
||||||
|
|
||||||
echo -en "Lock Screen\0icon\x1f${../../../other/assets/desktopctl/lock-screen.svg}\n"
|
echo -en "Lock Screen\0icon\x1f${../../../other/assets/desktopctl/lock-screen.svg}\n"
|
||||||
echo -en "Log Out\0icon\x1f${../../../other/assets/desktopctl/logout.svg}\n"
|
echo -en "Log Out\0icon\x1f${../../../other/assets/desktopctl/logout.svg}\n"
|
||||||
echo -en "Shut Down\0icon\x1f${../../../other/assets/desktopctl/shutdown.svg}\n"
|
echo -en "Shut Down\0icon\x1f${../../../other/assets/desktopctl/shutdown.svg}\n"
|
||||||
echo -en "Reboot\0icon\x1f${../../../other/assets/desktopctl/reboot.svg}\n"
|
echo -en "Reboot\0icon\x1f${../../../other/assets/desktopctl/reboot.svg}\n"
|
||||||
}
|
|
||||||
rofi -show "desktopctl" -modes "desktopctl:run"
|
|
||||||
''
|
''
|
||||||
|
|
|
@ -12,7 +12,7 @@ case $ROFI_RETV in
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
ddgrout=$(ddgr --json --num=25 "$@")
|
ddgrout=$(ddgr --json --num=25 "$@" --url-handler 'librewolf')
|
||||||
|
|
||||||
for i in $(echo $ddgrout | jq -r 'keys | @sh'); do
|
for i in $(echo $ddgrout | jq -r 'keys | @sh'); do
|
||||||
title=$(echo $ddgrout | jq -r .[$i].title)
|
title=$(echo $ddgrout | jq -r .[$i].title)
|
||||||
|
|
Loading…
Reference in a new issue