13 Commits

Author SHA1 Message Date
6e305eb081 added configuration for the screenshare picker 2026-02-01 15:58:43 +01:00
b6d1be0efc added some scripts and configuration for gpu screen recorder. note: gpu-screen-recorder must be installed for this 2026-01-30 18:29:51 +01:00
fff6779344 Merge pull request #11 from quirinecker/10-pdf-default-program
added default application entry for pdf files (default browser)
2026-01-29 18:40:30 +01:00
3a6f8c49cc added default application entry for pdf files (default browser) 2026-01-29 18:39:45 +01:00
2e3ac6e095 added custom menu for power options 2026-01-27 16:19:06 +01:00
42ae7ddd18 changed pin keybinds for walker. were conflicting with the vim keybinds 2026-01-27 14:54:09 +01:00
e96cf7518e now using elephant as a seperate input. This way it will be updated by seperately 2026-01-27 14:05:45 +01:00
b4efbdcd2d disabled zen browser for now 2026-01-11 14:13:20 +01:00
8e82b16dbd added dart language support 2026-01-11 14:11:52 +01:00
10234ceb9a added errands for todos and assigned it to the 3rd workspace 2026-01-07 21:25:10 +01:00
d60ec7cdfe hyprshot now also freezes the screen 2026-01-03 13:10:58 +01:00
17a1e0c788 fugitive things are opening in a new tab now. At least the 2 most
important ones.
2025-12-25 09:02:27 +01:00
0d7c392b47 added some new git commands for fugitive to autoload 2025-12-25 08:59:53 +01:00
15 changed files with 104 additions and 71 deletions

View File

