mirror of
https://github.com/ItsDrike/nixdots
synced 2024-11-10 01:49:41 +00:00
Compare commits
12 commits
002e288d48
...
21cf34330e
Author | SHA1 | Date | |
---|---|---|---|
ItsDrike | 21cf34330e | ||
ItsDrike | 8390c54639 | ||
ItsDrike | f5ffba4a56 | ||
ItsDrike | 739d5019d3 | ||
ItsDrike | 705ef3451a | ||
ItsDrike | 63113f0fd6 | ||
ItsDrike | fa6784b24f | ||
ItsDrike | 6a85f6b61b | ||
ItsDrike | e20e63e57b | ||
ItsDrike | f5febc9346 | ||
ItsDrike | d15842324a | ||
ItsDrike | 4c775478bc |
18
flake.lock
18
flake.lock
|
@ -117,11 +117,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712462372,
|
||||
"narHash": "sha256-WA3bbBWhd3o1wAgyHZNypjb/LG4oq+IWxFq8ey8yNPU=",
|
||||
"lastModified": 1717931644,
|
||||
"narHash": "sha256-Sz8Wh9cAiD5FhL8UWvZxBfnvxETSCVZlqWSYWaCPyu0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "a561ad6ab38578c812cc9af3b04f2cc60ebf48c9",
|
||||
"rev": "3d65009effd77cb0d6e7520b68b039836a7606cf",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -132,11 +132,11 @@
|
|||
},
|
||||
"impermanence": {
|
||||
"locked": {
|
||||
"lastModified": 1708968331,
|
||||
"narHash": "sha256-VUXLaPusCBvwM3zhGbRIJVeYluh2uWuqtj4WirQ1L9Y=",
|
||||
"lastModified": 1717932370,
|
||||
"narHash": "sha256-7C5lCpiWiyPoIACOcu2mukn/1JRtz6HC/1aEMhUdcw0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "impermanence",
|
||||
"rev": "a33ef102a02ce77d3e39c25197664b7a636f9c30",
|
||||
"rev": "27979f1c3a0d3b9617a3563e2839114ba7d48d3f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -174,11 +174,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1712439257,
|
||||
"narHash": "sha256-aSpiNepFOMk9932HOax0XwNxbA38GOUVOiXfUVPOrck=",
|
||||
"lastModified": 1717786204,
|
||||
"narHash": "sha256-4q0s6m0GUcN7q+Y2DqD27iLvbcd1G50T2lv08kKxkSI=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ff0dbd94265ac470dda06a657d5fe49de93b4599",
|
||||
"rev": "051f920625ab5aabe37c920346e3e69d7d34400e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
_: {
|
||||
imports = [
|
||||
./wms
|
||||
./launchers
|
||||
];
|
||||
}
|
||||
|
|
9
home/programs/graphical/launchers/default.nix
Normal file
9
home/programs/graphical/launchers/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
imports = [
|
||||
#./anyrun
|
||||
#./rofi
|
||||
#./tofi
|
||||
./walker
|
||||
./wofi
|
||||
];
|
||||
}
|
97
home/programs/graphical/launchers/walker/config.json
Normal file
97
home/programs/graphical/launchers/walker/config.json
Normal 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": "/"
|
||||
}
|
||||
]
|
||||
}
|
20
home/programs/graphical/launchers/walker/default.nix
Normal file
20
home/programs/graphical/launchers/walker/default.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
}
|
90
home/programs/graphical/launchers/walker/style.css
Normal file
90
home/programs/graphical/launchers/walker/style.css
Normal 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;
|
||||
}
|
26
home/programs/graphical/launchers/wofi/default.nix
Normal file
26
home/programs/graphical/launchers/wofi/default.nix
Normal 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}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
51
home/programs/graphical/launchers/wofi/style.css
Normal file
51
home/programs/graphical/launchers/wofi/style.css
Normal 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;
|
||||
}
|
|
@ -23,6 +23,7 @@
|
|||
# Programs
|
||||
#
|
||||
"SUPER, Return, exec, kitty"
|
||||
"SUPER, R, exec, walker"
|
||||
# TODO: requires programs
|
||||
|
||||
#
|
||||
|
|
|
@ -77,6 +77,7 @@
|
|||
home-manager = {
|
||||
enable = true;
|
||||
stateVersion = "23.11";
|
||||
|
||||
git = {
|
||||
userName = "ItsDrike";
|
||||
userEmail = "itsdrike@protonmail.com";
|
||||
|
@ -85,6 +86,7 @@
|
|||
key = "FA2745890B7048C0";
|
||||
};
|
||||
};
|
||||
|
||||
wms.hyprland = {
|
||||
enable = true;
|
||||
monitor = [
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
in
|
||||
{
|
||||
imports = [
|
||||
./programs
|
||||
./git.nix
|
||||
./wms.nix
|
||||
];
|
||||
|
|
15
options/home/programs/default.nix
Normal file
15
options/home/programs/default.nix
Normal 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.";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -4,7 +4,7 @@
|
|||
acceptedTypes = ["laptop"];
|
||||
in {
|
||||
config = mkIf (builtins.elem deviceType acceptedTypes) {
|
||||
services.xserver.libinput = {
|
||||
services.libinput = {
|
||||
# enable libinput
|
||||
enable = true;
|
||||
|
||||
|
@ -17,7 +17,7 @@ in {
|
|||
|
||||
# touchpad settings
|
||||
touchpad = {
|
||||
naturalScrolling = false; # I'm weird like that
|
||||
naturalScrolling = false; # I'm not natural
|
||||
tapping = true;
|
||||
clickMethod = "clickfinger";
|
||||
horizontalScrolling = true;
|
||||
|
|
|
@ -3,5 +3,6 @@
|
|||
./services
|
||||
./programs
|
||||
./fonts.nix
|
||||
./runners.nix
|
||||
];
|
||||
}
|
||||
|
|
|
@ -2,5 +2,6 @@
|
|||
imports = [
|
||||
./misc.nix
|
||||
./physlock.nix
|
||||
./thunar.nix
|
||||
];
|
||||
}
|
||||
|
|
|
@ -1,8 +1,14 @@
|
|||
{
|
||||
{ lib, config, ...}: let
|
||||
inherit (lib) mkIf;
|
||||
deviceType = config.myOptions.device.roles.type;
|
||||
acceptedTypes = ["laptop" "desktop"];
|
||||
in {
|
||||
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...";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
37
system/roles/workstation/programs/thunar.nix
Normal file
37
system/roles/workstation/programs/thunar.nix
Normal 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;
|
||||
};
|
||||
}
|
||||
|
52
system/roles/workstation/runners.nix
Normal file
52
system/roles/workstation/runners.nix
Normal 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
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
./earlyoom.nix
|
||||
./mount.nix
|
||||
./printing.nix
|
||||
./misc.nix
|
||||
];
|
||||
}
|
||||
|
||||
|
|
20
system/roles/workstation/services/misc.nix
Normal file
20
system/roles/workstation/services/misc.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -13,5 +13,6 @@ _: {
|
|||
./network.nix
|
||||
./bluetooth.nix
|
||||
./localisation.nix
|
||||
./packages.nix
|
||||
];
|
||||
}
|
||||
|
|
8
system/shared/packages.nix
Normal file
8
system/shared/packages.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
killall
|
||||
];
|
||||
}
|
Loading…
Reference in a new issue