Compare commits

...

12 commits

Author SHA1 Message Date
ItsDrike 21cf34330e
Add killall package 2024-06-10 20:19:35 +02:00
ItsDrike 8390c54639
Fix various issues 2024-06-10 20:12:13 +02:00
ItsDrike f5ffba4a56
Add walker keybind 2024-06-10 20:07:09 +02:00
ItsDrike 739d5019d3
Add options for enabling launcher programs 2024-06-10 20:06:57 +02:00
ItsDrike 705ef3451a
Add walker launcher 2024-06-10 19:55:38 +02:00
ItsDrike 63113f0fd6
Rename deprecated libinput options 2024-06-10 19:28:10 +02:00
ItsDrike fa6784b24f
Update flake 2024-06-10 19:21:14 +02:00
ItsDrike 6a85f6b61b
Add wofi launcher 2024-06-10 19:19:30 +02:00
ItsDrike e20e63e57b
Add misc services 2024-06-10 18:54:47 +02:00
ItsDrike f5febc9346
Add thunar 2024-06-10 18:53:34 +02:00
ItsDrike d15842324a
Add runners config 2024-06-10 18:53:04 +02:00
ItsDrike 4c775478bc
Add missing device role check for physlock 2024-06-10 18:52:38 +02:00
22 changed files with 457 additions and 17 deletions

View file

@ -117,11 +117,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1712462372, "lastModified": 1717931644,
"narHash": "sha256-WA3bbBWhd3o1wAgyHZNypjb/LG4oq+IWxFq8ey8yNPU=", "narHash": "sha256-Sz8Wh9cAiD5FhL8UWvZxBfnvxETSCVZlqWSYWaCPyu0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "a561ad6ab38578c812cc9af3b04f2cc60ebf48c9", "rev": "3d65009effd77cb0d6e7520b68b039836a7606cf",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -132,11 +132,11 @@
}, },
"impermanence": { "impermanence": {
"locked": { "locked": {
"lastModified": 1708968331, "lastModified": 1717932370,
"narHash": "sha256-VUXLaPusCBvwM3zhGbRIJVeYluh2uWuqtj4WirQ1L9Y=", "narHash": "sha256-7C5lCpiWiyPoIACOcu2mukn/1JRtz6HC/1aEMhUdcw0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "impermanence", "repo": "impermanence",
"rev": "a33ef102a02ce77d3e39c25197664b7a636f9c30", "rev": "27979f1c3a0d3b9617a3563e2839114ba7d48d3f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -174,11 +174,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1712439257, "lastModified": 1717786204,
"narHash": "sha256-aSpiNepFOMk9932HOax0XwNxbA38GOUVOiXfUVPOrck=", "narHash": "sha256-4q0s6m0GUcN7q+Y2DqD27iLvbcd1G50T2lv08kKxkSI=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ff0dbd94265ac470dda06a657d5fe49de93b4599", "rev": "051f920625ab5aabe37c920346e3e69d7d34400e",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -1,5 +1,6 @@
_: { _: {
imports = [ imports = [
./wms ./wms
./launchers
]; ];
} }

View file

@ -0,0 +1,9 @@
{
imports = [
#./anyrun
#./rofi
#./tofi
./walker
./wofi
];
}

View file

@ -0,0 +1,97 @@
{
"placeholder": "Search...",
"keep_open": false,
"ignore_mouse": false,
"ssh_host_file": "",
"enable_typeahead": false,
"show_initial_entries": true,
"fullscreen": false,
"scrollbar_policy": "automatic",
"hyprland": {
"context_aware_history": false
},
"activation_mode": {
"disabled": false,
"use_f_keys": false,
"use_alt": false
},
"search": {
"delay": 0,
"hide_icons": false,
"margin_spinner": 10,
"hide_spinner": false
},
"runner": {
"excludes": [
"rm"
]
},
"clipboard": {
"max_entries": 10,
"image_height": 300
},
"align": {
"ignore_exlusive": true,
"width": 400,
"horizontal": "center",
"vertical": "start",
"anchors": {
"top": false,
"left": false,
"bottom": false,
"right": false
},
"margins": {
"top": 20,
"bottom": 0,
"end": 0,
"start": 0
}
},
"list": {
"height": 300,
"margin_top": 10,
"always_show": true,
"hide_sub": false
},
"orientation": "vertical",
"icons": {
"theme": "",
"hide": false,
"size": 28,
"image_height": 200
},
"modules": [
{
"name": "runner",
"prefix": ""
},
{
"name": "applications",
"prefix": ""
},
{
"name": "ssh",
"prefix": "",
"switcher_exclusive": true
},
{
"name": "finder",
"prefix": "",
"switcher_exclusive": true
},
{
"name": "commands",
"prefix": "",
"switcher_exclusive": true
},
{
"name": "websearch",
"prefix": "?"
},
{
"name": "switcher",
"prefix": "/"
}
]
}

View file

@ -0,0 +1,20 @@
{
osConfig,
pkgs,
lib,
...
}: let
inherit (lib) mkIf;
cfg = osConfig.myOptions.home-manager.programs.launchers.walker;
in {
config = mkIf cfg.enable {
home.packages = with pkgs; [
walker
];
xdg.configFile = {
"walker/config.json".source = ./config.json;
"walker/style.css".source = ./style.css;
};
};
}

View file

@ -0,0 +1,90 @@
* {
color: #dcd7ba;
}
#window {
background: #1c1c23;
opacity: 0.9;
border: 4px solid #26262d;
}
#box {
background: #16161d;
padding: 10px;
border-radius: 2px;
}
#searchwrapper {}
#search,
#typeahead {
border-radius: 0;
outline: none;
outline-width: 0px;
box-shadow: none;
border-bottom: none;
border: none;
background: #1f1f28;
padding-left: 10px;
padding-right: 10px;
padding-top: 0px;
padding-bottom: 0px;
border-radius: 2px;
}
#spinner {
opacity: 0;
}
#spinner.visible {
opacity: 1;
}
#typeahead {
background: none;
opacity: 0.5;
}
#search placeholder {
opacity: 0.5;
}
#list {
background: #1c1c23;
}
row:selected {
background: rgba(100, 100, 100, 0.3);
}
.item {
padding: 5px;
border-radius: 2px;
}
.icon {
padding-right: 5px;
}
.textwrapper {}
.label {}
.sub {
opacity: 0.5;
}
.activationlabel {
opacity: 0.25;
}
.activation .activationlabel {
opacity: 1;
color: #76946a;
}
.activation .textwrapper,
.activation .icon,
.activation .search {
opacity: 0.5;
}

