Compare commits

..

8 commits

Author SHA1 Message Date
Schrottkatze f05b49fa81
flake.lock: Update 2024-06-12 13:27:57 +02:00
Schrottkatze 5a1252da4b
update nushell stuff 2024-06-12 13:26:34 +02:00
Schrottkatze b3fe297a4a
add logseq 2024-06-12 13:26:05 +02:00
Schrottkatze 11d200f60b
more sway stuff 2024-06-12 13:25:51 +02:00
Schrottkatze a20ee22543
fix home manager search alias 2024-06-12 13:25:10 +02:00
Schrottkatze e3767b5441
fix hw key 2024-06-12 13:24:47 +02:00
Schrottkatze 8c81b94e47
helix inline diags 2024-06-12 13:23:20 +02:00
Schrottkatze 81246671df
setup sway 2024-06-12 11:11:13 +02:00
11 changed files with 379 additions and 37 deletions

View file

@ -115,6 +115,8 @@ with builtins; {
mtr.enable = true;
};
hardware.gpgSmartcards.enable = true;
time.timeZone = "Europe/Berlin";
home-manager.users.jade = {
@ -155,5 +157,5 @@ with builtins; {
algorithm = "zstd";
};
users.defaultUserShell = pkgs.nushellFull;
users.defaultUserShell = pkgs.nushell;
}

View file