@@ -22,6 +22,7 @@ dotfiles-modules = {
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.zen-browser.follows = "zen-browser"; inputs.zen-browser.follows = "zen-browser";
inputs.walker.follows = "walker"; inputs.walker.follows = "walker";
inputs.elephant.follows = "elephant";
}; };
zen-browser = { zen-browser = {
@@ -32,6 +33,12 @@ zen-browser = {
walker = { walker = {
url = "github:abenz1267/walker"; url = "github:abenz1267/walker";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.elephant.follows = "elephant";
};
elephant = {
url = "github:abenz1267/elephant";
inputs.nixpkgs.follows = "nixpkgs";
}; };
``` ```

View File

@@ -11,9 +11,15 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
elephant = {
url = "github:abenz1267/elephant";
inputs.nixpkgs.follows = "nixpkgs";
};
walker = { walker = {
url = "github:abenz1267/walker"; url = "github:abenz1267/walker";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.elephant.follows = "elephant";
}; };
nix-options-doc = { nix-options-doc = {

View File

@@ -14,11 +14,13 @@ in
config = lib.mkIf config.modules.default_apps.enable { config = lib.mkIf config.modules.default_apps.enable {
xdg.mimeApps.enable = true; xdg.mimeApps.enable = true;
xdg.mimeApps.defaultApplications = { xdg.mimeApps.defaultApplications = {
# Future Reference: use `xdg-mime query filetype <file>` to get the mime tyep of a given file
"text/html" = "${defaultBrowser}.desktop"; "text/html" = "${defaultBrowser}.desktop";
"x-scheme-handler/http" = "${defaultBrowser}.desktop"; "x-scheme-handler/http" = "${defaultBrowser}.desktop";
"x-scheme-handler/https" = "${defaultBrowser}.desktop"; "x-scheme-handler/https" = "${defaultBrowser}.desktop";
"x-scheme-handler/about" = "${defaultBrowser}.desktop"; "x-scheme-handler/about" = "${defaultBrowser}.desktop";
"inode/directory" = "org.gnome.Nautilus.desktop"; "inode/directory" = "org.gnome.Nautilus.desktop";
"application/pdf" = "${defaultBrowser}.desktop";
}; };
xdg.terminal-exec.enable = true; xdg.terminal-exec.enable = true;

View File

@@ -9,7 +9,20 @@ let
in in
{ {
options = { options = {
modules.hyprland.enable = lib.mkEnableOption "hyprland"; modules.hyprland.enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Whether to enable the hyprland configuration module.
Warning: This does not include the installation of hyprland itself.
recommended dependencies:
hyprpaper
hypridle
hyprlock
hyprshot
https://github.com/WhySoBad/hyprland-preview-share-picker/tree/master
'';
};
}; };
config = lib.mkIf config.modules.hyprland.enable { config = lib.mkIf config.modules.hyprland.enable {
@@ -22,11 +35,17 @@ in
"hypr/hyprpaper.conf".source = config.lib.file.mkOutOfStoreSymlink ./hyprland/hyprpaper.conf; "hypr/hyprpaper.conf".source = config.lib.file.mkOutOfStoreSymlink ./hyprland/hyprpaper.conf;
"hypr/hypridle.conf".source = config.lib.file.mkOutOfStoreSymlink ./hyprland/hypridle.conf; "hypr/hypridle.conf".source = config.lib.file.mkOutOfStoreSymlink ./hyprland/hypridle.conf;
"hypr/hyprlock.conf".source = config.lib.file.mkOutOfStoreSymlink ./hyprland/hyprlock.conf; "hypr/hyprlock.conf".source = config.lib.file.mkOutOfStoreSymlink ./hyprland/hyprlock.conf;
"hypr/xdph.conf".source = config.lib.file.mkOutOfStoreSymlink ./hyprland/xdph.conf;
"backgrounds".source = config.lib.file.mkOutOfStoreSymlink ./backgrounds; "backgrounds".source = config.lib.file.mkOutOfStoreSymlink ./backgrounds;
"hypr/nix.conf".text = '' "hypr/nix.conf".text = ''
$defaultBrowser=${defaultBrowser} $defaultBrowser=${defaultBrowser}
''; '';
"hypr/scripts/gpu-screen-recorder/save-replay.sh".source =
config.lib.file.mkOutOfStoreSymlink ./hyprland/scripts/gpu-screen-recorder/save-replay.sh;
"hypr/scripts/gpu-screen-recorder/start-replay.sh".source =
config.lib.file.mkOutOfStoreSymlink ./hyprland/scripts/gpu-screen-recorder/start-replay.sh;
}; };
}; };
} }

View File

@@ -39,12 +39,16 @@ exec-once = hyprpanel & hyprpaper & hypridle & elephant & walker --gapplication-
exec-once = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Classic' exec-once = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Classic'
exec-once = gsettings set org.gnome.desktop.interface cursor-size 24 exec-once = gsettings set org.gnome.desktop.interface cursor-size 24
# This requires gpu-screen-recorder to be installed. I installed it with this https://wiki.nixos.org/wiki/Gpu-screen-recorder.
exec-once = ~/.config/hypr/scripts/gpu-screen-recorder/start-replay.sh
exec-once = [workspace 4 silent] signal-desktop exec-once = [workspace 4 silent] signal-desktop
exec-once = [workspace 4 silent] spotify exec-once = [workspace 4 silent] spotify
exec-once = [workspace 4 silent] thunderbird exec-once = [workspace 4 silent] thunderbird
exec-once = [workspace 3 silent] gnome-calendar exec-once = [workspace 3 silent] gnome-calendar
exec-once = [workspace 3 silent] bitwarden exec-once = [workspace 3 silent] bitwarden
exec-once = [workspace 3 silent] errands
exec-once = [workspace 2 silent] $browser exec-once = [workspace 2 silent] $browser
exec-once = [workspace 1 silent] $terminal exec-once = [workspace 1 silent] $terminal
# exec-once = [workspace 4 silent] discord # exec-once = [workspace 4 silent] discord
@@ -224,7 +228,9 @@ bind = $mainMod SHIFT, D, exec, discord
bind = SUPER_ALT,L, exec, hyprlock bind = SUPER_ALT,L, exec, hyprlock
bind = ,F10, exec, hyprlock bind = ,F10, exec, hyprlock
bind = $mainMod ALT, Space, exec, hyprctl switchxkblayout current next bind = $mainMod ALT, Space, exec, hyprctl switchxkblayout current next
bind = $mainMod SHIFT, S, exec, hyprshot -m region bind = $mainMod SHIFT, S, exec, hyprshot -m region -z
# This requires gpu-screen-recorder to be installed. I installed it with this https://wiki.nixos.org/wiki/Gpu-screen-recorder.
bind = $mainMod SHIFT, V, exec, ~/.config/hypr/scripts/gpu-screen-recorder/save-replay.sh
bind = $mainMod SHIFT, C, exec, hyprpicker | wl-copy bind = $mainMod SHIFT, C, exec, hyprpicker | wl-copy
bind = $mainMod, Y, exec, firefox bind = $mainMod, Y, exec, firefox

View File

@@ -0,0 +1,3 @@
#!/bin/sh -e
killall -SIGUSR1 gpu-screen-recorder && sleep 0.5 && notify-send -t 1500 -u low -- "GPU Screen Recorder" "Replay saved"

View File

@@ -0,0 +1,6 @@
#!/bin/sh
pidof -q gpu-screen-recorder && exit 0
video_path="$HOME/Videos"
mkdir -p "$video_path"
gpu-screen-recorder -w screen -f 60 -a default_output -c mkv -bm cbr -q 40000 -r 60 -o "$video_path"

View File

@@ -0,0 +1,3 @@
screencopy {
custom_picker_binary = hyprland-preview-share-picker
}

View File

@@ -40,7 +40,7 @@ in
pkgs.luajitPackages.lua-lsp pkgs.luajitPackages.lua-lsp
pkgs.lua-language-server pkgs.lua-language-server
pkgs.nil pkgs.nil
pkgs.nixfmt-rfc-style pkgs.nixfmt
pkgs.nixd pkgs.nixd
pkgs.rust-analyzer pkgs.rust-analyzer
pkgs.rustfmt pkgs.rustfmt
@@ -58,6 +58,7 @@ in
pkgs.clang-tools pkgs.clang-tools
pkgs.taplo pkgs.taplo
pkgs.tinymist pkgs.tinymist
pkgs.dart
]; ];
xdg.configFile = { xdg.configFile = {
"nvim/init.lua".source = config.lib.file.mkOutOfStoreSymlink ./neovim/init.lua; "nvim/init.lua".source = config.lib.file.mkOutOfStoreSymlink ./neovim/init.lua;

View File

@@ -1,13 +1,17 @@
return { return {
'tpope/vim-fugitive', 'tpope/vim-fugitive',
keys = { keys = {
{ '<leader>gg', ':Git<cr>', 'Git Status' }, { '<leader>gg', ':tab Git<cr>', 'Git Status' },
{ '<leader>gc', function() { '<leader>gc', function()
if vim.bo.filetype == 'fugitive' then if vim.bo.filetype == 'fugitive' then
vim.cmd.close() vim.cmd.close()
end end
vim.cmd("Git commit") vim.cmd("tab Git commit")
end, '(g)it (c)ommit' } end, '(g)it (c)ommit' }
}, },
cmd = 'Git' cmd = {
'Git',
'Gread',
'Gbrowse'
}
} }

View File

@@ -122,7 +122,8 @@ local function lsp_setup()
'clangd', 'clangd',
'eslint', 'eslint',
'nushell', 'nushell',
'tinymist' 'tinymist',
'dartls'
-- 'jdtls' -- 'jdtls'
}) })
@@ -160,6 +161,8 @@ local function lsp_setup()
cmd = { "tinymist" } cmd = { "tinymist" }
})) }))
vim.lsp.config('dartls', with_defaults(require("plugins.spec.server_configurations.dart")))
vim.diagnostic.config({ vim.diagnostic.config({
virtual_text = { virtual_text = {
prefix = '', -- or '■', '▎', 'x', '' whatever you want prefix = '', -- or '■', '▎', 'x', '' whatever you want

View File

@@ -0,0 +1,3 @@
return {
cmd = { "dart", "language-server", "--protocol=lsp" },
}

View File

@@ -44,9 +44,10 @@
pkgs.steam-run pkgs.steam-run
pkgs.sops pkgs.sops
pkgs.pavucontrol pkgs.pavucontrol
pkgs.errands
# editors # editors
pkgs.zed-editor # pkgs.zed-editor # updating softwar crashed the pc. Not in use right now anyway. disabled for now
pkgs.vscode pkgs.vscode
# browsers # browsers

View File

@@ -1,10 +1,27 @@
name = "pw" name = "power"
name_pretty = "Power" name_pretty = "Power"
icon = "Power" icon = "applications-other"
global_search = true
[[entries]] [[entries]]
text = "Shutdown" text = "Shutdown"
keywords = ["color", "picker", "hypr"] keywords = ["turn", "off", "power", "shutdown"]
actions = { "cp_use" = "wl-copy $(hyprpicker)" } actions = { "cp_use" = "shutdown -h now" }
icon = "system-shutdown" icon = "system-shutdown"
[[entries]]
text = "Reboot"
keywords = ["restart", "reboot"]
actions = { "cp_use" = "reboot -r now" }
icon = "system-reboot"
[[entries]]
text = "Sleep"
keywords = ["sleep", "hibernate", "suspend"]
actions = { "cp_use" = "systemctl hibernate" }
icon = "weather-clear-night"
[[entries]]
text = "Lock"
keywords = ["lock"]
actions = { "cp_use" = "hyprlock" }
icon = "system-lock-screen"

View File

@@ -18,14 +18,7 @@ previous = ["ctrl p", "Up"]
quick_activate = [] quick_activate = []
[providers] [providers]
default = [ default = ["desktopapplications", "calc", "runner", "websearch", "menus", "pw"]
"desktopapplications",
"calc",
"runner",
"websearch",
"menus",
"pw"
]
[[providers.prefixes]] [[providers.prefixes]]
prefix = ";" prefix = ";"
@@ -57,60 +50,19 @@ provider = "clipboard"
[[providers.prefixes]] [[providers.prefixes]]
prefix = "pw " prefix = "pw "
provider = "pw" provider = "menus:power"
[providers.actions] [providers.actions]
fallback = [
{ action = "menus:open", label = "open", after = "Nothing" },
{ action = "erase_history", label = "clear hist", bind = "ctrl h", after = "AsyncReload" },
]
desktopapplications = [ desktopapplications = [
{ action = "start", default = true, bind = "Return" }, { action = "start", default = true, bind = "Return" },
{ action = "start:keep", label = "open+next", bind = "shift Return", after = "KeepOpen" }, { action = "start:keep", label = "open+next", bind = "shift Return", after = "KeepOpen" },
{ action = "erase_history", label = "clear hist", bind = "ctrl h", after = "AsyncReload" }, { action = "erase_history", label = "clear hist", bind = "ctrl h", after = "AsyncReload" },
{ action = "pin", bind = "ctrl alt p", after = "AsyncReload" }, { action = "pin", bind = "ctrl alt p", after = "Nothing" },
{ action = "unpin", bind = "ctrl alt p", after = "AsyncReload" }, { action = "unpin", bind = "ctrl alt p", after = "Nothing" },
{ action = "pinup", bind = "ctrl n", after = "AsyncReload" }, { action = "pinup", bind = "ctrl alt n", after = "Nothing" },
{ action = "pindown", bind = "ctrl m", after = "AsyncReload" }, { action = "pindown", bind = "ctrl alt m", after = "Nothing" },
] ]
[[plugins]]
name = "wifi"
prefix = "wifi "
src_once = "node ~/.config/walker/plugins/wifi.cjs"
parser = "kv"
[[plugins]]
name = "power"
prefix = "pw "
keep_sort = false
placeholder = "Power"
recalculate_score = true
show_icon_when_single = true
switcher_only = true
[[plugins.entries]]
label = "Shutdown"
icon = "system-shutdown-symbolic"
exec = "shutdown now"
weight = 1
[[plugins.entries]]
label = "Reboot"
icon = "system-reboot-symbolic"
exec = "reboot"
weight = 2
[[plugins.entries]]
label = "Sleep"
icon = "weather-clear-night-symbolic"
exec = "systemctl suspend"
weight = 3
[[plugins.entries]]
label = "Lock"
icon = "system-lock-screen-symbolic"
exec = "hyprlock"
weight = 4
[[plugins.entries]]
label = "Logout"
icon = "system-log-out-symbolic"
exec = "hyprctl dispatch exit"
weight = 5