View file

@ -0,0 +1,26 @@
{
osConfig,
lib,
...
}: let
inherit (lib) mkIf;
cfg = osConfig.myOptions.home-manager.programs.launchers.wofi;
in {
config = mkIf cfg.enable {
programs.wofi = {
enable = true;
settings = {
width = "40%";
height = "30%";
show = "drun";
prompt = "Search";
allow_images = true;
allow_markup = true;
insensitive = true;
};
style = ''
${builtins.readFile ./style.css}
'';
};
};
}

View file

@ -0,0 +1,51 @@
window {
font-family: "DejaVu Sans", "Font Awesome 5 Free";
margin: 0px;
border: 1px solid rgba(0, 0, 0, 0.9);
background-color: rgba(29, 31, 33, 0.95);
border-radius: 10px;
}
#input {
margin: 5px;
border: none;
color: #f8f8f2;
background-color: rgba(55, 59, 65, 0.95);
}
#inner-box {
margin: 5px;
border: none;
background-color: transparent;
}
#outer-box {
margin: 5px;
border: none;
background-color: transparent;
}
#scroll {
margin: 0px;
border: none;
}
#text {
margin: 5px;
border: none;
color: #c5c8c6;
}
#entry {
border: none;
}
#entry:focus {
border: none;
}
#entry:selected {
background-color: rgba(55, 59, 65, 0.95);
border-radius: 5px;
border: none;
}

View file

@ -23,6 +23,7 @@
# Programs # Programs
# #
"SUPER, Return, exec, kitty" "SUPER, Return, exec, kitty"
"SUPER, R, exec, walker"
# TODO: requires programs # TODO: requires programs
# #

View file