@ -7,11 +7,11 @@
]
},
"locked": {
"lastModified": 1714864355,
"narHash": "sha256-uXNW6bapWFfkYIkK1EagydSrFMqycOYEDSq75GmUpjk=",
"lastModified": 1718078026,
"narHash": "sha256-LbQabH6h86ZzTvDnaZHmMwedRZNB2jYtUQzmoqWQoJ8=",
"owner": "ipetkov",
"repo": "crane",
"rev": "442a7a6152f49b907e73206dc8e1f46a61e8e873",
"rev": "a3f0c63eed74a516298932b9b1627dd80b9c3892",
"type": "github"
},
"original": {
@ -28,11 +28,11 @@
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1714976745,
"narHash": "sha256-SAYU6uaVcUmckp/RFxkndz7u7eX1D69piTIMmAAop6Y=",
"lastModified": 1717827974,
"narHash": "sha256-ixopuTeTouxqTxfMuzs6IaRttbT8JqRW5C9Q/57WxQw=",
"owner": "nix-community",
"repo": "fenix",
"rev": "a291b6ad30f4ec949e6c98dde43d73d2946515c3",
"rev": "ab655c627777ab5f9964652fe23bbb1dfbd687a8",
"type": "github"
},
"original": {
@ -45,6 +45,24 @@
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1709126324,
"narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "d465f4819400de7c8d874d50b982301f28a84605",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
@ -74,6 +92,32 @@
"type": "github"
}
},
"helix-inline-diags": {
"inputs": {
"crane": [
"crane"
],
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1717871542,
"narHash": "sha256-eUB9gt3Hva7atNOv/Vel1bchD/9Pziz0C/r9K0vh+qQ=",
"owner": "pascalkuthe",
"repo": "helix",
"rev": "418ac237bf1e162b866a873d6cd33bb69f5d1bb4",
"type": "github"
},
"original": {
"owner": "pascalkuthe",
"ref": "inline-diagnostics",
"repo": "helix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -81,11 +125,11 @@
]
},
"locked": {
"lastModified": 1714981474,
"narHash": "sha256-b3/U21CJjCjJKmA9WqUbZGZgCvospO3ArOUTgJugkOY=",
"lastModified": 1717931644,
"narHash": "sha256-Sz8Wh9cAiD5FhL8UWvZxBfnvxETSCVZlqWSYWaCPyu0=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "6ebe7be2e67be7b9b54d61ce5704f6fb466c536f",
"rev": "3d65009effd77cb0d6e7520b68b039836a7606cf",
"type": "github"
},
"original": {
@ -113,7 +157,7 @@
},
"lix-module": {
"inputs": {
"flake-utils": "flake-utils",
"flake-utils": "flake-utils_2",
"flakey-profile": "flakey-profile",
"lix": [
"lix"
@ -123,11 +167,11 @@
]
},
"locked": {
"lastModified": 1714868057,
"narHash": "sha256-Q9vGkxmuarySjPKO6yixjZ0tkaVIQS2wU9FpCpDA7+I=",
"lastModified": 1717647344,
"narHash": "sha256-m8XYt8NU2T4gvkien7H7LFGXHhSA5z4tHOeuXQ3DJi4=",
"ref": "refs/heads/main",
"rev": "e31baf57680bab449ab5b40179cc4a08a99f5314",
"revCount": 62,
"rev": "4e25f1ab68f2270f9cff59216056c21073db0164",
"revCount": 87,
"type": "git",
"url": "https://git.lix.systems/lix-project/nixos-module"
},
@ -167,11 +211,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1714906307,
"narHash": "sha256-UlRZtrCnhPFSJlDQE7M0eyhgvuuHBTe1eJ9N9AQlJQ0=",
"lastModified": 1717974879,
"narHash": "sha256-GTO3C88+5DX171F/gVS3Qga/hOs/eRMxPFpiHq2t+D8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "25865a40d14b3f9cf19f19b924e2ab4069b09588",
"rev": "c7b821ba2e1e635ba5a76d299af62821cbcb09f3",
"type": "github"
},
"original": {
@ -182,11 +226,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1714782413,
"narHash": "sha256-tbg0MEuKaPcUrnmGCu4xiY5F+7LW2+ECPKVAJd2HLwM=",
"lastModified": 1718060059,
"narHash": "sha256-9XKFni8VMXo81RTq9XygCyaO3I/7UKpwIlM/yn0MdcM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "651b4702e27a388f0f18e1b970534162dec09aff",
"rev": "a3c8d64ba846725f040582b2d3b875466d2115bd",
"type": "github"
},
"original": {
@ -197,11 +241,11 @@
},
"nixpkgs-unstable-small": {
"locked": {
"lastModified": 1715010189,
"narHash": "sha256-VG/ax2TLmsF0G8M3Q/lE0P7U/pzky8NScim8ZGmIfAY=",
"lastModified": 1718083092,
"narHash": "sha256-EQsPXycAbmby4meQUNLYfFaGOiqz2J9AlwFRV4UiHnY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "95269ee8dbc9daacad586e8ad87567369a7e1042",
"rev": "aa1ebdaf49a606e21c06e0f6ed7aece9a41831c3",
"type": "github"
},
"original": {
@ -214,6 +258,7 @@
"inputs": {
"crane": "crane",
"fenix": "fenix",
"helix-inline-diags": "helix-inline-diags",
"home-manager": "home-manager",
"lix": "lix",
"lix-module": "lix-module",
@ -227,11 +272,11 @@
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1714936835,
"narHash": "sha256-M+PpgfRMBfHo8Jb2ou/s3maAZbps0XnuHXQU9Hv9vL0=",
"lastModified": 1717583671,
"narHash": "sha256-+lRAmz92CNUxorqWusgJbL9VE1eKCnQQojglRemzwkw=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "c4618fe14d39992fbbb85c2d6cad028a232c13d2",
"rev": "48bbdd6a74f3176987d5c809894ac33957000d19",
"type": "github"
},
"original": {
@ -241,6 +286,31 @@
"type": "github"
}
},
"rust-overlay": {
"inputs": {
"flake-utils": [
"helix-inline-diags",
"flake-utils"
],
"nixpkgs": [
"helix-inline-diags",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709604635,
"narHash": "sha256-le4fwmWmjGRYWwkho0Gr7mnnZndOOe4XGbLw68OvF40=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "e86c0fb5d3a22a5f30d7f64ecad88643fe26449d",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
@ -255,6 +325,21 @@
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",

View file

@ -5,6 +5,13 @@
nixpkgs.url = "nixpkgs/nixos-unstable";
nixpkgs-stable.url = "nixpkgs/nixos-23.11";
nixpkgs-unstable-small.url = "nixpkgs/nixos-unstable-small";
helix-inline-diags = {
url = "github:pascalkuthe/helix/inline-diagnostics";
inputs = {
crane.follows = "crane";
nixpkgs.follows = "nixpkgs";
};
};
lix = {
url = "git+https://git@git.lix.systems/lix-project/lix?ref=refs/tags/2.90-beta.1";
flake = false;
@ -40,6 +47,7 @@
nixpkgs,
nixpkgs-stable,
nixpkgs-unstable-small,
helix-inline-diags,
lix-module,
home-manager,
nixos-hardware,
@ -93,7 +101,7 @@
nixosConfigurations = {
monosodium-glutamate-g = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs pkgs-unstable-small pkgs-stable rs-programs lix-module;
inherit inputs pkgs-unstable-small pkgs-stable rs-programs lix-module helix-inline-diags;
};
system = "x86_64-linux";
modules = [
@ -118,7 +126,7 @@
};
catbook-j = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs pkgs-unstable-small pkgs-stable rs-programs lix-module;
inherit inputs pkgs-unstable-small pkgs-stable rs-programs lix-module helix-inline-diags;
};
system = "x86_64-linux";
modules = [
@ -143,7 +151,7 @@
};
potatobook-g = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs pkgs-unstable-small rs-programs lix-module;
inherit inputs pkgs-unstable-small rs-programs lix-module helix-inline-diags;
};
system = "x86_64-linux";
modules = [

View file

@ -6,6 +6,13 @@
./compositing.nix
./panels
./xmonad
./sway
];
services.gpg-agent = {
enable = true;
enableNushellIntegration = true;
enableSshSupport = true;
};
};
}

View file

@ -0,0 +1,176 @@
{
pkgs,
lib,
config,
...
}: {
programs.wofi.enable = true;
programs.swaylock.enable = true;
wayland.windowManager.sway = {
enable = true;
systemd = {
enable = true;
};
wrapperFeatures = {
base = true;
gtk = true;
};
config = {
modes = {
resize = {
Down = "resize grow height 10 px";
Escape = "mode default";
Left = "resize shrink width 10 px";
Return = "mode default";
Right = "resize grow width 10 px";
Up = "resize shrink height 10 px";
h = "resize shrink width 10 px";
j = "resize grow height 10 px";
k = "resize shrink height 10 px";
l = "resize grow width 10 px";
};
};
terminal = "kitty";
output = {
"*" = {
bg = "${../xmonad/wallpaper/wallpaper.jpg} fill";
};
};
input = {
"*" = {
xkb_layout = "us";
xkb_variant = "altgr-intl";
};
};
menu = "wofi -d";
modifier = "Mod4";
keybindings = with {
#mod = config.xsession.windowManager.i3.config.modifier;
# mod = "Mod1";
mod = config.wayland.windowManager.sway.config.modifier;
};
lib.mkOptionDefault {
# switch window focus
"${mod}+h" = "focus left";
"${mod}+j" = "focus down";
"${mod}+k" = "focus up";
"${mod}+l" = "focus right";
# move windows
"${mod}+Shift+h" = "move left";
"${mod}+Shift+j" = "move down";
"${mod}+Shift+k" = "move up";
"${mod}+Shift+l" = "move right";
# layout shit
"${mod}+shift+semicolon" = "split h";
"${mod}+semicolon" = "split v";
"${mod}+f" = "fullscreen toggle";
"${mod}+Shift+w" = "layout tabbed";
"${mod}+e" = "layout toggle split";
"${mod}+Shift+space" = "floating toggle";
# focus parents/children
# "${mod}+Shift+a" = "focus parent";
# "${mod}+Shift+c" = "focus child";
# screenshot
# "${mod}+w" = "exec window-screenshot.sh";
# "${mod}+s" = "exec flameshot gui -c -p $HOME/Pictures/screenshots";
# "${mod}+a" = "exec flameshot screen -c -p $HOME/Pictures/screenshots";
# "${mod}+t" = "exec ocr-screenshot.sh";
# rofi fuckery
"${mod}+d" = "exec wofi -S drun --allow-images";
"${mod}+i" = "exec rofimoji --selector wofi -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";
# TODO: wayland
# "${mod}+d" = "exec --no-startup-id rofi -show drun -theme ${../../other/rofi-themes/applauncher.rasi}";
# "${mod}+space" = "exec --no-startup-id rofi -show combi -combi-show window#run -modes combi -theme ${../../other/rofi-themes/applauncher.rasi}";
# "${mod}+i" = "exec --no-startup-id 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";
# "${mod}+Shift+e" = "exec --no-startup-id rofi -show \"desktopctl\" -modes \"desktopctl:${desktop-ctl.outPath}/bin/desktopctl\" -theme ${../../other/rofi-themes/applauncher.rasi}";
# "${mod}+m" = "exec --no-startup-id menu-qalc";
# "${mod}+o" = "exec --no-startup-id rofi -show searchwolf -modes \"searchwolf:${searchwolf.outPath}/bin/searchwolf\"";
# audio
"XF86AudioRaiseVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status";
"XF86AudioLowerVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status";
"XF86AudioMute" = "exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status";
"XF86AudioMicMute" = "exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status";
"XF86AudioNext" = "exec playerctl next";
"XF86AudioPrev" = "exec playerctl previous";
"XF86AudioPause" = "exec playerctl pause";
"XF86AudioPlay" = "exec playerctl play";
"XF86AudioStop" = "exec playerctl stop";
"XF86MonBrightnessUp" = "exec brightnessctl set 5%+";
"XF86MonBrightnessDown" = "exec brightnessctl set 5%-";
"XF86KbdBrightnessUp" = "exec brillo -kA 10.0";
"XF86KbdBrightnessDown" = "exec brillo -kU 10.0";
# macros
# "${mod}+q" = "exec em-record.sh";
# "${mod}+p" = "exec em-play.sh";
# "${mod}+Shift+p" = "exec em-play-loop.sh";
# permaclip
# "${mod}+c" = "exec rofi -show register -modes \"register:${pc-set.outPath}/bin/pc-set.sh\" -theme gruvbox-dark";
# "${mod}+v" = "exec rofi -show register -modes \"register:${pc-get.outPath}/bin/pc-get.sh\" -theme gruvbox-dark";
};
fonts = {
names = ["Atkinson Hyperlegible"];
style = "Regular";
size = 9.0;
};
gaps = {
#top = 24;
inner = 15;
outer = 0;
smartGaps = true;
smartBorders = "on";
};
colors = {
background = "#1d2021";
focused = {
background = "#282828";
border = "#504945";
childBorder = "#7c6f64";
indicator = "#504945";
text = "#ebdbb2";
};
focusedInactive = {
background = "#1d2021";
border = "#504945";
childBorder = "#665c54";
indicator = "#664c54";
text = "#d5c4a1";
};
placeholder = {
background = "#1d2021";
border = "#00ff00";
childBorder = "#504945";
indicator = "#504945";
text = "#928374";
};
unfocused = {
background = "#1d2021";
border = "#3c3836";
childBorder = "#504945";
indicator = "#504945";
text = "#bdae93";
};
urgent = {
background = "#9d0006";
border = "#cc241d";
childBorder = "#3c3836";
indicator = "#fb4943";
text = "#ebdbb2";
};
};
window = {
border = 2;
titlebar = true;
};
};
};
}

View file

@ -169,6 +169,8 @@ in
mupdf
inotify-tools
logseq
];
xsession = {
enable = true;

View file

@ -82,12 +82,16 @@
"Home manager Options" = {
urls = [
{
template = "https://mipmip.github.io/home-manager-option-search/";
template = "https://home-manager-options.extranix.com/";
params = [
{
name = "query";
value = "{searchTerms}";
}
{
name = "release";
value = "master";
}
];
}
];

View file

@ -1,4 +1,4 @@
{...}: {
{pkgs, ...}: {
services.xserver = {
enable = true;
@ -8,6 +8,10 @@
displayManager = {
gdm.enable = true;
sessionPackages = [
pkgs.sway
];
gdm.autoLogin.delay = 5;
};
windowManager.xmonad = {
@ -15,5 +19,9 @@
};
};
services.displayManager.defaultSession = "none+xmonad";
security.polkit.enable = true;
# programs.sway.enable = true;
# services.displayManager.defaultSession = "none+xmonad";
services.displayManager.defaultSession = "sway";
}

View file

@ -1,4 +1,8 @@
{config, ...}: {
{
config,
helix-inline-diags,
...
}: {
home-manager.users.jade = {pkgs, ...}: {
home = {
sessionVariables.EDITOR = "hx";
@ -12,7 +16,7 @@
};
programs.helix = {
enable = true;
package = pkgs.helix;
package = helix-inline-diags.outputs.packages."x86_64-linux".default;
settings = {
theme = "gruvbox";
editor = {
@ -22,6 +26,11 @@
cursorline = true;
auto-save = true;
auto-format = true;
end-of-line-diagnostics = "hint";
inline-diagnostics = {
cursor-line = "hint";
other-lines = "error";
};
lsp = {
display-messages = true;
display-inlay-hints = true;
@ -48,7 +57,7 @@
"file-encoding"
"file-type"
];
idle-timeout = 200;
idle-timeout = 50;
indent-guides = {
render = true;
character = "";

View file

@ -11,6 +11,11 @@
};
home.packages = [
pkgs.pueue
pkgs.nushellPlugins.net
pkgs.nushellPlugins.query
pkgs.nushellPlugins.gstat
pkgs.nushellPlugins.polars
pkgs.nushellPlugins.formats
];
programs.nushell = {
enable = true;

View file

@ -42,6 +42,7 @@ let dark_theme = {
shape_directory: cyan
shape_external: cyan
shape_externalarg: green_bold
shape_external_resolved: light_cyan_bold
shape_filepath: cyan
shape_flag: blue_bold
shape_float: purple_bold
@ -238,7 +239,36 @@ $env.config = {
use_ansi_coloring: true
bracketed_paste: true # enable bracketed paste, currently useless on windows
edit_mode: vi # emacs, vi
shell_integration: true # enables terminal shell integration. Off by default, as some terminals have issues with this.
shell_integration: {
# osc2 abbreviates the path if in the home_dir, sets the tab/window title, shows the running command in the tab/window title
osc2: true
# osc7 is a way to communicate the path to the terminal, this is helpful for spawning new tabs in the same directory
osc7: true
# osc8 is also implemented as the deprecated setting ls.show_clickable_links, it shows clickable links in ls output if your terminal supports it. show_clickable_links is deprecated in favor of osc8
osc8: true
# osc9_9 is from ConEmu and is starting to get wider support. It's similar to osc7 in that it communicates the path to the terminal
osc9_9: false
# osc133 is several escapes invented by Final Term which include the supported ones below.
# 133;A - Mark prompt start
# 133;B - Mark prompt end
# 133;C - Mark pre-execution
# 133;D;exit - Mark execution finished with exit code
# This is used to enable terminals to know where the prompt is, the command is, where the command finishes, and where the output of the command is
osc133: true
# osc633 is closely related to osc133 but only exists in visual studio code (vscode) and supports their shell integration features
# 633;A - Mark prompt start
# 633;B - Mark prompt end
# 633;C - Mark pre-execution
# 633;D;exit - Mark execution finished with exit code
# 633;E - NOT IMPLEMENTED - Explicitly set the command line with an optional nonce
# 633;P;Cwd=<path> - Mark the current working directory and communicate it to the terminal
# and also helps with the run recent menu in vscode
osc633: false
# reset_application_mode is escape \x1b[?1l and was added to help ssh work better
reset_application_mode: true
}
use_kitty_protocol: false
highlight_resolved_externals: true
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: {
@ -781,6 +811,12 @@ def start_zellij [] {
start_zellij
# plugin add nu_plugin_net
# plugin add nu_plugin_gstat
# plugin add nu_plugin_query
# plugin add nu_plugin_polars
# plugin add nu_plugin_formats
def nsp [
...programs: string
] {