@ -77,6 +77,7 @@
home-manager = { home-manager = {
enable = true; enable = true;
stateVersion = "23.11"; stateVersion = "23.11";
git = { git = {
userName = "ItsDrike"; userName = "ItsDrike";
userEmail = "itsdrike@protonmail.com"; userEmail = "itsdrike@protonmail.com";
@ -85,6 +86,7 @@
key = "FA2745890B7048C0"; key = "FA2745890B7048C0";
}; };
}; };
wms.hyprland = { wms.hyprland = {
enable = true; enable = true;
monitor = [ monitor = [

View file

@ -3,6 +3,7 @@
in in
{ {
imports = [ imports = [
./programs
./git.nix ./git.nix
./wms.nix ./wms.nix
]; ];

View file

@ -0,0 +1,15 @@
{ lib, ... }: with lib; let
inherit (lib) mkEnableOption mkOption types;
in
{
options.myOptions.home-manager.programs = {
launchers = {
wofi.enable = mkEnableOption "Wofi launcher";
walker.enable = mkOption {
type = types.bool;
default = true;
description = "Enable Walker launcher.";
};
};
};
}

View file

@ -4,7 +4,7 @@
acceptedTypes = ["laptop"]; acceptedTypes = ["laptop"];
in { in {
config = mkIf (builtins.elem deviceType acceptedTypes) { config = mkIf (builtins.elem deviceType acceptedTypes) {
services.xserver.libinput = { services.libinput = {
# enable libinput # enable libinput
enable = true; enable = true;
@ -17,7 +17,7 @@ in {
# touchpad settings # touchpad settings
touchpad = { touchpad = {
naturalScrolling = false; # I'm weird like that naturalScrolling = false; # I'm not natural
tapping = true; tapping = true;
clickMethod = "clickfinger"; clickMethod = "clickfinger";
horizontalScrolling = true; horizontalScrolling = true;

View file

@ -3,5 +3,6 @@
./services ./services
./programs ./programs
./fonts.nix ./fonts.nix
./runners.nix
]; ];
} }

View file

@ -2,5 +2,6 @@
imports = [ imports = [
./misc.nix ./misc.nix
./physlock.nix ./physlock.nix
./thunar.nix
]; ];
} }

View file

@ -1,8 +1,14 @@
{ { lib, config, ...}: let
# Screen locker which works across all virtual terminals inherit (lib) mkIf;
# Use `systemctl start physlock` to securely lock the screen deviceType = config.myOptions.device.roles.type;
services.physlock = { acceptedTypes = ["laptop" "desktop"];
enable = true; in {
lockMessage = "System is locked..."; config = mkIf (builtins.elem deviceType acceptedTypes) {
# Screen locker which works across all virtual terminals
# Use `systemctl start physlock` to securely lock the screen
services.physlock = {
enable = true;
lockMessage = "System is locked...";
};
}; };
} }

View file

@ -0,0 +1,37 @@
{
lib,
pkgs,
config,
...
}: let
inherit (lib) mkIf;
deviceType = config.myOptions.device.roles.type;
acceptedTypes = ["laptop" "desktop"];
in {
config = mkIf (builtins.elem deviceType acceptedTypes) {
# Unconditionally enable thunar file manager here as a relatively
# lightweight fallback option for my default file manager.
programs.thunar = {
enable = true;
plugins = with pkgs.xfce; [
thunar-archive-plugin
thunar-media-tags-plugin
];
};
environment = {
systemPackages = with pkgs; [
# packages necessery for thunar thumbnails
xfce.tumbler
libgsf # odf files
ffmpegthumbnailer
ark # GUI archiver for thunar archive plugin
];
};
# thumbnail support on thunar
services.tumbler.enable = true;
};
}

View file

@ -0,0 +1,52 @@
{
config,
pkgs,
lib,
...
}: let
inherit (lib) mkIf;
deviceType = config.myOptions.device.roles.type;
acceptedTypes = ["laptop" "desktop"];
in {
config = mkIf (builtins.elem deviceType acceptedTypes) {
environment.systemPackages = [pkgs.appimage-run];
# run appimages with appimage-run
boot.binfmt.registrations = lib.genAttrs ["appimage" "AppImage"] (_: {
wrapInterpreterInShell = false;
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
recognitionType = "magic";
offset = 0;
mask = "\\xff\\xff\\xff\\xff\\x00\\x00\\x00\\x00\\xff\\xff\\xff";
magicOrExtension = "\\x7fELF....AI\\x02";
});
# run unpatched linux binaries with nix-ld
programs.nix-ld = {
enable = true;
libraries = with pkgs; [
stdenv.cc.cc
openssl
curl
glib
util-linux
glibc
icu
libunwind
libuuid
zlib
libsecret
# graphical
freetype
libglvnd
libnotify
SDL2
vulkan-loader
gdk-pixbuf
xorg.libX11
];
};
};
}

View file

@ -3,6 +3,7 @@
./earlyoom.nix ./earlyoom.nix
./mount.nix ./mount.nix
./printing.nix ./printing.nix
./misc.nix
]; ];
} }

View file

@ -0,0 +1,20 @@
{
config,
lib,
...
}: let
inherit (lib) mkIf;
deviceType = config.myOptions.device.roles.type;
acceptedTypes = ["laptop" "desktop"];
in {
config = mkIf (builtins.elem deviceType acceptedTypes) {
services = {
# enable GVfs - a userspace virtual filesystem
gvfs.enable = true;
# storage daemon required for udiskie auto-mount
udisks2.enable = true;
};
};
}

View file

@ -13,5 +13,6 @@ _: {
./network.nix ./network.nix
./bluetooth.nix ./bluetooth.nix
./localisation.nix ./localisation.nix
./packages.nix
]; ];
} }

View file

@ -0,0 +1,8 @@
{
pkgs,
...
}: {
environment.systemPackages = with pkgs; [
killall
];
}